]> granicus.if.org Git - php/commitdiff
- Added support for parsing date/time strings returned by MS SQL with strtotime().
authorDerick Rethans <derick@php.net>
Thu, 13 Mar 2008 15:54:25 +0000 (15:54 +0000)
committerDerick Rethans <derick@php.net>
Thu, 13 Mar 2008 15:54:25 +0000 (15:54 +0000)
NEWS
ext/date/lib/parse_date.c
ext/date/lib/parse_date.re

diff --git a/NEWS b/NEWS
index c519a59bcfb348b20b15d47e66d271f4cac18e94..66f96e77e317a4dbf466d179439e5b0088207f79 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -38,6 +38,7 @@ PHP                                                                        NEWS
     DateTimeZone::getTranstions() to limit the range of transitions being
     returned.
   . support for "first/last day of <month>" style texts.
+  . support for date/time strings returned by MS SQL.
 - Added functionality to SPL extension:
   . Added ability to store associative information with objects in
     SplObjectStorage. (Marcus)
index bd13182f3c8e27bf6c99e9a1789898624bffd772..8cb2c0bbd944691166acf25d9672f9c86bcc4126 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.12.1 on Sun Feb 24 19:24:27 2008 */
+/* Generated by re2c 0.12.1 on Thu Mar 13 11:49:49 2008 */
 #line 1 "ext/date/lib/parse_date.re"
 /*
    +----------------------------------------------------------------------+
@@ -475,20 +475,23 @@ static double timelib_get_frac_nr(char **ptr, int max_length)
        double tmp_nr = TIMELIB_UNSET;
        int len = 0;
 
-       while ((**ptr != '.') && ((**ptr < '0') || (**ptr > '9'))) {
+       while ((**ptr != '.') && (**ptr != ':') && ((**ptr < '0') || (**ptr > '9'))) {
                if (**ptr == '\0') {
                        return TIMELIB_UNSET;
                }
                ++*ptr;
        }
        begin = *ptr;
-       while (((**ptr == '.') || ((**ptr >= '0') && (**ptr <= '9'))) && len < max_length) {
+       while (((**ptr == '.') || (**ptr == ':') || ((**ptr >= '0') && (**ptr <= '9'))) && len < max_length) {
                ++*ptr;
                ++len;
        }
        end = *ptr;
        str = calloc(1, end - begin + 1);
        memcpy(str, begin, end - begin);
+       if (str[0] == ':') {
+               str[0] = '.';
+       }
        tmp_nr = strtod(str, NULL);
        free(str);
        return tmp_nr;
@@ -834,7 +837,7 @@ static int scan(Scanner *s)
 std:
        s->tok = cursor;
        s->len = 0;
-#line 953 "ext/date/lib/parse_date.re"
+#line 957 "ext/date/lib/parse_date.re"
 
 
 {
@@ -873,7 +876,7 @@ std:
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
 
-#line 877 "ext/date/lib/parse_date.c"
+#line 880 "ext/date/lib/parse_date.c"
        {
                YYCTYPE yych;
                unsigned int yyaccept = 0;
@@ -966,20 +969,20 @@ yy2:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy138;
-                               goto yy1444;
+                               goto yy1461;
                        }
                } else {
                        if(yych <= 'd') {
                                if(yych <= 'Z') goto yy138;
                                if(yych >= 'a') goto yy143;
                        } else {
-                               if(yych <= 'e') goto yy1453;
+                               if(yych <= 'e') goto yy1470;
                                if(yych <= 'z') goto yy143;
                        }
                }
 yy3:
                YYDEBUG(3, *YYCURSOR);
-#line 1525 "ext/date/lib/parse_date.re"
+#line 1550 "ext/date/lib/parse_date.re"
                {
                int tz_not_found;
                DEBUG_OUTPUT("tzcorrection | tz");
@@ -992,7 +995,7 @@ yy3:
                TIMELIB_DEINIT;
                return TIMELIB_TIMEZONE;
        }
-#line 996 "ext/date/lib/parse_date.c"
+#line 999 "ext/date/lib/parse_date.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1003,7 +1006,7 @@ yy4:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy138;
-                               goto yy1444;
+                               goto yy1461;
                        }
                } else {
                        if(yych <= 'd') {
@@ -1011,7 +1014,7 @@ yy4:
                                if(yych <= '`') goto yy3;
                                goto yy138;
                        } else {
-                               if(yych <= 'e') goto yy1444;
+                               if(yych <= 'e') goto yy1461;
                                if(yych <= 'z') goto yy138;
                                goto yy3;
                        }
@@ -1026,12 +1029,12 @@ yy5:
                                goto yy138;
                        } else {
                                if(yych <= 'H') {
-                                       if(yych <= 'E') goto yy1415;
+                                       if(yych <= 'E') goto yy1432;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'I') goto yy1416;
+                                       if(yych <= 'I') goto yy1433;
                                        if(yych <= 'N') goto yy138;
-                                       goto yy1414;
+                                       goto yy1431;
                                }
                        }
                } else {
@@ -1040,15 +1043,15 @@ yy5:
                                        if(yych <= 'Z') goto yy138;
                                        goto yy3;
                                } else {
-                                       if(yych == 'e') goto yy1431;
+                                       if(yych == 'e') goto yy1448;
                                        goto yy143;
                                }
                        } else {
                                if(yych <= 'n') {
-                                       if(yych <= 'i') goto yy1432;
+                                       if(yych <= 'i') goto yy1449;
                                        goto yy143;
                                } else {
-                                       if(yych <= 'o') goto yy1430;
+                                       if(yych <= 'o') goto yy1447;
                                        if(yych <= 'z') goto yy143;
                                        goto yy3;
                                }
@@ -1064,12 +1067,12 @@ yy6:
                                goto yy138;
                        } else {
                                if(yych <= 'H') {
-                                       if(yych <= 'E') goto yy1415;
+                                       if(yych <= 'E') goto yy1432;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'I') goto yy1416;
+                                       if(yych <= 'I') goto yy1433;
                                        if(yych <= 'N') goto yy138;
-                                       goto yy1414;
+                                       goto yy1431;
                                }
                        }
                } else {
@@ -1078,15 +1081,15 @@ yy6:
                                        if(yych <= 'Z') goto yy138;
                                        goto yy3;
                                } else {
-                                       if(yych == 'e') goto yy1415;
+                                       if(yych == 'e') goto yy1432;
                                        goto yy138;
                                }
                        } else {
                                if(yych <= 'n') {
-                                       if(yych <= 'i') goto yy1416;
+                                       if(yych <= 'i') goto yy1433;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'o') goto yy1414;
+                                       if(yych <= 'o') goto yy1431;
                                        if(yych <= 'z') goto yy138;
                                        goto yy3;
                                }
@@ -1099,24 +1102,24 @@ yy7:
                        if(yych <= 'A') {
                                if(yych == ')') goto yy137;
                                if(yych <= '@') goto yy3;
-                               goto yy1384;
+                               goto yy1401;
                        } else {
-                               if(yych == 'I') goto yy1385;
+                               if(yych == 'I') goto yy1402;
                                if(yych <= 'N') goto yy138;
-                               goto yy1386;
+                               goto yy1403;
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'Z') goto yy138;
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1399;
+                               if(yych <= 'a') goto yy1416;
                                goto yy143;
                        } else {
                                if(yych <= 'n') {
-                                       if(yych <= 'i') goto yy1400;
+                                       if(yych <= 'i') goto yy1417;
                                        goto yy143;
                                } else {
-                                       if(yych <= 'o') goto yy1401;
+                                       if(yych <= 'o') goto yy1418;
                                        if(yych <= 'z') goto yy143;
                                        goto yy3;
                                }
@@ -1129,24 +1132,24 @@ yy8:
                        if(yych <= 'A') {
                                if(yych == ')') goto yy137;
                                if(yych <= '@') goto yy3;
-                               goto yy1384;
+                               goto yy1401;
                        } else {
-                               if(yych == 'I') goto yy1385;
+                               if(yych == 'I') goto yy1402;
                                if(yych <= 'N') goto yy138;
-                               goto yy1386;
+                               goto yy1403;
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'Z') goto yy138;
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1384;
+                               if(yych <= 'a') goto yy1401;
                                goto yy138;
                        } else {
                                if(yych <= 'n') {
-                                       if(yych <= 'i') goto yy1385;
+                                       if(yych <= 'i') goto yy1402;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'o') goto yy1386;
+                                       if(yych <= 'o') goto yy1403;
                                        if(yych <= 'z') goto yy138;
                                        goto yy3;
                                }
@@ -1160,15 +1163,15 @@ yy9:
                switch(yych) {
                case ')':       goto yy137;
                case '0':
-               case '1':       goto yy1314;
-               case '2':       goto yy1315;
+               case '1':       goto yy1331;
+               case '2':       goto yy1332;
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy1316;
+               case '9':       goto yy1333;
                case 'A':
                case 'B':
                case 'C':
@@ -1190,11 +1193,11 @@ yy9:
                case 'X':
                case 'Y':
                case 'Z':       goto yy138;
-               case 'E':       goto yy1309;
-               case 'H':       goto yy1310;
-               case 'O':       goto yy1311;
-               case 'U':       goto yy1312;
-               case 'W':       goto yy1313;
+               case 'E':       goto yy1326;
+               case 'H':       goto yy1327;
+               case 'O':       goto yy1328;
+               case 'U':       goto yy1329;
+               case 'W':       goto yy1330;
                case 'a':
                case 'b':
                case 'c':
@@ -1216,11 +1219,11 @@ yy9:
                case 'x':
                case 'y':
                case 'z':       goto yy143;
-               case 'e':       goto yy1352;
-               case 'h':       goto yy1353;
-               case 'o':       goto yy1354;
-               case 'u':       goto yy1355;
-               case 'w':       goto yy1356;
+               case 'e':       goto yy1369;
+               case 'h':       goto yy1370;
+               case 'o':       goto yy1371;
+               case 'u':       goto yy1372;
+               case 'w':       goto yy1373;
                default:        goto yy3;
                }
 yy10:
@@ -1231,15 +1234,15 @@ yy10:
                switch(yych) {
                case ')':       goto yy137;
                case '0':
-               case '1':       goto yy1314;
-               case '2':       goto yy1315;
+               case '1':       goto yy1331;
+               case '2':       goto yy1332;
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy1316;
+               case '9':       goto yy1333;
                case 'A':
                case 'B':
                case 'C':
@@ -1283,32 +1286,32 @@ yy10:
                case 'y':
                case 'z':       goto yy138;
                case 'E':
-               case 'e':       goto yy1309;
+               case 'e':       goto yy1326;
                case 'H':
-               case 'h':       goto yy1310;
+               case 'h':       goto yy1327;
                case 'O':
-               case 'o':       goto yy1311;
+               case 'o':       goto yy1328;
                case 'U':
-               case 'u':       goto yy1312;
+               case 'u':       goto yy1329;
                case 'W':
-               case 'w':       goto yy1313;
+               case 'w':       goto yy1330;
                default:        goto yy3;
                }
 yy11:
                YYDEBUG(11, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '-') goto yy1305;
+               if(yych == '-') goto yy1322;
                if(yych <= '/') goto yy12;
-               if(yych <= '9') goto yy1306;
+               if(yych <= '9') goto yy1323;
 yy12:
                YYDEBUG(12, *YYCURSOR);
-#line 1620 "ext/date/lib/parse_date.re"
+#line 1645 "ext/date/lib/parse_date.re"
                {
                add_error(s, "Unexpected character");
                goto std;
        }
-#line 1312 "ext/date/lib/parse_date.c"
+#line 1315 "ext/date/lib/parse_date.c"
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1320,16 +1323,16 @@ yy13:
                                } else {
                                        if(yych <= '@') goto yy3;
                                        if(yych <= 'D') goto yy138;
-                                       goto yy1259;
+                                       goto yy1276;
                                }
                        } else {
                                if(yych <= 'N') {
-                                       if(yych == 'I') goto yy1260;
+                                       if(yych == 'I') goto yy1277;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'O') goto yy1261;
+                                       if(yych <= 'O') goto yy1278;
                                        if(yych <= 'Q') goto yy138;
-                                       goto yy1262;
+                                       goto yy1279;
                                }
                        }
                } else {
@@ -1339,16 +1342,16 @@ yy13:
                                        if(yych <= '`') goto yy3;
                                        goto yy143;
                                } else {
-                                       if(yych <= 'e') goto yy1285;
+                                       if(yych <= 'e') goto yy1302;
                                        if(yych <= 'h') goto yy143;
-                                       goto yy1286;
+                                       goto yy1303;
                                }
                        } else {
                                if(yych <= 'q') {
-                                       if(yych == 'o') goto yy1287;
+                                       if(yych == 'o') goto yy1304;
                                        goto yy143;
                                } else {
-                                       if(yych <= 'r') goto yy1288;
+                                       if(yych <= 'r') goto yy1305;
                                        if(yych <= 'z') goto yy143;
                                        goto yy3;
                                }
@@ -1365,16 +1368,16 @@ yy14:
                                } else {
                                        if(yych <= '@') goto yy3;
                                        if(yych <= 'D') goto yy138;
-                                       goto yy1259;
+                                       goto yy1276;
                                }
                        } else {
                                if(yych <= 'N') {
-                                       if(yych == 'I') goto yy1260;
+                                       if(yych == 'I') goto yy1277;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'O') goto yy1261;
+                                       if(yych <= 'O') goto yy1278;
                                        if(yych <= 'Q') goto yy138;
-                                       goto yy1262;
+                                       goto yy1279;
                                }
                        }
                } else {
@@ -1384,16 +1387,16 @@ yy14:
                                        if(yych <= '`') goto yy3;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'e') goto yy1259;
+                                       if(yych <= 'e') goto yy1276;
                                        if(yych <= 'h') goto yy138;
-                                       goto yy1260;
+                                       goto yy1277;
                                }
                        } else {
                                if(yych <= 'q') {
-                                       if(yych == 'o') goto yy1261;
+                                       if(yych == 'o') goto yy1278;
                                        goto yy138;
                                } else {
-                                       if(yych <= 'r') goto yy1262;
+                                       if(yych <= 'r') goto yy1279;
                                        if(yych <= 'z') goto yy138;
                                        goto yy3;
                                }
@@ -1405,13 +1408,13 @@ yy15:
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
                        if(yych <= '@') goto yy3;
-                       goto yy1245;
+                       goto yy1262;
                } else {
                        if(yych <= '`') {
                                if(yych <= 'Z') goto yy138;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1256;
+                               if(yych <= 'a') goto yy1273;
                                if(yych <= 'z') goto yy143;
                                goto yy3;
                        }
@@ -1422,13 +1425,13 @@ yy16:
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
                        if(yych <= '@') goto yy3;
-                       goto yy1245;
+                       goto yy1262;
                } else {
                        if(yych <= '`') {
                                if(yych <= 'Z') goto yy138;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1245;
+                               if(yych <= 'a') goto yy1262;
                                if(yych <= 'z') goto yy138;
                                goto yy3;
                        }
@@ -1439,7 +1442,7 @@ yy17:
                yych = *(YYMARKER = ++YYCURSOR);
                YYDEBUG(-1, yych);
                switch(yych) {
-               case 0x09:      goto yy1199;
+               case 0x09:      goto yy1216;
                case ' ':
                case 'A':
                case 'D':
@@ -1464,11 +1467,11 @@ yy17:
                case 'm':
                case 'o':
                case 'w':
-               case 'y':       goto yy1201;
+               case 'y':       goto yy1218;
                case '-':       goto yy644;
-               case '.':       goto yy1211;
+               case '.':       goto yy1228;
                case '/':       goto yy643;
-               case '0':       goto yy1244;
+               case '0':       goto yy1261;
                case '1':
                case '2':
                case '3':
@@ -1477,8 +1480,8 @@ yy17:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy1243;
-               case ':':       goto yy1212;
+               case '9':       goto yy1260;
+               case ':':       goto yy1229;
                case 'n':       goto yy641;
                case 'r':       goto yy642;
                case 's':       goto yy635;
@@ -1524,14 +1527,14 @@ yy18:
                case '/':       goto yy643;
                case '0':
                case '1':
-               case '2':       goto yy1243;
+               case '2':       goto yy1260;
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy1210;
+               case '9':       goto yy1227;
                case ':':       goto yy654;
                case 'n':       goto yy641;
                case 'r':       goto yy642;
@@ -1580,12 +1583,12 @@ yy19:
                case '1':
                case '2':
                case '3':
-               case '4':       goto yy1210;
+               case '4':       goto yy1227;
                case '5':
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy1197;
+               case '9':       goto yy1214;
                case ':':       goto yy654;
                case 'n':       goto yy641;
                case 'r':       goto yy642;
@@ -1631,7 +1634,7 @@ yy20:
                case '.':       goto yy645;
                case '/':       goto yy643;
                case '0':
-               case '1':       goto yy1197;
+               case '1':       goto yy1214;
                case '2':
                case '3':
                case '4':
@@ -2331,11 +2334,11 @@ yy46:
                if(yych <= '9') goto yy52;
 yy47:
                YYDEBUG(47, *YYCURSOR);
-#line 1609 "ext/date/lib/parse_date.re"
+#line 1634 "ext/date/lib/parse_date.re"
                {
                goto std;
        }
-#line 2339 "ext/date/lib/parse_date.c"
+#line 2342 "ext/date/lib/parse_date.c"
 yy48:
                YYDEBUG(48, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2344,12 +2347,12 @@ yy49:
                YYDEBUG(49, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(50, *YYCURSOR);
-#line 1614 "ext/date/lib/parse_date.re"
+#line 1639 "ext/date/lib/parse_date.re"
                {
                s->pos = cursor; s->line++;
                goto std;
        }
-#line 2353 "ext/date/lib/parse_date.c"
+#line 2356 "ext/date/lib/parse_date.c"
 yy51:
                YYDEBUG(51, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2468,15 +2471,15 @@ yy54:
                                } else {
                                        if(yyaccept <= 14) {
                                                if(yyaccept <= 13) {
-                                                       goto yy762;
+                                                       goto yy778;
                                                } else {
-                                                       goto yy810;
+                                                       goto yy827;
                                                }
                                        } else {
                                                if(yyaccept <= 15) {
-                                                       goto yy820;
+                                                       goto yy837;
                                                } else {
-                                                       goto yy911;
+                                                       goto yy928;
                                                }
                                        }
                                }
@@ -2486,29 +2489,29 @@ yy54:
                                if(yyaccept <= 20) {
                                        if(yyaccept <= 18) {
                                                if(yyaccept <= 17) {
-                                                       goto yy931;
+                                                       goto yy948;
                                                } else {
-                                                       goto yy962;
+                                                       goto yy979;
                                                }
                                        } else {
                                                if(yyaccept <= 19) {
-                                                       goto yy969;
+                                                       goto yy986;
                                                } else {
-                                                       goto yy996;
+                                                       goto yy1013;
                                                }
                                        }
                                } else {
                                        if(yyaccept <= 22) {
                                                if(yyaccept <= 21) {
-                                                       goto yy941;
+                                                       goto yy958;
                                                } else {
                                                        goto yy626;
                                                }
                                        } else {
                                                if(yyaccept <= 23) {
-                                                       goto yy1121;
+                                                       goto yy1138;
                                                } else {
-                                                       goto yy990;
+                                                       goto yy1007;
                                                }
                                        }
                                }
@@ -2516,29 +2519,29 @@ yy54:
                                if(yyaccept <= 28) {
                                        if(yyaccept <= 26) {
                                                if(yyaccept <= 25) {
-                                                       goto yy1215;
+                                                       goto yy1232;
                                                } else {
-                                                       goto yy1223;
+                                                       goto yy1240;
                                                }
                                        } else {
                                                if(yyaccept <= 27) {
-                                                       goto yy1252;
+                                                       goto yy1269;
                                                } else {
-                                                       goto yy1338;
+                                                       goto yy1355;
                                                }
                                        }
                                } else {
                                        if(yyaccept <= 30) {
                                                if(yyaccept <= 29) {
-                                                       goto yy1341;
+                                                       goto yy1358;
                                                } else {
-                                                       goto yy1421;
+                                                       goto yy1438;
                                                }
                                        } else {
                                                if(yyaccept <= 31) {
-                                                       goto yy1429;
+                                                       goto yy1446;
                                                } else {
-                                                       goto yy1452;
+                                                       goto yy1469;
                                                }
                                        }
                                }
@@ -2732,7 +2735,7 @@ yy69:
                if(yych == 's') goto yy71;
 yy70:
                YYDEBUG(70, *YYCURSOR);
-#line 1593 "ext/date/lib/parse_date.re"
+#line 1618 "ext/date/lib/parse_date.re"
                {
                timelib_ull i;
                DEBUG_OUTPUT("relative");
@@ -2747,7 +2750,7 @@ yy70:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 2751 "ext/date/lib/parse_date.c"
+#line 2754 "ext/date/lib/parse_date.c"
 yy71:
                YYDEBUG(71, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3739,7 +3742,7 @@ yy182:
                if(yych == 's') goto yy184;
 yy183:
                YYDEBUG(183, *YYCURSOR);
-#line 1498 "ext/date/lib/parse_date.re"
+#line 1523 "ext/date/lib/parse_date.re"
                {
                timelib_sll i;
                int         behavior = 0;
@@ -3755,7 +3758,7 @@ yy183:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 3759 "ext/date/lib/parse_date.c"
+#line 3762 "ext/date/lib/parse_date.c"
 yy184:
                YYDEBUG(184, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4787,7 +4790,7 @@ yy278:
                }
 yy279:
                YYDEBUG(279, *YYCURSOR);
-#line 1482 "ext/date/lib/parse_date.re"
+#line 1507 "ext/date/lib/parse_date.re"
                {
                const timelib_relunit* relunit;
                DEBUG_OUTPUT("daytext");
@@ -4802,7 +4805,7 @@ yy279:
                TIMELIB_DEINIT;
                return TIMELIB_WEEKDAY;
        }
-#line 4806 "ext/date/lib/parse_date.c"
+#line 4809 "ext/date/lib/parse_date.c"
 yy280:
                YYDEBUG(280, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5279,7 +5282,7 @@ yy305:
                }
 yy306:
                YYDEBUG(306, *YYCURSOR);
-#line 1515 "ext/date/lib/parse_date.re"
+#line 1540 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("monthtext");
                TIMELIB_INIT;
@@ -5288,7 +5291,7 @@ yy306:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_TEXT;
        }
-#line 5292 "ext/date/lib/parse_date.c"
+#line 5295 "ext/date/lib/parse_date.c"
 yy307:
                YYDEBUG(307, *YYCURSOR);
                ++YYCURSOR;
@@ -5339,7 +5342,7 @@ yy310:
                }
 yy311:
                YYDEBUG(311, *YYCURSOR);
-#line 1294 "ext/date/lib/parse_date.re"
+#line 1319 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("datetextual | datenoyear");
                TIMELIB_INIT;
@@ -5351,7 +5354,7 @@ yy311:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_TEXT;
        }
-#line 5355 "ext/date/lib/parse_date.c"
+#line 5358 "ext/date/lib/parse_date.c"
 yy312:
                YYDEBUG(312, *YYCURSOR);
                yyaccept = 7;
@@ -5624,7 +5627,7 @@ yy334:
                }
 yy335:
                YYDEBUG(335, *YYCURSOR);
-#line 1563 "ext/date/lib/parse_date.re"
+#line 1588 "ext/date/lib/parse_date.re"
                {
                int tz_not_found;
                DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -5653,7 +5656,7 @@ yy335:
                TIMELIB_DEINIT;
                return TIMELIB_SHORTDATE_WITH_TIME;
        }
-#line 5657 "ext/date/lib/parse_date.c"
+#line 5660 "ext/date/lib/parse_date.c"
 yy336:
                YYDEBUG(336, *YYCURSOR);
                yyaccept = 8;
@@ -6330,7 +6333,7 @@ yy391:
                YYDEBUG(391, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(392, *YYCURSOR);
-#line 1539 "ext/date/lib/parse_date.re"
+#line 1564 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
                TIMELIB_INIT;
@@ -6353,7 +6356,7 @@ yy391:
                TIMELIB_DEINIT;
                return TIMELIB_SHORTDATE_WITH_TIME;
        }
-#line 6357 "ext/date/lib/parse_date.c"
+#line 6360 "ext/date/lib/parse_date.c"
 yy393:
                YYDEBUG(393, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6529,7 +6532,7 @@ yy407:
                if(yych <= '9') goto yy403;
 yy408:
                YYDEBUG(408, *YYCURSOR);
-#line 1268 "ext/date/lib/parse_date.re"
+#line 1293 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("datenoday");
                TIMELIB_INIT;
@@ -6541,7 +6544,7 @@ yy408:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_NO_DAY;
        }
-#line 6545 "ext/date/lib/parse_date.c"
+#line 6548 "ext/date/lib/parse_date.c"
 yy409:
                YYDEBUG(409, *YYCURSOR);
                yyaccept = 7;
@@ -7785,7 +7788,7 @@ yy477:
                if(yych <= '9') goto yy480;
 yy479:
                YYDEBUG(479, *YYCURSOR);
-#line 1408 "ext/date/lib/parse_date.re"
+#line 1433 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("pgtextshort");
                TIMELIB_INIT;
@@ -7797,7 +7800,7 @@ yy479:
                TIMELIB_DEINIT;
                return TIMELIB_PG_TEXT;
        }
-#line 7801 "ext/date/lib/parse_date.c"
+#line 7804 "ext/date/lib/parse_date.c"
 yy480:
                YYDEBUG(480, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9678,7 +9681,7 @@ yy563:
                }
 yy564:
                YYDEBUG(564, *YYCURSOR);
-#line 1464 "ext/date/lib/parse_date.re"
+#line 1489 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("ago");
                TIMELIB_INIT;
@@ -9695,7 +9698,7 @@ yy564:
                TIMELIB_DEINIT;
                return TIMELIB_AGO;
        }
-#line 9699 "ext/date/lib/parse_date.c"
+#line 9702 "ext/date/lib/parse_date.c"
 yy565:
                YYDEBUG(565, *YYCURSOR);
                yyaccept = 6;
@@ -11380,7 +11383,7 @@ yy625:
                ++YYCURSOR;
 yy626:
                YYDEBUG(626, *YYCURSOR);
-#line 1179 "ext/date/lib/parse_date.re"
+#line 1204 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
                TIMELIB_INIT;
@@ -11391,7 +11394,7 @@ yy626:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 11395 "ext/date/lib/parse_date.c"
+#line 11398 "ext/date/lib/parse_date.c"
 yy627:
                YYDEBUG(627, *YYCURSOR);
                yyaccept = 0;
@@ -11657,9 +11660,9 @@ yy631:
                YYDEBUG(631, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy633;
-               if(yych <= '0') goto yy885;
-               if(yych <= '1') goto yy886;
-               if(yych <= '9') goto yy887;
+               if(yych <= '0') goto yy902;
+               if(yych <= '1') goto yy903;
+               if(yych <= '9') goto yy904;
                goto yy633;
 yy632:
                YYDEBUG(632, *YYCURSOR);
@@ -11673,7 +11676,7 @@ yy633:
                case 0x09:
                case ' ':       goto yy632;
                case '-':
-               case '.':       goto yy732;
+               case '.':       goto yy748;
                case 'A':
                case 'a':       goto yy651;
                case 'D':
@@ -11713,7 +11716,7 @@ yy634:
                                if(yych == 'A') goto yy124;
                                goto yy54;
                        } else {
-                               if(yych <= 'E') goto yy1196;
+                               if(yych <= 'E') goto yy1213;
                                if(yych <= 'T') goto yy54;
                                goto yy123;
                        }
@@ -11722,7 +11725,7 @@ yy634:
                                if(yych == 'a') goto yy124;
                                goto yy54;
                        } else {
-                               if(yych <= 'e') goto yy1196;
+                               if(yych <= 'e') goto yy1213;
                                if(yych == 'u') goto yy123;
                                goto yy54;
                        }
@@ -11735,7 +11738,7 @@ yy635:
                                if(yych == 'A') goto yy124;
                                goto yy54;
                        } else {
-                               if(yych <= 'E') goto yy1196;
+                               if(yych <= 'E') goto yy1213;
                                if(yych == 'U') goto yy123;
                                goto yy54;
                        }
@@ -11743,10 +11746,10 @@ yy635:
                        if(yych <= 'e') {
                                if(yych <= 'a') goto yy124;
                                if(yych <= 'd') goto yy54;
-                               goto yy1196;
+                               goto yy1213;
                        } else {
                                if(yych <= 's') goto yy54;
-                               if(yych <= 't') goto yy882;
+                               if(yych <= 't') goto yy899;
                                if(yych <= 'u') goto yy123;
                                goto yy54;
                        }
@@ -11756,7 +11759,7 @@ yy636:
                yych = *++YYCURSOR;
                if(yych <= 'O') {
                        if(yych <= 'H') {
-                               if(yych == 'A') goto yy747;
+                               if(yych == 'A') goto yy763;
                                goto yy54;
                        } else {
                                if(yych <= 'I') goto yy115;
@@ -11765,7 +11768,7 @@ yy636:
                        }
                } else {
                        if(yych <= 'h') {
-                               if(yych == 'a') goto yy747;
+                               if(yych == 'a') goto yy763;
                                goto yy54;
                        } else {
                                if(yych <= 'i') goto yy115;
@@ -11779,13 +11782,13 @@ yy637:
                if(yych <= 'E') {
                        if(yych == 'A') goto yy111;
                        if(yych <= 'D') goto yy54;
-                       goto yy734;
+                       goto yy750;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
                                goto yy111;
                        } else {
-                               if(yych == 'e') goto yy734;
+                               if(yych == 'e') goto yy750;
                                goto yy54;
                        }
                }
@@ -11794,7 +11797,7 @@ yy638:
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= 'N') {
-                               if(yych == 'E') goto yy750;
+                               if(yych == 'E') goto yy766;
                                goto yy54;
                        } else {
                                if(yych <= 'O') goto yy84;
@@ -11803,7 +11806,7 @@ yy638:
                        }
                } else {
                        if(yych <= 'n') {
-                               if(yych == 'e') goto yy750;
+                               if(yych == 'e') goto yy766;
                                goto yy54;
                        } else {
                                if(yych <= 'o') goto yy84;
@@ -11821,7 +11824,7 @@ yy639:
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'g') goto yy54;
-                               goto yy1195;
+                               goto yy1212;
                        } else {
                                if(yych == 'u') goto yy68;
                                goto yy54;
@@ -11830,25 +11833,25 @@ yy639:
 yy640:
                YYDEBUG(640, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy889;
+               if(yych == '-') goto yy906;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy888;
+               if(yych <= '9') goto yy905;
                goto yy58;
 yy641:
                YYDEBUG(641, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'c') {
-                       if(yych == 'O') goto yy685;
+                       if(yych == 'O') goto yy701;
                        goto yy54;
                } else {
-                       if(yych <= 'd') goto yy882;
-                       if(yych == 'o') goto yy685;
+                       if(yych <= 'd') goto yy899;
+                       if(yych == 'o') goto yy701;
                        goto yy54;
                }
 yy642:
                YYDEBUG(642, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy882;
+               if(yych == 'd') goto yy899;
                goto yy54;
 yy643:
                YYDEBUG(643, *YYCURSOR);
@@ -11857,30 +11860,30 @@ yy643:
                switch(yych) {
                case '0':
                case '1':
-               case '2':       goto yy819;
-               case '3':       goto yy821;
+               case '2':       goto yy836;
+               case '3':       goto yy838;
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy822;
+               case '9':       goto yy839;
                case 'A':
-               case 'a':       goto yy826;
+               case 'a':       goto yy843;
                case 'D':
-               case 'd':       goto yy830;
+               case 'd':       goto yy847;
                case 'F':
-               case 'f':       goto yy824;
+               case 'f':       goto yy841;
                case 'J':
-               case 'j':       goto yy823;
+               case 'j':       goto yy840;
                case 'M':
-               case 'm':       goto yy825;
+               case 'm':       goto yy842;
                case 'N':
-               case 'n':       goto yy829;
+               case 'n':       goto yy846;
                case 'O':
-               case 'o':       goto yy828;
+               case 'o':       goto yy845;
                case 'S':
-               case 's':       goto yy827;
+               case 's':       goto yy844;
                default:        goto yy54;
                }
 yy644:
@@ -11888,8 +11891,8 @@ yy644:
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch(yych) {
-               case '0':       goto yy769;
-               case '1':       goto yy770;
+               case '0':       goto yy786;
+               case '1':       goto yy787;
                case '2':
                case '3':
                case '4':
@@ -11897,36 +11900,36 @@ yy644:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy771;
+               case '9':       goto yy788;
                case 'A':
-               case 'a':       goto yy775;
+               case 'a':       goto yy792;
                case 'D':
-               case 'd':       goto yy779;
+               case 'd':       goto yy796;
                case 'F':
-               case 'f':       goto yy773;
+               case 'f':       goto yy790;
                case 'J':
-               case 'j':       goto yy772;
+               case 'j':       goto yy789;
                case 'M':
-               case 'm':       goto yy774;
+               case 'm':       goto yy791;
                case 'N':
-               case 'n':       goto yy778;
+               case 'n':       goto yy795;
                case 'O':
-               case 'o':       goto yy777;
+               case 'o':       goto yy794;
                case 'S':
-               case 's':       goto yy776;
-               default:        goto yy733;
+               case 's':       goto yy793;
+               default:        goto yy749;
                }
 yy645:
                YYDEBUG(645, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '1') {
-                       if(yych <= '/') goto yy733;
-                       if(yych <= '0') goto yy723;
-                       goto yy724;
+                       if(yych <= '/') goto yy749;
+                       if(yych <= '0') goto yy739;
+                       goto yy740;
                } else {
-                       if(yych <= '5') goto yy725;
-                       if(yych <= '9') goto yy726;
-                       goto yy733;
+                       if(yych <= '5') goto yy741;
+                       if(yych <= '9') goto yy742;
+                       goto yy749;
                }
 yy646:
                YYDEBUG(646, *YYCURSOR);
@@ -11934,24 +11937,24 @@ yy646:
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                        }
                } else {
                        if(yych <= 'U') {
-                               if(yych <= '9') goto yy689;
-                               if(yych == 'I') goto yy722;
+                               if(yych <= '9') goto yy705;
+                               if(yych == 'I') goto yy738;
                        } else {
                                if(yych == 'W') goto yy647;
-                               if(yych <= 'X') goto yy695;
+                               if(yych <= 'X') goto yy711;
                        }
                }
 yy647:
                YYDEBUG(647, *YYCURSOR);
-#line 1307 "ext/date/lib/parse_date.re"
+#line 1332 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("datenoyearrev");
                TIMELIB_INIT;
@@ -11962,7 +11965,7 @@ yy647:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_TEXT;
        }
-#line 11966 "ext/date/lib/parse_date.c"
+#line 11969 "ext/date/lib/parse_date.c"
 yy648:
                YYDEBUG(648, *YYCURSOR);
                yyaccept = 11;
@@ -11970,18 +11973,18 @@ yy648:
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '9') {
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                                if(yych <= '/') goto yy647;
-                               goto yy689;
+                               goto yy705;
                        } else {
-                               if(yych == 'I') goto yy720;
+                               if(yych == 'I') goto yy736;
                                goto yy647;
                        }
                }
@@ -11992,18 +11995,18 @@ yy649:
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '9') {
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                                if(yych <= '/') goto yy647;
-                               goto yy689;
+                               goto yy705;
                        } else {
-                               if(yych == 'I') goto yy719;
+                               if(yych == 'I') goto yy735;
                                goto yy647;
                        }
                }
@@ -12011,15 +12014,15 @@ yy650:
                YYDEBUG(650, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'A') goto yy712;
+                       if(yych == 'A') goto yy728;
                        if(yych <= 'T') goto yy54;
-                       goto yy711;
+                       goto yy727;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
-                               goto yy712;
+                               goto yy728;
                        } else {
-                               if(yych == 'u') goto yy711;
+                               if(yych == 'u') goto yy727;
                                goto yy54;
                        }
                }
@@ -12032,31 +12035,31 @@ yy651:
                                goto yy54;
                        } else {
                                if(yych <= 'M') goto yy657;
-                               if(yych == 'P') goto yy705;
+                               if(yych == 'P') goto yy721;
                                goto yy54;
                        }
                } else {
                        if(yych <= 'o') {
-                               if(yych <= 'U') goto yy704;
+                               if(yych <= 'U') goto yy720;
                                if(yych == 'm') goto yy657;
                                goto yy54;
                        } else {
-                               if(yych <= 'p') goto yy705;
-                               if(yych == 'u') goto yy704;
+                               if(yych <= 'p') goto yy721;
+                               if(yych == 'u') goto yy720;
                                goto yy54;
                        }
                }
 yy652:
                YYDEBUG(652, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy699;
-               if(yych == 'c') goto yy699;
+               if(yych == 'C') goto yy715;
+               if(yych == 'c') goto yy715;
                goto yy54;
 yy653:
                YYDEBUG(653, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy685;
-               if(yych == 'o') goto yy685;
+               if(yych == 'O') goto yy701;
+               if(yych == 'o') goto yy701;
                goto yy54;
 yy654:
                YYDEBUG(654, *YYCURSOR);
@@ -12103,7 +12106,7 @@ yy659:
                YYDEBUG(659, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(660, *YYCURSOR);
-#line 1055 "ext/date/lib/parse_date.re"
+#line 1059 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
                TIMELIB_INIT;
@@ -12119,7 +12122,7 @@ yy659:
                TIMELIB_DEINIT;
                return TIMELIB_TIME12;
        }
-#line 12123 "ext/date/lib/parse_date.c"
+#line 12126 "ext/date/lib/parse_date.c"
 yy661:
                YYDEBUG(661, *YYCURSOR);
                yyaccept = 12;
@@ -12132,7 +12135,7 @@ yy661:
                }
 yy662:
                YYDEBUG(662, *YYCURSOR);
-#line 1072 "ext/date/lib/parse_date.re"
+#line 1097 "ext/date/lib/parse_date.re"
                {
                int tz_not_found;
                DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
@@ -12157,7 +12160,7 @@ yy662:
                TIMELIB_DEINIT;
                return TIMELIB_TIME24_WITH_ZONE;
        }
-#line 12161 "ext/date/lib/parse_date.c"
+#line 12164 "ext/date/lib/parse_date.c"
 yy663:
                YYDEBUG(663, *YYCURSOR);
                yyaccept = 12;
@@ -12297,7 +12300,7 @@ yy678:
                        } else {
                                if(yych == '.') goto yy664;
                                if(yych <= '9') goto yy662;
-                               goto yy664;
+                               goto yy682;
                        }
                } else {
                        if(yych <= 'P') {
@@ -12340,18 +12343,186 @@ yy681:
                YYDEBUG(681, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'L') {
-                       if(yych != '.') goto yy54;
+                       if(yych == '.') goto yy698;
+                       goto yy54;
                } else {
-                       if(yych <= 'M') goto yy683;
-                       if(yych == 'm') goto yy683;
+                       if(yych <= 'M') goto yy699;
+                       if(yych == 'm') goto yy699;
                        goto yy54;
                }
+yy682:
                YYDEBUG(682, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy683;
-               if(yych != 'm') goto yy54;
+               if(yych <= '/') goto yy54;
+               if(yych <= '5') goto yy683;
+               if(yych <= '6') goto yy684;
+               if(yych <= '9') goto yy667;
+               goto yy54;
 yy683:
                YYDEBUG(683, *YYCURSOR);
+               yyaccept = 12;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == '.') goto yy668;
+               if(yych <= '/') goto yy662;
+               if(yych <= '9') goto yy685;
+               goto yy662;
+yy684:
+               YYDEBUG(684, *YYCURSOR);
+               yyaccept = 12;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych == '.') goto yy668;
+               if(yych != '0') goto yy662;
+yy685:
+               YYDEBUG(685, *YYCURSOR);
+               yyaccept = 12;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych <= ':') {
+                       if(yych <= ' ') {
+                               if(yych == 0x09) goto yy672;
+                               if(yych <= 0x1F) goto yy662;
+                               goto yy672;
+                       } else {
+                               if(yych == '.') goto yy686;
+                               if(yych <= '9') goto yy662;
+                               goto yy687;
+                       }
+               } else {
+                       if(yych <= 'P') {
+                               if(yych == 'A') goto yy674;
+                               if(yych <= 'O') goto yy662;
+                               goto yy674;
+                       } else {
+                               if(yych <= 'a') {
+                                       if(yych <= '`') goto yy662;
+                                       goto yy674;
+                               } else {
+                                       if(yych == 'p') goto yy674;
+                                       goto yy662;
+                               }
+                       }
+               }
+yy686:
+               YYDEBUG(686, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy54;
+               if(yych <= '9') goto yy696;
+               goto yy54;
+yy687:
+               YYDEBUG(687, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych <= '/') goto yy54;
+               if(yych >= ':') goto yy54;
+yy688:
+               YYDEBUG(688, *YYCURSOR);
+               ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+               yych = *YYCURSOR;
+               YYDEBUG(689, *YYCURSOR);
+               if(yych <= 'O') {
+                       if(yych <= '9') {
+                               if(yych <= '/') goto yy54;
+                               goto yy688;
+                       } else {
+                               if(yych != 'A') goto yy54;
+                       }
+               } else {
+                       if(yych <= 'a') {
+                               if(yych <= 'P') goto yy690;
+                               if(yych <= '`') goto yy54;
+                       } else {
+                               if(yych != 'p') goto yy54;
+                       }
+               }
+yy690:
+               YYDEBUG(690, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych <= 'L') {
+                       if(yych != '.') goto yy54;
+               } else {
+                       if(yych <= 'M') goto yy692;
+                       if(yych == 'm') goto yy692;
+                       goto yy54;
+               }
+               YYDEBUG(691, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych == 'M') goto yy692;
+               if(yych != 'm') goto yy54;
+yy692:
+               YYDEBUG(692, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych <= 0x1F) {
+                       if(yych <= 0x00) goto yy694;
+                       if(yych == 0x09) goto yy694;
+                       goto yy54;
+               } else {
+                       if(yych <= ' ') goto yy694;
+                       if(yych != '.') goto yy54;
+               }
+               YYDEBUG(693, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych <= 0x09) {
+                       if(yych <= 0x00) goto yy694;
+                       if(yych <= 0x08) goto yy54;
+               } else {
+                       if(yych != ' ') goto yy54;
+               }
+yy694:
+               YYDEBUG(694, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(695, *YYCURSOR);
+#line 1076 "ext/date/lib/parse_date.re"
+               {
+               int tz_not_found;
+               DEBUG_OUTPUT("mssqltime");
+               TIMELIB_INIT;
+               TIMELIB_HAVE_TIME();
+               s->time->h = timelib_get_nr((char **) &ptr, 2);
+               s->time->i = timelib_get_nr((char **) &ptr, 2);
+               if (*ptr == ':' || *ptr == '.') {
+                       s->time->s = timelib_get_nr((char **) &ptr, 2);
+
+                       if (*ptr == ':' || *ptr == '.') {
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
+                       }
+               }
+               timelib_eat_spaces((char **) &ptr);
+               s->time->h += timelib_meridian((char **) &ptr, s->time->h);
+               TIMELIB_DEINIT;
+               return TIMELIB_TIME24_WITH_ZONE;
+       }
+#line 12494 "ext/date/lib/parse_date.c"
+yy696:
+               YYDEBUG(696, *YYCURSOR);
+               yyaccept = 12;
+               YYMARKER = ++YYCURSOR;
+               if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+               yych = *YYCURSOR;
+               YYDEBUG(697, *YYCURSOR);
+               if(yych <= 'O') {
+                       if(yych <= '9') {
+                               if(yych <= '/') goto yy662;
+                               goto yy696;
+                       } else {
+                               if(yych == 'A') goto yy690;
+                               goto yy662;
+                       }
+               } else {
+                       if(yych <= 'a') {
+                               if(yych <= 'P') goto yy690;
+                               if(yych <= '`') goto yy662;
+                               goto yy690;
+                       } else {
+                               if(yych == 'p') goto yy690;
+                               goto yy662;
+                       }
+               }
+yy698:
+               YYDEBUG(698, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if(yych == 'M') goto yy699;
+               if(yych != 'm') goto yy54;
+yy699:
+               YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 0x1F) {
                        if(yych <= 0x00) goto yy659;
@@ -12361,7 +12532,7 @@ yy683:
                        if(yych <= ' ') goto yy659;
                        if(yych != '.') goto yy54;
                }
-               YYDEBUG(684, *YYCURSOR);
+               YYDEBUG(700, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 0x09) {
                        if(yych <= 0x00) goto yy659;
@@ -12371,61 +12542,61 @@ yy683:
                        if(yych == ' ') goto yy659;
                        goto yy54;
                }
-yy685:
-               YYDEBUG(685, *YYCURSOR);
+yy701:
+               YYDEBUG(701, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'V') goto yy686;
+               if(yych == 'V') goto yy702;
                if(yych != 'v') goto yy54;
-yy686:
-               YYDEBUG(686, *YYCURSOR);
+yy702:
+               YYDEBUG(702, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
                                if(yych != 0x09) goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy691;
-                               if(yych == 'e') goto yy691;
+                               if(yych <= 'E') goto yy707;
+                               if(yych == 'e') goto yy707;
                                goto yy647;
                        }
                }
-yy687:
-               YYDEBUG(687, *YYCURSOR);
+yy703:
+               YYDEBUG(703, *YYCURSOR);
                ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
                yych = *YYCURSOR;
-yy688:
-               YYDEBUG(688, *YYCURSOR);
+yy704:
+               YYDEBUG(704, *YYCURSOR);
                if(yych <= ' ') {
-                       if(yych == 0x09) goto yy687;
+                       if(yych == 0x09) goto yy703;
                        if(yych <= 0x1F) goto yy54;
-                       goto yy687;
+                       goto yy703;
                } else {
                        if(yych <= '.') {
                                if(yych <= ',') goto yy54;
-                               goto yy687;
+                               goto yy703;
                        } else {
                                if(yych <= '/') goto yy54;
                                if(yych >= ':') goto yy54;
                        }
                }
-yy689:
-               YYDEBUG(689, *YYCURSOR);
+yy705:
+               YYDEBUG(705, *YYCURSOR);
                ++YYCURSOR;
-               if((yych = *YYCURSOR) <= '/') goto yy690;
-               if(yych <= '9') goto yy696;
-yy690:
-               YYDEBUG(690, *YYCURSOR);
-#line 1229 "ext/date/lib/parse_date.re"
+               if((yych = *YYCURSOR) <= '/') goto yy706;
+               if(yych <= '9') goto yy712;
+yy706:
+               YYDEBUG(706, *YYCURSOR);
+#line 1254 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("datefull");
                TIMELIB_INIT;
@@ -12438,763 +12609,763 @@ yy690:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_FULL;
        }
-#line 12442 "ext/date/lib/parse_date.c"
-yy691:
-               YYDEBUG(691, *YYCURSOR);
+#line 12613 "ext/date/lib/parse_date.c"
+yy707:
+               YYDEBUG(707, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy692;
+               if(yych == 'M') goto yy708;
                if(yych != 'm') goto yy54;
-yy692:
-               YYDEBUG(692, *YYCURSOR);
+yy708:
+               YYDEBUG(708, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy693;
+               if(yych == 'B') goto yy709;
                if(yych != 'b') goto yy54;
-yy693:
-               YYDEBUG(693, *YYCURSOR);
+yy709:
+               YYDEBUG(709, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy694;
+               if(yych == 'E') goto yy710;
                if(yych != 'e') goto yy54;
-yy694:
-               YYDEBUG(694, *YYCURSOR);
+yy710:
+               YYDEBUG(710, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy695;
+               if(yych == 'R') goto yy711;
                if(yych != 'r') goto yy54;
-yy695:
-               YYDEBUG(695, *YYCURSOR);
+yy711:
+               YYDEBUG(711, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ' ') {
-                       if(yych == 0x09) goto yy687;
+                       if(yych == 0x09) goto yy703;
                        if(yych <= 0x1F) goto yy647;
-                       goto yy687;
+                       goto yy703;
                } else {
                        if(yych <= '.') {
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        }
                }
-yy696:
-               YYDEBUG(696, *YYCURSOR);
+yy712:
+               YYDEBUG(712, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy690;
-               if(yych >= ':') goto yy690;
-yy697:
-               YYDEBUG(697, *YYCURSOR);
+               if(yych <= '/') goto yy706;
+               if(yych >= ':') goto yy706;
+yy713:
+               YYDEBUG(713, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy690;
-               if(yych >= ':') goto yy690;
-               YYDEBUG(698, *YYCURSOR);
+               if(yych <= '/') goto yy706;
+               if(yych >= ':') goto yy706;
+               YYDEBUG(714, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy690;
-yy699:
-               YYDEBUG(699, *YYCURSOR);
+               goto yy706;
+yy715:
+               YYDEBUG(715, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy700;
+               if(yych == 'T') goto yy716;
                if(yych != 't') goto yy54;
-yy700:
-               YYDEBUG(700, *YYCURSOR);
+yy716:
+               YYDEBUG(716, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'N') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'O') goto yy701;
+                               if(yych <= 'O') goto yy717;
                                if(yych != 'o') goto yy647;
                        }
                }
-yy701:
-               YYDEBUG(701, *YYCURSOR);
+yy717:
+               YYDEBUG(717, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy702;
+               if(yych == 'B') goto yy718;
                if(yych != 'b') goto yy54;
-yy702:
-               YYDEBUG(702, *YYCURSOR);
+yy718:
+               YYDEBUG(718, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy703;
+               if(yych == 'E') goto yy719;
                if(yych != 'e') goto yy54;
-yy703:
-               YYDEBUG(703, *YYCURSOR);
+yy719:
+               YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy695;
-               if(yych == 'r') goto yy695;
+               if(yych == 'R') goto yy711;
+               if(yych == 'r') goto yy711;
                goto yy54;
-yy704:
-               YYDEBUG(704, *YYCURSOR);
+yy720:
+               YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'G') goto yy708;
-               if(yych == 'g') goto yy708;
+               if(yych == 'G') goto yy724;
+               if(yych == 'g') goto yy724;
                goto yy54;
-yy705:
-               YYDEBUG(705, *YYCURSOR);
+yy721:
+               YYDEBUG(721, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy706;
+               if(yych == 'R') goto yy722;
                if(yych != 'r') goto yy54;
-yy706:
-               YYDEBUG(706, *YYCURSOR);
+yy722:
+               YYDEBUG(722, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'H') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'I') goto yy707;
+                               if(yych <= 'I') goto yy723;
                                if(yych != 'i') goto yy647;
                        }
                }
-yy707:
-               YYDEBUG(707, *YYCURSOR);
+yy723:
+               YYDEBUG(723, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'L') goto yy695;
-               if(yych == 'l') goto yy695;
+               if(yych == 'L') goto yy711;
+               if(yych == 'l') goto yy711;
                goto yy54;
-yy708:
-               YYDEBUG(708, *YYCURSOR);
+yy724:
+               YYDEBUG(724, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'T') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'U') goto yy709;
+                               if(yych <= 'U') goto yy725;
                                if(yych != 'u') goto yy647;
                        }
                }
-yy709:
-               YYDEBUG(709, *YYCURSOR);
+yy725:
+               YYDEBUG(725, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'S') goto yy710;
+               if(yych == 'S') goto yy726;
                if(yych != 's') goto yy54;
-yy710:
-               YYDEBUG(710, *YYCURSOR);
+yy726:
+               YYDEBUG(726, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy695;
-               if(yych == 't') goto yy695;
+               if(yych == 'T') goto yy711;
+               if(yych == 't') goto yy711;
                goto yy54;
-yy711:
-               YYDEBUG(711, *YYCURSOR);
+yy727:
+               YYDEBUG(727, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
-                       if(yych == 'L') goto yy718;
+                       if(yych == 'L') goto yy734;
                        if(yych <= 'M') goto yy54;
-                       goto yy717;
+                       goto yy733;
                } else {
                        if(yych <= 'l') {
                                if(yych <= 'k') goto yy54;
-                               goto yy718;
+                               goto yy734;
                        } else {
-                               if(yych == 'n') goto yy717;
+                               if(yych == 'n') goto yy733;
                                goto yy54;
                        }
                }
-yy712:
-               YYDEBUG(712, *YYCURSOR);
+yy728:
+               YYDEBUG(728, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'N') goto yy713;
+               if(yych == 'N') goto yy729;
                if(yych != 'n') goto yy54;
-yy713:
-               YYDEBUG(713, *YYCURSOR);
+yy729:
+               YYDEBUG(729, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'T') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'U') goto yy714;
+                               if(yych <= 'U') goto yy730;
                                if(yych != 'u') goto yy647;
                        }
                }
-yy714:
-               YYDEBUG(714, *YYCURSOR);
+yy730:
+               YYDEBUG(730, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy715;
+               if(yych == 'A') goto yy731;
                if(yych != 'a') goto yy54;
-yy715:
-               YYDEBUG(715, *YYCURSOR);
+yy731:
+               YYDEBUG(731, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy716;
+               if(yych == 'R') goto yy732;
                if(yych != 'r') goto yy54;
-yy716:
-               YYDEBUG(716, *YYCURSOR);
+yy732:
+               YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy695;
-               if(yych == 'y') goto yy695;
+               if(yych == 'Y') goto yy711;
+               if(yych == 'y') goto yy711;
                goto yy54;
-yy717:
-               YYDEBUG(717, *YYCURSOR);
+yy733:
+               YYDEBUG(733, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy695;
-                               if(yych == 'e') goto yy695;
+                               if(yych <= 'E') goto yy711;
+                               if(yych == 'e') goto yy711;
                                goto yy647;
                        }
                }
-yy718:
-               YYDEBUG(718, *YYCURSOR);
+yy734:
+               YYDEBUG(734, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'X') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'Y') goto yy695;
-                               if(yych == 'y') goto yy695;
+                               if(yych <= 'Y') goto yy711;
+                               if(yych == 'y') goto yy711;
                                goto yy647;
                        }
                }
-yy719:
-               YYDEBUG(719, *YYCURSOR);
+yy735:
+               YYDEBUG(735, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '9') {
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                                if(yych <= '/') goto yy647;
-                               goto yy689;
+                               goto yy705;
                        } else {
-                               if(yych == 'I') goto yy695;
+                               if(yych == 'I') goto yy711;
                                goto yy647;
                        }
                }
-yy720:
-               YYDEBUG(720, *YYCURSOR);
+yy736:
+               YYDEBUG(736, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '9') {
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                                if(yych <= '/') goto yy647;
-                               goto yy689;
+                               goto yy705;
                        } else {
                                if(yych != 'I') goto yy647;
                        }
                }
-               YYDEBUG(721, *YYCURSOR);
+               YYDEBUG(737, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '9') {
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                                if(yych <= '/') goto yy647;
-                               goto yy689;
+                               goto yy705;
                        } else {
-                               if(yych == 'I') goto yy695;
+                               if(yych == 'I') goto yy711;
                                goto yy647;
                        }
                }
-yy722:
-               YYDEBUG(722, *YYCURSOR);
+yy738:
+               YYDEBUG(738, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '9') {
-                               if(yych <= '.') goto yy687;
+                               if(yych <= '.') goto yy703;
                                if(yych <= '/') goto yy647;
-                               goto yy689;
+                               goto yy705;
                        } else {
-                               if(yych == 'I') goto yy695;
+                               if(yych == 'I') goto yy711;
                                goto yy647;
                        }
                }
-yy723:
-               YYDEBUG(723, *YYCURSOR);
+yy739:
+               YYDEBUG(739, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       goto yy757;
+                       if(yych <= '-') goto yy772;
+                       goto yy773;
                } else {
                        if(yych <= '/') goto yy662;
-                       if(yych <= '9') goto yy768;
+                       if(yych <= '9') goto yy785;
                        if(yych <= ':') goto yy664;
                        goto yy662;
                }
-yy724:
-               YYDEBUG(724, *YYCURSOR);
+yy740:
+               YYDEBUG(740, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       if(yych <= '.') goto yy757;
+                       if(yych <= '-') goto yy772;
+                       if(yych <= '.') goto yy773;
                        goto yy662;
                } else {
-                       if(yych <= '2') goto yy768;
-                       if(yych <= '9') goto yy678;
+                       if(yych <= '2') goto yy785;
+                       if(yych <= '9') goto yy784;
                        if(yych <= ':') goto yy664;
                        goto yy662;
                }
-yy725:
-               YYDEBUG(725, *YYCURSOR);
+yy741:
+               YYDEBUG(741, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       goto yy757;
+                       if(yych <= '-') goto yy772;
+                       goto yy773;
                } else {
                        if(yych <= '/') goto yy662;
-                       if(yych <= '9') goto yy678;
+                       if(yych <= '9') goto yy784;
                        if(yych <= ':') goto yy664;
                        goto yy662;
                }
-yy726:
-               YYDEBUG(726, *YYCURSOR);
+yy742:
+               YYDEBUG(742, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       goto yy757;
+                       if(yych <= '-') goto yy772;
+                       goto yy773;
                } else {
                        if(yych == ':') goto yy664;
                        goto yy662;
                }
-yy727:
-               YYDEBUG(727, *YYCURSOR);
+yy743:
+               YYDEBUG(743, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy750;
-               if(yych == 'e') goto yy750;
+               if(yych == 'E') goto yy766;
+               if(yych == 'e') goto yy766;
                goto yy54;
-yy728:
-               YYDEBUG(728, *YYCURSOR);
+yy744:
+               YYDEBUG(744, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy747;
-               if(yych == 'a') goto yy747;
+               if(yych == 'A') goto yy763;
+               if(yych == 'a') goto yy763;
                goto yy54;
-yy729:
-               YYDEBUG(729, *YYCURSOR);
+yy745:
+               YYDEBUG(745, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'P') goto yy705;
+                       if(yych == 'P') goto yy721;
                        if(yych <= 'T') goto yy54;
-                       goto yy704;
+                       goto yy720;
                } else {
                        if(yych <= 'p') {
                                if(yych <= 'o') goto yy54;
-                               goto yy705;
+                               goto yy721;
                        } else {
-                               if(yych == 'u') goto yy704;
+                               if(yych == 'u') goto yy720;
                                goto yy54;
                        }
                }
-yy730:
-               YYDEBUG(730, *YYCURSOR);
+yy746:
+               YYDEBUG(746, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy740;
-               if(yych == 'e') goto yy740;
+               if(yych == 'E') goto yy756;
+               if(yych == 'e') goto yy756;
                goto yy54;
-yy731:
-               YYDEBUG(731, *YYCURSOR);
+yy747:
+               YYDEBUG(747, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy734;
-               if(yych == 'e') goto yy734;
+               if(yych == 'E') goto yy750;
+               if(yych == 'e') goto yy750;
                goto yy54;
-yy732:
-               YYDEBUG(732, *YYCURSOR);
+yy748:
+               YYDEBUG(748, *YYCURSOR);
                ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
                yych = *YYCURSOR;
-yy733:
-               YYDEBUG(733, *YYCURSOR);
+yy749:
+               YYDEBUG(749, *YYCURSOR);
                YYDEBUG(-1, yych);
                switch(yych) {
                case 0x09:
                case ' ':
                case '-':
-               case '.':       goto yy732;
+               case '.':       goto yy748;
                case 'A':
-               case 'a':       goto yy729;
+               case 'a':       goto yy745;
                case 'D':
-               case 'd':       goto yy731;
+               case 'd':       goto yy747;
                case 'F':
-               case 'f':       goto yy727;
+               case 'f':       goto yy743;
                case 'I':       goto yy646;
                case 'J':
                case 'j':       goto yy650;
                case 'M':
-               case 'm':       goto yy728;
+               case 'm':       goto yy744;
                case 'N':
                case 'n':       goto yy653;
                case 'O':
                case 'o':       goto yy652;
                case 'S':
-               case 's':       goto yy730;
+               case 's':       goto yy746;
                case 'V':       goto yy648;
                case 'X':       goto yy649;
                default:        goto yy54;
                }
-yy734:
-               YYDEBUG(734, *YYCURSOR);
+yy750:
+               YYDEBUG(750, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy735;
+               if(yych == 'C') goto yy751;
                if(yych != 'c') goto yy54;
-yy735:
-               YYDEBUG(735, *YYCURSOR);
+yy751:
+               YYDEBUG(751, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy736;
+                               if(yych <= 'E') goto yy752;
                                if(yych != 'e') goto yy647;
                        }
                }
-yy736:
-               YYDEBUG(736, *YYCURSOR);
+yy752:
+               YYDEBUG(752, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy737;
+               if(yych == 'M') goto yy753;
                if(yych != 'm') goto yy54;
-yy737:
-               YYDEBUG(737, *YYCURSOR);
+yy753:
+               YYDEBUG(753, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy738;
+               if(yych == 'B') goto yy754;
                if(yych != 'b') goto yy54;
-yy738:
-               YYDEBUG(738, *YYCURSOR);
+yy754:
+               YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy739;
+               if(yych == 'E') goto yy755;
                if(yych != 'e') goto yy54;
-yy739:
-               YYDEBUG(739, *YYCURSOR);
+yy755:
+               YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy695;
-               if(yych == 'r') goto yy695;
+               if(yych == 'R') goto yy711;
+               if(yych == 'r') goto yy711;
                goto yy54;
-yy740:
-               YYDEBUG(740, *YYCURSOR);
+yy756:
+               YYDEBUG(756, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'P') goto yy741;
+               if(yych == 'P') goto yy757;
                if(yych != 'p') goto yy54;
-yy741:
-               YYDEBUG(741, *YYCURSOR);
+yy757:
+               YYDEBUG(757, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'S') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'T') goto yy742;
+                               if(yych <= 'T') goto yy758;
                                if(yych != 't') goto yy647;
                        }
                }
-yy742:
-               YYDEBUG(742, *YYCURSOR);
+yy758:
+               YYDEBUG(758, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy743;
+                               if(yych <= 'E') goto yy759;
                                if(yych != 'e') goto yy647;
                        }
                }
-yy743:
-               YYDEBUG(743, *YYCURSOR);
+yy759:
+               YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy744;
+               if(yych == 'M') goto yy760;
                if(yych != 'm') goto yy54;
-yy744:
-               YYDEBUG(744, *YYCURSOR);
+yy760:
+               YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy745;
+               if(yych == 'B') goto yy761;
                if(yych != 'b') goto yy54;
-yy745:
-               YYDEBUG(745, *YYCURSOR);
+yy761:
+               YYDEBUG(761, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy746;
+               if(yych == 'E') goto yy762;
                if(yych != 'e') goto yy54;
-yy746:
-               YYDEBUG(746, *YYCURSOR);
+yy762:
+               YYDEBUG(762, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy695;
-               if(yych == 'r') goto yy695;
+               if(yych == 'R') goto yy711;
+               if(yych == 'r') goto yy711;
                goto yy54;
-yy747:
-               YYDEBUG(747, *YYCURSOR);
+yy763:
+               YYDEBUG(763, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
-                       if(yych == 'R') goto yy748;
+                       if(yych == 'R') goto yy764;
                        if(yych <= 'X') goto yy54;
-                       goto yy695;
+                       goto yy711;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy54;
                        } else {
-                               if(yych == 'y') goto yy695;
+                               if(yych == 'y') goto yy711;
                                goto yy54;
                        }
                }
-yy748:
-               YYDEBUG(748, *YYCURSOR);
+yy764:
+               YYDEBUG(764, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'B') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'C') goto yy749;
+                               if(yych <= 'C') goto yy765;
                                if(yych != 'c') goto yy647;
                        }
                }
-yy749:
-               YYDEBUG(749, *YYCURSOR);
+yy765:
+               YYDEBUG(765, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'H') goto yy695;
-               if(yych == 'h') goto yy695;
+               if(yych == 'H') goto yy711;
+               if(yych == 'h') goto yy711;
                goto yy54;
-yy750:
-               YYDEBUG(750, *YYCURSOR);
+yy766:
+               YYDEBUG(766, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy751;
+               if(yych == 'B') goto yy767;
                if(yych != 'b') goto yy54;
-yy751:
-               YYDEBUG(751, *YYCURSOR);
+yy767:
+               YYDEBUG(767, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               goto yy687;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'Q') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'R') goto yy752;
+                               if(yych <= 'R') goto yy768;
                                if(yych != 'r') goto yy647;
                        }
                }
-yy752:
-               YYDEBUG(752, *YYCURSOR);
+yy768:
+               YYDEBUG(768, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'U') goto yy753;
+               if(yych == 'U') goto yy769;
                if(yych != 'u') goto yy54;
-yy753:
-               YYDEBUG(753, *YYCURSOR);
+yy769:
+               YYDEBUG(769, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy754;
+               if(yych == 'A') goto yy770;
                if(yych != 'a') goto yy54;
-yy754:
-               YYDEBUG(754, *YYCURSOR);
+yy770:
+               YYDEBUG(770, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy755;
+               if(yych == 'R') goto yy771;
                if(yych != 'r') goto yy54;
-yy755:
-               YYDEBUG(755, *YYCURSOR);
+yy771:
+               YYDEBUG(771, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy695;
-               if(yych == 'y') goto yy695;
+               if(yych == 'Y') goto yy711;
+               if(yych == 'y') goto yy711;
                goto yy54;
-yy756:
-               YYDEBUG(756, *YYCURSOR);
+yy772:
+               YYDEBUG(772, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy767;
+               if(yych <= '9') goto yy783;
                goto yy54;
-yy757:
-               YYDEBUG(757, *YYCURSOR);
+yy773:
+               YYDEBUG(773, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy758;
-               if(yych <= '6') goto yy759;
-               if(yych <= '9') goto yy760;
+               if(yych <= '5') goto yy774;
+               if(yych <= '6') goto yy775;
+               if(yych <= '9') goto yy776;
                goto yy54;
-yy758:
-               YYDEBUG(758, *YYCURSOR);
+yy774:
+               YYDEBUG(774, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych == '.') goto yy668;
                if(yych <= '/') goto yy662;
-               if(yych <= '9') goto yy766;
+               if(yych <= '9') goto yy782;
                goto yy662;
-yy759:
-               YYDEBUG(759, *YYCURSOR);
+yy775:
+               YYDEBUG(775, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
                        if(yych == '.') goto yy668;
                        goto yy662;
                } else {
-                       if(yych <= '0') goto yy766;
-                       if(yych <= '9') goto yy761;
+                       if(yych <= '0') goto yy782;
+                       if(yych <= '9') goto yy777;
                        goto yy662;
                }
-yy760:
-               YYDEBUG(760, *YYCURSOR);
+yy776:
+               YYDEBUG(776, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych == '.') goto yy668;
                if(yych <= '/') goto yy662;
                if(yych >= ':') goto yy662;
-yy761:
-               YYDEBUG(761, *YYCURSOR);
+yy777:
+               YYDEBUG(777, *YYCURSOR);
                yyaccept = 13;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych <= '/') goto yy762;
-               if(yych <= '9') goto yy763;
-yy762:
-               YYDEBUG(762, *YYCURSOR);
-#line 1255 "ext/date/lib/parse_date.re"
+               if(yych <= '/') goto yy778;
+               if(yych <= '9') goto yy779;
+yy778:
+               YYDEBUG(778, *YYCURSOR);
+#line 1280 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("pointed date YY");
                TIMELIB_INIT;
@@ -13206,16 +13377,16 @@ yy762:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_FULL_POINTED;
        }
-#line 13210 "ext/date/lib/parse_date.c"
-yy763:
-               YYDEBUG(763, *YYCURSOR);
+#line 13381 "ext/date/lib/parse_date.c"
+yy779:
+               YYDEBUG(779, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(764, *YYCURSOR);
+               YYDEBUG(780, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(765, *YYCURSOR);
-#line 1243 "ext/date/lib/parse_date.re"
+               YYDEBUG(781, *YYCURSOR);
+#line 1268 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("pointed date YYYY");
                TIMELIB_INIT;
@@ -13226,9 +13397,9 @@ yy763:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_FULL_POINTED;
        }
-#line 13230 "ext/date/lib/parse_date.c"
-yy766:
-               YYDEBUG(766, *YYCURSOR);
+#line 13401 "ext/date/lib/parse_date.c"
+yy782:
+               YYDEBUG(782, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '9') {
@@ -13239,7 +13410,7 @@ yy766:
                        } else {
                                if(yych == '.') goto yy668;
                                if(yych <= '/') goto yy662;
-                               goto yy763;
+                               goto yy779;
                        }
                } else {
                        if(yych <= 'P') {
@@ -13256,14 +13427,43 @@ yy766:
                                }
                        }
                }
-yy767:
-               YYDEBUG(767, *YYCURSOR);
+yy783:
+               YYDEBUG(783, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy761;
+               if(yych <= '9') goto yy777;
                goto yy54;
-yy768:
-               YYDEBUG(768, *YYCURSOR);
+yy784:
+               YYDEBUG(784, *YYCURSOR);
+               yyaccept = 12;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if(yych <= ':') {
+                       if(yych <= ' ') {
+                               if(yych == 0x09) goto yy679;
+                               if(yych <= 0x1F) goto yy662;
+                               goto yy679;
+                       } else {
+                               if(yych == '.') goto yy664;
+                               if(yych <= '9') goto yy662;
+                               goto yy664;
+                       }
+               } else {
+                       if(yych <= 'P') {
+                               if(yych == 'A') goto yy681;
+                               if(yych <= 'O') goto yy662;
+                               goto yy681;
+                       } else {
+                               if(yych <= 'a') {
+                                       if(yych <= '`') goto yy662;
+                                       goto yy681;
+                               } else {
+                                       if(yych == 'p') goto yy681;
+                                       goto yy662;
+                               }
+                       }
+               }
+yy785:
+               YYDEBUG(785, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ':') {
@@ -13274,9 +13474,9 @@ yy768:
                        } else {
                                if(yych <= '-') {
                                        if(yych <= ',') goto yy662;
-                                       goto yy756;
+                                       goto yy772;
                                } else {
-                                       if(yych <= '.') goto yy757;
+                                       if(yych <= '.') goto yy773;
                                        if(yych <= '9') goto yy662;
                                        goto yy664;
                                }
@@ -13296,555 +13496,555 @@ yy768:
                                }
                        }
                }
-yy769:
-               YYDEBUG(769, *YYCURSOR);
+yy786:
+               YYDEBUG(786, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '.') {
                        if(yych <= ',') goto yy54;
-                       if(yych <= '-') goto yy808;
-                       goto yy756;
+                       if(yych <= '-') goto yy825;
+                       goto yy772;
                } else {
                        if(yych <= '/') goto yy54;
-                       if(yych <= '9') goto yy771;
+                       if(yych <= '9') goto yy788;
                        goto yy54;
                }
-yy770:
-               YYDEBUG(770, *YYCURSOR);
+yy787:
+               YYDEBUG(787, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '.') {
                        if(yych <= ',') goto yy54;
-                       if(yych <= '-') goto yy808;
-                       goto yy756;
+                       if(yych <= '-') goto yy825;
+                       goto yy772;
                } else {
                        if(yych <= '/') goto yy54;
                        if(yych >= '3') goto yy54;
                }
-yy771:
-               YYDEBUG(771, *YYCURSOR);
+yy788:
+               YYDEBUG(788, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= ',') goto yy54;
-               if(yych <= '-') goto yy808;
-               if(yych <= '.') goto yy756;
+               if(yych <= '-') goto yy825;
+               if(yych <= '.') goto yy772;
                goto yy54;
-yy772:
-               YYDEBUG(772, *YYCURSOR);
+yy789:
+               YYDEBUG(789, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'A') goto yy804;
+                       if(yych == 'A') goto yy821;
                        if(yych <= 'T') goto yy54;
-                       goto yy803;
+                       goto yy820;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
-                               goto yy804;
+                               goto yy821;
                        } else {
-                               if(yych == 'u') goto yy803;
+                               if(yych == 'u') goto yy820;
                                goto yy54;
                        }
                }
-yy773:
-               YYDEBUG(773, *YYCURSOR);
+yy790:
+               YYDEBUG(790, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy801;
-               if(yych == 'e') goto yy801;
+               if(yych == 'E') goto yy818;
+               if(yych == 'e') goto yy818;
                goto yy54;
-yy774:
-               YYDEBUG(774, *YYCURSOR);
+yy791:
+               YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy798;
-               if(yych == 'a') goto yy798;
+               if(yych == 'A') goto yy815;
+               if(yych == 'a') goto yy815;
                goto yy54;
-yy775:
-               YYDEBUG(775, *YYCURSOR);
+yy792:
+               YYDEBUG(792, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'P') goto yy795;
+                       if(yych == 'P') goto yy812;
                        if(yych <= 'T') goto yy54;
-                       goto yy794;
+                       goto yy811;
                } else {
                        if(yych <= 'p') {
                                if(yych <= 'o') goto yy54;
-                               goto yy795;
+                               goto yy812;
                        } else {
-                               if(yych == 'u') goto yy794;
+                               if(yych == 'u') goto yy811;
                                goto yy54;
                        }
                }
-yy776:
-               YYDEBUG(776, *YYCURSOR);
+yy793:
+               YYDEBUG(793, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy791;
-               if(yych == 'e') goto yy791;
+               if(yych == 'E') goto yy808;
+               if(yych == 'e') goto yy808;
                goto yy54;
-yy777:
-               YYDEBUG(777, *YYCURSOR);
+yy794:
+               YYDEBUG(794, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy789;
-               if(yych == 'c') goto yy789;
+               if(yych == 'C') goto yy806;
+               if(yych == 'c') goto yy806;
                goto yy54;
-yy778:
-               YYDEBUG(778, *YYCURSOR);
+yy795:
+               YYDEBUG(795, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy787;
-               if(yych == 'o') goto yy787;
+               if(yych == 'O') goto yy804;
+               if(yych == 'o') goto yy804;
                goto yy54;
-yy779:
-               YYDEBUG(779, *YYCURSOR);
+yy796:
+               YYDEBUG(796, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy780;
+               if(yych == 'E') goto yy797;
                if(yych != 'e') goto yy54;
-yy780:
-               YYDEBUG(780, *YYCURSOR);
+yy797:
+               YYDEBUG(797, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy781;
+               if(yych == 'C') goto yy798;
                if(yych != 'c') goto yy54;
-yy781:
-               YYDEBUG(781, *YYCURSOR);
+yy798:
+               YYDEBUG(798, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych >= '.') goto yy687;
+                               if(yych >= '.') goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy736;
-                               if(yych == 'e') goto yy736;
+                               if(yych <= 'E') goto yy752;
+                               if(yych == 'e') goto yy752;
                                goto yy647;
                        }
                }
-yy782:
-               YYDEBUG(782, *YYCURSOR);
+yy799:
+               YYDEBUG(799, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy688;
-               if(yych <= '0') goto yy783;
-               if(yych <= '2') goto yy784;
-               if(yych <= '3') goto yy785;
-               goto yy688;
-yy783:
-               YYDEBUG(783, *YYCURSOR);
+               if(yych <= '/') goto yy704;
+               if(yych <= '0') goto yy800;
+               if(yych <= '2') goto yy801;
+               if(yych <= '3') goto yy802;
+               goto yy704;
+yy800:
+               YYDEBUG(800, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy690;
-               if(yych <= '9') goto yy786;
-               goto yy690;
-yy784:
-               YYDEBUG(784, *YYCURSOR);
+               if(yych <= '/') goto yy706;
+               if(yych <= '9') goto yy803;
+               goto yy706;
+yy801:
+               YYDEBUG(801, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy690;
-               if(yych <= '9') goto yy786;
-               goto yy690;
-yy785:
-               YYDEBUG(785, *YYCURSOR);
+               if(yych <= '/') goto yy706;
+               if(yych <= '9') goto yy803;
+               goto yy706;
+yy802:
+               YYDEBUG(802, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy690;
-               if(yych <= '1') goto yy786;
-               if(yych <= '9') goto yy696;
-               goto yy690;
-yy786:
-               YYDEBUG(786, *YYCURSOR);
+               if(yych <= '/') goto yy706;
+               if(yych <= '1') goto yy803;
+               if(yych <= '9') goto yy712;
+               goto yy706;
+yy803:
+               YYDEBUG(803, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy690;
-               if(yych <= '9') goto yy697;
-               goto yy690;
-yy787:
-               YYDEBUG(787, *YYCURSOR);
+               if(yych <= '/') goto yy706;
+               if(yych <= '9') goto yy713;
+               goto yy706;
+yy804:
+               YYDEBUG(804, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'V') goto yy788;
+               if(yych == 'V') goto yy805;
                if(yych != 'v') goto yy54;
-yy788:
-               YYDEBUG(788, *YYCURSOR);
+yy805:
+               YYDEBUG(805, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy691;
-                               if(yych == 'e') goto yy691;
+                               if(yych <= 'E') goto yy707;
+                               if(yych == 'e') goto yy707;
                                goto yy647;
                        }
                }
-yy789:
-               YYDEBUG(789, *YYCURSOR);
+yy806:
+               YYDEBUG(806, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy790;
+               if(yych == 'T') goto yy807;
                if(yych != 't') goto yy54;
-yy790:
-               YYDEBUG(790, *YYCURSOR);
+yy807:
+               YYDEBUG(807, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'N') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'O') goto yy701;
-                               if(yych == 'o') goto yy701;
+                               if(yych <= 'O') goto yy717;
+                               if(yych == 'o') goto yy717;
                                goto yy647;
                        }
                }
-yy791:
-               YYDEBUG(791, *YYCURSOR);
+yy808:
+               YYDEBUG(808, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'P') goto yy792;
+               if(yych == 'P') goto yy809;
                if(yych != 'p') goto yy54;
-yy792:
-               YYDEBUG(792, *YYCURSOR);
+yy809:
+               YYDEBUG(809, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'S') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'T') goto yy793;
+                               if(yych <= 'T') goto yy810;
                                if(yych != 't') goto yy647;
                        }
                }
-yy793:
-               YYDEBUG(793, *YYCURSOR);
+yy810:
+               YYDEBUG(810, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy743;
-                               if(yych == 'e') goto yy743;
+                               if(yych <= 'E') goto yy759;
+                               if(yych == 'e') goto yy759;
                                goto yy647;
                        }
                }
-yy794:
-               YYDEBUG(794, *YYCURSOR);
+yy811:
+               YYDEBUG(811, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'G') goto yy797;
-               if(yych == 'g') goto yy797;
+               if(yych == 'G') goto yy814;
+               if(yych == 'g') goto yy814;
                goto yy54;
-yy795:
-               YYDEBUG(795, *YYCURSOR);
+yy812:
+               YYDEBUG(812, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy796;
+               if(yych == 'R') goto yy813;
                if(yych != 'r') goto yy54;
-yy796:
-               YYDEBUG(796, *YYCURSOR);
+yy813:
+               YYDEBUG(813, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'H') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'I') goto yy707;
-                               if(yych == 'i') goto yy707;
+                               if(yych <= 'I') goto yy723;
+                               if(yych == 'i') goto yy723;
                                goto yy647;
                        }
                }
-yy797:
-               YYDEBUG(797, *YYCURSOR);
+yy814:
+               YYDEBUG(814, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'T') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'U') goto yy709;
-                               if(yych == 'u') goto yy709;
+                               if(yych <= 'U') goto yy725;
+                               if(yych == 'u') goto yy725;
                                goto yy647;
                        }
                }
-yy798:
-               YYDEBUG(798, *YYCURSOR);
+yy815:
+               YYDEBUG(815, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
-                       if(yych == 'R') goto yy799;
+                       if(yych == 'R') goto yy816;
                        if(yych <= 'X') goto yy54;
-                       goto yy800;
+                       goto yy817;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy54;
                        } else {
-                               if(yych == 'y') goto yy800;
+                               if(yych == 'y') goto yy817;
                                goto yy54;
                        }
                }
-yy799:
-               YYDEBUG(799, *YYCURSOR);
+yy816:
+               YYDEBUG(816, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'B') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'C') goto yy749;
-                               if(yych == 'c') goto yy749;
+                               if(yych <= 'C') goto yy765;
+                               if(yych == 'c') goto yy765;
                                goto yy647;
                        }
                }
-yy800:
-               YYDEBUG(800, *YYCURSOR);
+yy817:
+               YYDEBUG(817, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= ',') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy647;
-                               goto yy687;
+                               goto yy703;
                        } else {
-                               if(yych == ' ') goto yy687;
+                               if(yych == ' ') goto yy703;
                                goto yy647;
                        }
                } else {
                        if(yych <= '.') {
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        } else {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        }
                }
-yy801:
-               YYDEBUG(801, *YYCURSOR);
+yy818:
+               YYDEBUG(818, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy802;
+               if(yych == 'B') goto yy819;
                if(yych != 'b') goto yy54;
-yy802:
-               YYDEBUG(802, *YYCURSOR);
+yy819:
+               YYDEBUG(819, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'Q') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'R') goto yy752;
-                               if(yych == 'r') goto yy752;
+                               if(yych <= 'R') goto yy768;
+                               if(yych == 'r') goto yy768;
                                goto yy647;
                        }
                }
-yy803:
-               YYDEBUG(803, *YYCURSOR);
+yy820:
+               YYDEBUG(820, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
-                       if(yych == 'L') goto yy807;
+                       if(yych == 'L') goto yy824;
                        if(yych <= 'M') goto yy54;
-                       goto yy806;
+                       goto yy823;
                } else {
                        if(yych <= 'l') {
                                if(yych <= 'k') goto yy54;
-                               goto yy807;
+                               goto yy824;
                        } else {
-                               if(yych == 'n') goto yy806;
+                               if(yych == 'n') goto yy823;
                                goto yy54;
                        }
                }
-yy804:
-               YYDEBUG(804, *YYCURSOR);
+yy821:
+               YYDEBUG(821, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'N') goto yy805;
+               if(yych == 'N') goto yy822;
                if(yych != 'n') goto yy54;
-yy805:
-               YYDEBUG(805, *YYCURSOR);
+yy822:
+               YYDEBUG(822, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'T') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'U') goto yy714;
-                               if(yych == 'u') goto yy714;
+                               if(yych <= 'U') goto yy730;
+                               if(yych == 'u') goto yy730;
                                goto yy647;
                        }
                }
-yy806:
-               YYDEBUG(806, *YYCURSOR);
+yy823:
+               YYDEBUG(823, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'D') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'E') goto yy695;
-                               if(yych == 'e') goto yy695;
+                               if(yych <= 'E') goto yy711;
+                               if(yych == 'e') goto yy711;
                                goto yy647;
                        }
                }
-yy807:
-               YYDEBUG(807, *YYCURSOR);
+yy824:
+               YYDEBUG(824, *YYCURSOR);
                yyaccept = 11;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= 0x1F) {
-                               if(yych == 0x09) goto yy687;
+                               if(yych == 0x09) goto yy703;
                                goto yy647;
                        } else {
-                               if(yych <= ' ') goto yy687;
+                               if(yych <= ' ') goto yy703;
                                if(yych <= ',') goto yy647;
-                               if(yych <= '-') goto yy782;
-                               goto yy687;
+                               if(yych <= '-') goto yy799;
+                               goto yy703;
                        }
                } else {
                        if(yych <= 'X') {
                                if(yych <= '/') goto yy647;
-                               if(yych <= '9') goto yy689;
+                               if(yych <= '9') goto yy705;
                                goto yy647;
                        } else {
-                               if(yych <= 'Y') goto yy695;
-                               if(yych == 'y') goto yy695;
+                               if(yych <= 'Y') goto yy711;
+                               if(yych == 'y') goto yy711;
                                goto yy647;
                        }
                }
-yy808:
-               YYDEBUG(808, *YYCURSOR);
+yy825:
+               YYDEBUG(825, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '2') goto yy809;
-               if(yych <= '3') goto yy811;
-               if(yych <= '9') goto yy812;
+               if(yych <= '2') goto yy826;
+               if(yych <= '3') goto yy828;
+               if(yych <= '9') goto yy829;
                goto yy54;
-yy809:
-               YYDEBUG(809, *YYCURSOR);
+yy826:
+               YYDEBUG(826, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy818;
-                       if(yych >= 'n') goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy835;
+                       if(yych >= 'n') goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych >= 'r') goto yy815;
+                               if(yych >= 'r') goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
                        }
                }
-yy810:
-               YYDEBUG(810, *YYCURSOR);
-#line 1216 "ext/date/lib/parse_date.re"
+yy827:
+               YYDEBUG(827, *YYCURSOR);
+#line 1241 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("gnudateshort");
                TIMELIB_INIT;
@@ -13856,113 +14056,113 @@ yy810:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 13860 "ext/date/lib/parse_date.c"
-yy811:
-               YYDEBUG(811, *YYCURSOR);
+#line 14060 "ext/date/lib/parse_date.c"
+yy828:
+               YYDEBUG(828, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '1') {
-                               if(yych <= '/') goto yy810;
-                               goto yy818;
+                               if(yych <= '/') goto yy827;
+                               goto yy835;
                        } else {
-                               if(yych <= '9') goto yy761;
-                               if(yych <= 'm') goto yy810;
-                               goto yy814;
+                               if(yych <= '9') goto yy777;
+                               if(yych <= 'm') goto yy827;
+                               goto yy831;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy812:
-               YYDEBUG(812, *YYCURSOR);
+yy829:
+               YYDEBUG(829, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy761;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy777;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy813:
-               YYDEBUG(813, *YYCURSOR);
+yy830:
+               YYDEBUG(830, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 't') goto yy817;
+               if(yych == 't') goto yy834;
                goto yy54;
-yy814:
-               YYDEBUG(814, *YYCURSOR);
+yy831:
+               YYDEBUG(831, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy817;
+               if(yych == 'd') goto yy834;
                goto yy54;
-yy815:
-               YYDEBUG(815, *YYCURSOR);
+yy832:
+               YYDEBUG(832, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy817;
+               if(yych == 'd') goto yy834;
                goto yy54;
-yy816:
-               YYDEBUG(816, *YYCURSOR);
+yy833:
+               YYDEBUG(833, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != 'h') goto yy54;
-yy817:
-               YYDEBUG(817, *YYCURSOR);
+yy834:
+               YYDEBUG(834, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy810;
-yy818:
-               YYDEBUG(818, *YYCURSOR);
+               goto yy827;
+yy835:
+               YYDEBUG(835, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy763;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy779;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy819:
-               YYDEBUG(819, *YYCURSOR);
+yy836:
+               YYDEBUG(836, *YYCURSOR);
                yyaccept = 15;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') {
-                               if(yych >= '/') goto yy876;
+                               if(yych >= '/') goto yy893;
                        } else {
-                               if(yych <= '9') goto yy822;
-                               if(yych >= 'n') goto yy873;
+                               if(yych <= '9') goto yy839;
+                               if(yych >= 'n') goto yy890;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych >= 'r') goto yy874;
+                               if(yych >= 'r') goto yy891;
                        } else {
-                               if(yych <= 's') goto yy872;
-                               if(yych <= 't') goto yy875;
+                               if(yych <= 's') goto yy889;
+                               if(yych <= 't') goto yy892;
                        }
                }
-yy820:
-               YYDEBUG(820, *YYCURSOR);
-#line 1164 "ext/date/lib/parse_date.re"
+yy837:
+               YYDEBUG(837, *YYCURSOR);
+#line 1189 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("americanshort | american");
                TIMELIB_INIT;
@@ -13976,240 +14176,240 @@ yy820:
                TIMELIB_DEINIT;
                return TIMELIB_AMERICAN;
        }
-#line 13980 "ext/date/lib/parse_date.c"
-yy821:
-               YYDEBUG(821, *YYCURSOR);
+#line 14180 "ext/date/lib/parse_date.c"
+yy838:
+               YYDEBUG(838, *YYCURSOR);
                yyaccept = 15;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') {
-                               if(yych <= '.') goto yy820;
-                               goto yy876;
+                               if(yych <= '.') goto yy837;
+                               goto yy893;
                        } else {
-                               if(yych <= '1') goto yy822;
-                               if(yych <= 'm') goto yy820;
-                               goto yy873;
+                               if(yych <= '1') goto yy839;
+                               if(yych <= 'm') goto yy837;
+                               goto yy890;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy820;
-                               goto yy874;
+                               if(yych <= 'q') goto yy837;
+                               goto yy891;
                        } else {
-                               if(yych <= 's') goto yy872;
-                               if(yych <= 't') goto yy875;
-                               goto yy820;
+                               if(yych <= 's') goto yy889;
+                               if(yych <= 't') goto yy892;
+                               goto yy837;
                        }
                }
-yy822:
-               YYDEBUG(822, *YYCURSOR);
+yy839:
+               YYDEBUG(839, *YYCURSOR);
                yyaccept = 15;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych == '/') goto yy876;
-                       if(yych <= 'm') goto yy820;
-                       goto yy873;
+                       if(yych == '/') goto yy893;
+                       if(yych <= 'm') goto yy837;
+                       goto yy890;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy820;
-                               goto yy874;
+                               if(yych <= 'q') goto yy837;
+                               goto yy891;
                        } else {
-                               if(yych <= 's') goto yy872;
-                               if(yych <= 't') goto yy875;
-                               goto yy820;
+                               if(yych <= 's') goto yy889;
+                               if(yych <= 't') goto yy892;
+                               goto yy837;
                        }
                }
-yy823:
-               YYDEBUG(823, *YYCURSOR);
+yy840:
+               YYDEBUG(840, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'A') goto yy871;
+                       if(yych == 'A') goto yy888;
                        if(yych <= 'T') goto yy54;
-                       goto yy870;
+                       goto yy887;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
-                               goto yy871;
+                               goto yy888;
                        } else {
-                               if(yych == 'u') goto yy870;
+                               if(yych == 'u') goto yy887;
                                goto yy54;
                        }
                }
-yy824:
-               YYDEBUG(824, *YYCURSOR);
+yy841:
+               YYDEBUG(841, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy869;
-               if(yych == 'e') goto yy869;
+               if(yych == 'E') goto yy886;
+               if(yych == 'e') goto yy886;
                goto yy54;
-yy825:
-               YYDEBUG(825, *YYCURSOR);
+yy842:
+               YYDEBUG(842, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy868;
-               if(yych == 'a') goto yy868;
+               if(yych == 'A') goto yy885;
+               if(yych == 'a') goto yy885;
                goto yy54;
-yy826:
-               YYDEBUG(826, *YYCURSOR);
+yy843:
+               YYDEBUG(843, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'P') goto yy867;
+                       if(yych == 'P') goto yy884;
                        if(yych <= 'T') goto yy54;
-                       goto yy866;
+                       goto yy883;
                } else {
                        if(yych <= 'p') {
                                if(yych <= 'o') goto yy54;
-                               goto yy867;
+                               goto yy884;
                        } else {
-                               if(yych == 'u') goto yy866;
+                               if(yych == 'u') goto yy883;
                                goto yy54;
                        }
                }
-yy827:
-               YYDEBUG(827, *YYCURSOR);
+yy844:
+               YYDEBUG(844, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy864;
-               if(yych == 'e') goto yy864;
+               if(yych == 'E') goto yy881;
+               if(yych == 'e') goto yy881;
                goto yy54;
-yy828:
-               YYDEBUG(828, *YYCURSOR);
+yy845:
+               YYDEBUG(845, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy863;
-               if(yych == 'c') goto yy863;
+               if(yych == 'C') goto yy880;
+               if(yych == 'c') goto yy880;
                goto yy54;
-yy829:
-               YYDEBUG(829, *YYCURSOR);
+yy846:
+               YYDEBUG(846, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy862;
-               if(yych == 'o') goto yy862;
+               if(yych == 'O') goto yy879;
+               if(yych == 'o') goto yy879;
                goto yy54;
-yy830:
-               YYDEBUG(830, *YYCURSOR);
+yy847:
+               YYDEBUG(847, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy831;
+               if(yych == 'E') goto yy848;
                if(yych != 'e') goto yy54;
-yy831:
-               YYDEBUG(831, *YYCURSOR);
+yy848:
+               YYDEBUG(848, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy832;
+               if(yych == 'C') goto yy849;
                if(yych != 'c') goto yy54;
-yy832:
-               YYDEBUG(832, *YYCURSOR);
+yy849:
+               YYDEBUG(849, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '/') goto yy54;
-yy833:
-               YYDEBUG(833, *YYCURSOR);
+yy850:
+               YYDEBUG(850, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(834, *YYCURSOR);
+               YYDEBUG(851, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(835, *YYCURSOR);
+               YYDEBUG(852, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(836, *YYCURSOR);
+               YYDEBUG(853, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(837, *YYCURSOR);
+               YYDEBUG(854, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(838, *YYCURSOR);
+               YYDEBUG(855, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '1') goto yy839;
-               if(yych <= '2') goto yy840;
+               if(yych <= '1') goto yy856;
+               if(yych <= '2') goto yy857;
                goto yy54;
-yy839:
-               YYDEBUG(839, *YYCURSOR);
+yy856:
+               YYDEBUG(856, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy841;
+               if(yych <= '9') goto yy858;
                goto yy54;
-yy840:
-               YYDEBUG(840, *YYCURSOR);
+yy857:
+               YYDEBUG(857, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '5') goto yy54;
-yy841:
-               YYDEBUG(841, *YYCURSOR);
+yy858:
+               YYDEBUG(858, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(842, *YYCURSOR);
+               YYDEBUG(859, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '6') goto yy54;
-               YYDEBUG(843, *YYCURSOR);
+               YYDEBUG(860, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(844, *YYCURSOR);
+               YYDEBUG(861, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(845, *YYCURSOR);
+               YYDEBUG(862, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy846;
-               if(yych <= '6') goto yy847;
+               if(yych <= '5') goto yy863;
+               if(yych <= '6') goto yy864;
                goto yy54;
-yy846:
-               YYDEBUG(846, *YYCURSOR);
+yy863:
+               YYDEBUG(863, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy848;
+               if(yych <= '9') goto yy865;
                goto yy54;
-yy847:
-               YYDEBUG(847, *YYCURSOR);
+yy864:
+               YYDEBUG(864, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '0') goto yy54;
-yy848:
-               YYDEBUG(848, *YYCURSOR);
+yy865:
+               YYDEBUG(865, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 0x09) goto yy849;
+               if(yych == 0x09) goto yy866;
                if(yych != ' ') goto yy54;
-yy849:
-               YYDEBUG(849, *YYCURSOR);
+yy866:
+               YYDEBUG(866, *YYCURSOR);
                ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
                yych = *YYCURSOR;
-               YYDEBUG(850, *YYCURSOR);
+               YYDEBUG(867, *YYCURSOR);
                if(yych <= '*') {
                        if(yych <= 0x09) {
                                if(yych <= 0x08) goto yy54;
-                               goto yy849;
+                               goto yy866;
                        } else {
-                               if(yych == ' ') goto yy849;
+                               if(yych == ' ') goto yy866;
                                goto yy54;
                        }
                } else {
                        if(yych <= '-') {
                                if(yych == ',') goto yy54;
-                               goto yy852;
+                               goto yy869;
                        } else {
                                if(yych != 'G') goto yy54;
                        }
                }
-               YYDEBUG(851, *YYCURSOR);
+               YYDEBUG(868, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy860;
+               if(yych == 'M') goto yy877;
                goto yy54;
-yy852:
-               YYDEBUG(852, *YYCURSOR);
+yy869:
+               YYDEBUG(869, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '1') goto yy853;
-               if(yych <= '2') goto yy855;
-               if(yych <= '9') goto yy856;
+               if(yych <= '1') goto yy870;
+               if(yych <= '2') goto yy872;
+               if(yych <= '9') goto yy873;
                goto yy54;
-yy853:
-               YYDEBUG(853, *YYCURSOR);
+yy870:
+               YYDEBUG(870, *YYCURSOR);
                ++YYCURSOR;
-               if((yych = *YYCURSOR) <= '/') goto yy854;
-               if(yych <= '9') goto yy856;
-               if(yych <= ':') goto yy857;
-yy854:
-               YYDEBUG(854, *YYCURSOR);
-#line 1434 "ext/date/lib/parse_date.re"
+               if((yych = *YYCURSOR) <= '/') goto yy871;
+               if(yych <= '9') goto yy873;
+               if(yych <= ':') goto yy874;
+yy871:
+               YYDEBUG(871, *YYCURSOR);
+#line 1459 "ext/date/lib/parse_date.re"
                {
                int tz_not_found;
                DEBUG_OUTPUT("clf");
@@ -14229,256 +14429,256 @@ yy854:
                TIMELIB_DEINIT;
                return TIMELIB_CLF;
        }
-#line 14233 "ext/date/lib/parse_date.c"
-yy855:
-               YYDEBUG(855, *YYCURSOR);
+#line 14433 "ext/date/lib/parse_date.c"
+yy872:
+               YYDEBUG(872, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '5') {
-                       if(yych <= '/') goto yy854;
-                       if(yych >= '5') goto yy858;
+                       if(yych <= '/') goto yy871;
+                       if(yych >= '5') goto yy875;
                } else {
-                       if(yych <= '9') goto yy859;
-                       if(yych <= ':') goto yy857;
-                       goto yy854;
+                       if(yych <= '9') goto yy876;
+                       if(yych <= ':') goto yy874;
+                       goto yy871;
                }
-yy856:
-               YYDEBUG(856, *YYCURSOR);
+yy873:
+               YYDEBUG(873, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy854;
-               if(yych <= '5') goto yy858;
-               if(yych <= '9') goto yy859;
-               if(yych >= ';') goto yy854;
-yy857:
-               YYDEBUG(857, *YYCURSOR);
+               if(yych <= '/') goto yy871;
+               if(yych <= '5') goto yy875;
+               if(yych <= '9') goto yy876;
+               if(yych >= ';') goto yy871;
+yy874:
+               YYDEBUG(874, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy854;
-               if(yych <= '5') goto yy858;
-               if(yych <= '9') goto yy859;
-               goto yy854;
-yy858:
-               YYDEBUG(858, *YYCURSOR);
+               if(yych <= '/') goto yy871;
+               if(yych <= '5') goto yy875;
+               if(yych <= '9') goto yy876;
+               goto yy871;
+yy875:
+               YYDEBUG(875, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy854;
-               if(yych >= ':') goto yy854;
-yy859:
-               YYDEBUG(859, *YYCURSOR);
+               if(yych <= '/') goto yy871;
+               if(yych >= ':') goto yy871;
+yy876:
+               YYDEBUG(876, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy854;
-yy860:
-               YYDEBUG(860, *YYCURSOR);
+               goto yy871;
+yy877:
+               YYDEBUG(877, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != 'T') goto yy54;
-               YYDEBUG(861, *YYCURSOR);
+               YYDEBUG(878, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '+') goto yy852;
-               if(yych == '-') goto yy852;
+               if(yych == '+') goto yy869;
+               if(yych == '-') goto yy869;
                goto yy54;
-yy862:
-               YYDEBUG(862, *YYCURSOR);
+yy879:
+               YYDEBUG(879, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'V') goto yy832;
-               if(yych == 'v') goto yy832;
+               if(yych == 'V') goto yy849;
+               if(yych == 'v') goto yy849;
                goto yy54;
-yy863:
-               YYDEBUG(863, *YYCURSOR);
+yy880:
+               YYDEBUG(880, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy832;
-               if(yych == 't') goto yy832;
+               if(yych == 'T') goto yy849;
+               if(yych == 't') goto yy849;
                goto yy54;
-yy864:
-               YYDEBUG(864, *YYCURSOR);
+yy881:
+               YYDEBUG(881, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'P') goto yy865;
+               if(yych == 'P') goto yy882;
                if(yych != 'p') goto yy54;
-yy865:
-               YYDEBUG(865, *YYCURSOR);
+yy882:
+               YYDEBUG(882, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
-                       if(yych == '/') goto yy833;
+                       if(yych == '/') goto yy850;
                        goto yy54;
                } else {
-                       if(yych <= 'T') goto yy832;
-                       if(yych == 't') goto yy832;
+                       if(yych <= 'T') goto yy849;
+                       if(yych == 't') goto yy849;
                        goto yy54;
                }
-yy866:
-               YYDEBUG(866, *YYCURSOR);
+yy883:
+               YYDEBUG(883, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'G') goto yy832;
-               if(yych == 'g') goto yy832;
+               if(yych == 'G') goto yy849;
+               if(yych == 'g') goto yy849;
                goto yy54;
-yy867:
-               YYDEBUG(867, *YYCURSOR);
+yy884:
+               YYDEBUG(884, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy832;
-               if(yych == 'r') goto yy832;
+               if(yych == 'R') goto yy849;
+               if(yych == 'r') goto yy849;
                goto yy54;
-yy868:
-               YYDEBUG(868, *YYCURSOR);
+yy885:
+               YYDEBUG(885, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
-                       if(yych == 'R') goto yy832;
+                       if(yych == 'R') goto yy849;
                        if(yych <= 'X') goto yy54;
-                       goto yy832;
+                       goto yy849;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy54;
-                               goto yy832;
+                               goto yy849;
                        } else {
-                               if(yych == 'y') goto yy832;
+                               if(yych == 'y') goto yy849;
                                goto yy54;
                        }
                }
-yy869:
-               YYDEBUG(869, *YYCURSOR);
+yy886:
+               YYDEBUG(886, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy832;
-               if(yych == 'b') goto yy832;
+               if(yych == 'B') goto yy849;
+               if(yych == 'b') goto yy849;
                goto yy54;
-yy870:
-               YYDEBUG(870, *YYCURSOR);
+yy887:
+               YYDEBUG(887, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
-                       if(yych == 'L') goto yy832;
+                       if(yych == 'L') goto yy849;
                        if(yych <= 'M') goto yy54;
-                       goto yy832;
+                       goto yy849;
                } else {
                        if(yych <= 'l') {
                                if(yych <= 'k') goto yy54;
-                               goto yy832;
+                               goto yy849;
                        } else {
-                               if(yych == 'n') goto yy832;
+                               if(yych == 'n') goto yy849;
                                goto yy54;
                        }
                }
-yy871:
-               YYDEBUG(871, *YYCURSOR);
+yy888:
+               YYDEBUG(888, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'N') goto yy832;
-               if(yych == 'n') goto yy832;
+               if(yych == 'N') goto yy849;
+               if(yych == 'n') goto yy849;
                goto yy54;
-yy872:
-               YYDEBUG(872, *YYCURSOR);
+yy889:
+               YYDEBUG(889, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 't') goto yy881;
+               if(yych == 't') goto yy898;
                goto yy54;
-yy873:
-               YYDEBUG(873, *YYCURSOR);
+yy890:
+               YYDEBUG(890, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy881;
+               if(yych == 'd') goto yy898;
                goto yy54;
-yy874:
-               YYDEBUG(874, *YYCURSOR);
+yy891:
+               YYDEBUG(891, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy881;
+               if(yych == 'd') goto yy898;
                goto yy54;
-yy875:
-               YYDEBUG(875, *YYCURSOR);
+yy892:
+               YYDEBUG(892, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'h') goto yy881;
+               if(yych == 'h') goto yy898;
                goto yy54;
-yy876:
-               YYDEBUG(876, *YYCURSOR);
+yy893:
+               YYDEBUG(893, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(877, *YYCURSOR);
+               YYDEBUG(894, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy820;
-               if(yych >= ':') goto yy820;
-               YYDEBUG(878, *YYCURSOR);
+               if(yych <= '/') goto yy837;
+               if(yych >= ':') goto yy837;
+               YYDEBUG(895, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy820;
-               if(yych >= ':') goto yy820;
-               YYDEBUG(879, *YYCURSOR);
+               if(yych <= '/') goto yy837;
+               if(yych >= ':') goto yy837;
+               YYDEBUG(896, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy820;
-               if(yych >= ':') goto yy820;
-               YYDEBUG(880, *YYCURSOR);
+               if(yych <= '/') goto yy837;
+               if(yych >= ':') goto yy837;
+               YYDEBUG(897, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy820;
-yy881:
-               YYDEBUG(881, *YYCURSOR);
+               goto yy837;
+yy898:
+               YYDEBUG(898, *YYCURSOR);
                yyaccept = 15;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '/') goto yy876;
-               goto yy820;
-yy882:
-               YYDEBUG(882, *YYCURSOR);
+               if(yych == '/') goto yy893;
+               goto yy837;
+yy899:
+               YYDEBUG(899, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= ',') {
-                       if(yych == 0x09) goto yy884;
-                       goto yy733;
+                       if(yych == 0x09) goto yy901;
+                       goto yy749;
                } else {
-                       if(yych <= '.') goto yy884;
-                       if(yych >= '0') goto yy733;
+                       if(yych <= '.') goto yy901;
+                       if(yych >= '0') goto yy749;
                }
-yy883:
-               YYDEBUG(883, *YYCURSOR);
+yy900:
+               YYDEBUG(900, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch(yych) {
                case 'A':
-               case 'a':       goto yy826;
+               case 'a':       goto yy843;
                case 'D':
-               case 'd':       goto yy830;
+               case 'd':       goto yy847;
                case 'F':
-               case 'f':       goto yy824;
+               case 'f':       goto yy841;
                case 'J':
-               case 'j':       goto yy823;
+               case 'j':       goto yy840;
                case 'M':
-               case 'm':       goto yy825;
+               case 'm':       goto yy842;
                case 'N':
-               case 'n':       goto yy829;
+               case 'n':       goto yy846;
                case 'O':
-               case 'o':       goto yy828;
+               case 'o':       goto yy845;
                case 'S':
-               case 's':       goto yy827;
+               case 's':       goto yy844;
                default:        goto yy54;
                }
-yy884:
-               YYDEBUG(884, *YYCURSOR);
+yy901:
+               YYDEBUG(901, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy733;
-               if(yych <= '0') goto yy885;
-               if(yych <= '1') goto yy886;
-               if(yych <= '9') goto yy887;
-               goto yy733;
-yy885:
-               YYDEBUG(885, *YYCURSOR);
+               if(yych <= '/') goto yy749;
+               if(yych <= '0') goto yy902;
+               if(yych <= '1') goto yy903;
+               if(yych <= '9') goto yy904;
+               goto yy749;
+yy902:
+               YYDEBUG(902, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= ',') goto yy54;
-               if(yych <= '.') goto yy756;
+               if(yych <= '.') goto yy772;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy887;
+               if(yych <= '9') goto yy904;
                goto yy54;
-yy886:
-               YYDEBUG(886, *YYCURSOR);
+yy903:
+               YYDEBUG(903, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= ',') goto yy54;
-               if(yych <= '.') goto yy756;
+               if(yych <= '.') goto yy772;
                if(yych <= '/') goto yy54;
                if(yych >= '3') goto yy54;
-yy887:
-               YYDEBUG(887, *YYCURSOR);
+yy904:
+               YYDEBUG(904, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= ',') goto yy54;
-               if(yych <= '.') goto yy756;
+               if(yych <= '.') goto yy772;
                goto yy54;
-yy888:
-               YYDEBUG(888, *YYCURSOR);
+yy905:
+               YYDEBUG(905, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy932;
+               if(yych == '-') goto yy949;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy930;
+               if(yych <= '9') goto yy947;
                goto yy58;
-yy889:
-               YYDEBUG(889, *YYCURSOR);
+yy906:
+               YYDEBUG(906, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch(yych) {
-               case '0':       goto yy898;
-               case '1':       goto yy899;
+               case '0':       goto yy915;
+               case '1':       goto yy916;
                case '2':
                case '3':
                case '4':
@@ -14486,254 +14686,254 @@ yy889:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy900;
+               case '9':       goto yy917;
                case 'A':
-               case 'a':       goto yy893;
+               case 'a':       goto yy910;
                case 'D':
-               case 'd':       goto yy897;
+               case 'd':       goto yy914;
                case 'F':
-               case 'f':       goto yy891;
+               case 'f':       goto yy908;
                case 'J':
-               case 'j':       goto yy890;
+               case 'j':       goto yy907;
                case 'M':
-               case 'm':       goto yy892;
+               case 'm':       goto yy909;
                case 'N':
-               case 'n':       goto yy896;
+               case 'n':       goto yy913;
                case 'O':
-               case 'o':       goto yy895;
+               case 'o':       goto yy912;
                case 'S':
-               case 's':       goto yy894;
+               case 's':       goto yy911;
                default:        goto yy54;
                }
-yy890:
-               YYDEBUG(890, *YYCURSOR);
+yy907:
+               YYDEBUG(907, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'A') goto yy929;
+                       if(yych == 'A') goto yy946;
                        if(yych <= 'T') goto yy54;
-                       goto yy928;
+                       goto yy945;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
-                               goto yy929;
+                               goto yy946;
                        } else {
-                               if(yych == 'u') goto yy928;
+                               if(yych == 'u') goto yy945;
                                goto yy54;
                        }
                }
-yy891:
-               YYDEBUG(891, *YYCURSOR);
+yy908:
+               YYDEBUG(908, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy927;
-               if(yych == 'e') goto yy927;
+               if(yych == 'E') goto yy944;
+               if(yych == 'e') goto yy944;
                goto yy54;
-yy892:
-               YYDEBUG(892, *YYCURSOR);
+yy909:
+               YYDEBUG(909, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy926;
-               if(yych == 'a') goto yy926;
+               if(yych == 'A') goto yy943;
+               if(yych == 'a') goto yy943;
                goto yy54;
-yy893:
-               YYDEBUG(893, *YYCURSOR);
+yy910:
+               YYDEBUG(910, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'P') goto yy925;
+                       if(yych == 'P') goto yy942;
                        if(yych <= 'T') goto yy54;
-                       goto yy924;
+                       goto yy941;
                } else {
                        if(yych <= 'p') {
                                if(yych <= 'o') goto yy54;
-                               goto yy925;
+                               goto yy942;
                        } else {
-                               if(yych == 'u') goto yy924;
+                               if(yych == 'u') goto yy941;
                                goto yy54;
                        }
                }
-yy894:
-               YYDEBUG(894, *YYCURSOR);
+yy911:
+               YYDEBUG(911, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy922;
-               if(yych == 'e') goto yy922;
+               if(yych == 'E') goto yy939;
+               if(yych == 'e') goto yy939;
                goto yy54;
-yy895:
-               YYDEBUG(895, *YYCURSOR);
+yy912:
+               YYDEBUG(912, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy921;
-               if(yych == 'c') goto yy921;
+               if(yych == 'C') goto yy938;
+               if(yych == 'c') goto yy938;
                goto yy54;
-yy896:
-               YYDEBUG(896, *YYCURSOR);
+yy913:
+               YYDEBUG(913, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy920;
-               if(yych == 'o') goto yy920;
+               if(yych == 'O') goto yy937;
+               if(yych == 'o') goto yy937;
                goto yy54;
-yy897:
-               YYDEBUG(897, *YYCURSOR);
+yy914:
+               YYDEBUG(914, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy912;
-               if(yych == 'e') goto yy912;
+               if(yych == 'E') goto yy929;
+               if(yych == 'e') goto yy929;
                goto yy54;
-yy898:
-               YYDEBUG(898, *YYCURSOR);
+yy915:
+               YYDEBUG(915, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy901;
+               if(yych == '-') goto yy918;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy905;
+               if(yych <= '9') goto yy922;
                goto yy54;
-yy899:
-               YYDEBUG(899, *YYCURSOR);
+yy916:
+               YYDEBUG(916, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy901;
+               if(yych == '-') goto yy918;
                if(yych <= '/') goto yy54;
-               if(yych <= '2') goto yy905;
+               if(yych <= '2') goto yy922;
                goto yy54;
-yy900:
-               YYDEBUG(900, *YYCURSOR);
+yy917:
+               YYDEBUG(917, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '-') goto yy54;
-yy901:
-               YYDEBUG(901, *YYCURSOR);
+yy918:
+               YYDEBUG(918, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '2') goto yy902;
-               if(yych <= '3') goto yy903;
-               if(yych <= '9') goto yy904;
+               if(yych <= '2') goto yy919;
+               if(yych <= '3') goto yy920;
+               if(yych <= '9') goto yy921;
                goto yy54;
-yy902:
-               YYDEBUG(902, *YYCURSOR);
+yy919:
+               YYDEBUG(919, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy904;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy921;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy903:
-               YYDEBUG(903, *YYCURSOR);
+yy920:
+               YYDEBUG(920, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '1') goto yy904;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '1') goto yy921;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy904:
-               YYDEBUG(904, *YYCURSOR);
+yy921:
+               YYDEBUG(921, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'q') {
-                       if(yych == 'n') goto yy814;
-                       goto yy810;
+                       if(yych == 'n') goto yy831;
+                       goto yy827;
                } else {
-                       if(yych <= 'r') goto yy815;
-                       if(yych <= 's') goto yy813;
-                       if(yych <= 't') goto yy816;
-                       goto yy810;
+                       if(yych <= 'r') goto yy832;
+                       if(yych <= 's') goto yy830;
+                       if(yych <= 't') goto yy833;
+                       goto yy827;
                }
-yy905:
-               YYDEBUG(905, *YYCURSOR);
+yy922:
+               YYDEBUG(922, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '-') goto yy54;
-               YYDEBUG(906, *YYCURSOR);
+               YYDEBUG(923, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy54;
-                       if(yych >= '1') goto yy908;
+                       if(yych >= '1') goto yy925;
                } else {
-                       if(yych <= '3') goto yy909;
-                       if(yych <= '9') goto yy904;
+                       if(yych <= '3') goto yy926;
+                       if(yych <= '9') goto yy921;
                        goto yy54;
                }
-               YYDEBUG(907, *YYCURSOR);
+               YYDEBUG(924, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy910;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy927;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy908:
-               YYDEBUG(908, *YYCURSOR);
+yy925:
+               YYDEBUG(925, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy910;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy927;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy909:
-               YYDEBUG(909, *YYCURSOR);
+yy926:
+               YYDEBUG(926, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '1') goto yy910;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '1') goto yy927;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy910:
-               YYDEBUG(910, *YYCURSOR);
+yy927:
+               YYDEBUG(927, *YYCURSOR);
                yyaccept = 16;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'q') {
-                       if(yych == 'n') goto yy814;
+                       if(yych == 'n') goto yy831;
                } else {
-                       if(yych <= 'r') goto yy815;
-                       if(yych <= 's') goto yy813;
-                       if(yych <= 't') goto yy816;
+                       if(yych <= 'r') goto yy832;
+                       if(yych <= 's') goto yy830;
+                       if(yych <= 't') goto yy833;
                }
-yy911:
-               YYDEBUG(911, *YYCURSOR);
-#line 1191 "ext/date/lib/parse_date.re"
+yy928:
+               YYDEBUG(928, *YYCURSOR);
+#line 1216 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("iso8601date2");
                TIMELIB_INIT;
@@ -14745,46 +14945,46 @@ yy911:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 14749 "ext/date/lib/parse_date.c"
-yy912:
-               YYDEBUG(912, *YYCURSOR);
+#line 14949 "ext/date/lib/parse_date.c"
+yy929:
+               YYDEBUG(929, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy913;
+               if(yych == 'C') goto yy930;
                if(yych != 'c') goto yy54;
-yy913:
-               YYDEBUG(913, *YYCURSOR);
+yy930:
+               YYDEBUG(930, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '-') goto yy54;
-yy914:
-               YYDEBUG(914, *YYCURSOR);
+yy931:
+               YYDEBUG(931, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy915;
-               if(yych <= '2') goto yy916;
-               if(yych <= '3') goto yy917;
+               if(yych <= '0') goto yy932;
+               if(yych <= '2') goto yy933;
+               if(yych <= '3') goto yy934;
                goto yy54;
-yy915:
-               YYDEBUG(915, *YYCURSOR);
+yy932:
+               YYDEBUG(932, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy918;
+               if(yych <= '9') goto yy935;
                goto yy54;
-yy916:
-               YYDEBUG(916, *YYCURSOR);
+yy933:
+               YYDEBUG(933, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy918;
+               if(yych <= '9') goto yy935;
                goto yy54;
-yy917:
-               YYDEBUG(917, *YYCURSOR);
+yy934:
+               YYDEBUG(934, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '2') goto yy54;
-yy918:
-               YYDEBUG(918, *YYCURSOR);
+yy935:
+               YYDEBUG(935, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(919, *YYCURSOR);
-#line 1421 "ext/date/lib/parse_date.re"
+               YYDEBUG(936, *YYCURSOR);
+#line 1446 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("pgtextreverse");
                TIMELIB_INIT;
@@ -14796,93 +14996,93 @@ yy918:
                TIMELIB_DEINIT;
                return TIMELIB_PG_TEXT;
        }
-#line 14800 "ext/date/lib/parse_date.c"
-yy920:
-               YYDEBUG(920, *YYCURSOR);
+#line 15000 "ext/date/lib/parse_date.c"
+yy937:
+               YYDEBUG(937, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'V') goto yy913;
-               if(yych == 'v') goto yy913;
+               if(yych == 'V') goto yy930;
+               if(yych == 'v') goto yy930;
                goto yy54;
-yy921:
-               YYDEBUG(921, *YYCURSOR);
+yy938:
+               YYDEBUG(938, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy913;
-               if(yych == 't') goto yy913;
+               if(yych == 'T') goto yy930;
+               if(yych == 't') goto yy930;
                goto yy54;
-yy922:
-               YYDEBUG(922, *YYCURSOR);
+yy939:
+               YYDEBUG(939, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'P') goto yy923;
+               if(yych == 'P') goto yy940;
                if(yych != 'p') goto yy54;
-yy923:
-               YYDEBUG(923, *YYCURSOR);
+yy940:
+               YYDEBUG(940, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
-                       if(yych == '-') goto yy914;
+                       if(yych == '-') goto yy931;
                        goto yy54;
                } else {
-                       if(yych <= 'T') goto yy913;
-                       if(yych == 't') goto yy913;
+                       if(yych <= 'T') goto yy930;
+                       if(yych == 't') goto yy930;
                        goto yy54;
                }
-yy924:
-               YYDEBUG(924, *YYCURSOR);
+yy941:
+               YYDEBUG(941, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'G') goto yy913;
-               if(yych == 'g') goto yy913;
+               if(yych == 'G') goto yy930;
+               if(yych == 'g') goto yy930;
                goto yy54;
-yy925:
-               YYDEBUG(925, *YYCURSOR);
+yy942:
+               YYDEBUG(942, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy913;
-               if(yych == 'r') goto yy913;
+               if(yych == 'R') goto yy930;
+               if(yych == 'r') goto yy930;
                goto yy54;
-yy926:
-               YYDEBUG(926, *YYCURSOR);
+yy943:
+               YYDEBUG(943, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
-                       if(yych == 'R') goto yy913;
+                       if(yych == 'R') goto yy930;
                        if(yych <= 'X') goto yy54;
-                       goto yy913;
+                       goto yy930;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy54;
-                               goto yy913;
+                               goto yy930;
                        } else {
-                               if(yych == 'y') goto yy913;
+                               if(yych == 'y') goto yy930;
                                goto yy54;
                        }
                }
-yy927:
-               YYDEBUG(927, *YYCURSOR);
+yy944:
+               YYDEBUG(944, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy913;
-               if(yych == 'b') goto yy913;
+               if(yych == 'B') goto yy930;
+               if(yych == 'b') goto yy930;
                goto yy54;
-yy928:
-               YYDEBUG(928, *YYCURSOR);
+yy945:
+               YYDEBUG(945, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
-                       if(yych == 'L') goto yy913;
+                       if(yych == 'L') goto yy930;
                        if(yych <= 'M') goto yy54;
-                       goto yy913;
+                       goto yy930;
                } else {
                        if(yych <= 'l') {
                                if(yych <= 'k') goto yy54;
-                               goto yy913;
+                               goto yy930;
                        } else {
-                               if(yych == 'n') goto yy913;
+                               if(yych == 'n') goto yy930;
                                goto yy54;
                        }
                }
-yy929:
-               YYDEBUG(929, *YYCURSOR);
+yy946:
+               YYDEBUG(946, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'N') goto yy913;
-               if(yych == 'n') goto yy913;
+               if(yych == 'N') goto yy930;
+               if(yych == 'n') goto yy930;
                goto yy54;
-yy930:
-               YYDEBUG(930, *YYCURSOR);
+yy947:
+               YYDEBUG(947, *YYCURSOR);
                yyaccept = 17;
                yych = *(YYMARKER = ++YYCURSOR);
                YYDEBUG(-1, yych);
@@ -14914,27 +15114,27 @@ yy930:
                case 's':
                case 't':
                case 'w':
-               case 'y':       goto yy938;
-               case '-':       goto yy935;
-               case '.':       goto yy939;
-               case '/':       goto yy936;
-               case '0':       goto yy952;
-               case '1':       goto yy953;
-               case '2':       goto yy955;
-               case '3':       goto yy956;
+               case 'y':       goto yy955;
+               case '-':       goto yy952;
+               case '.':       goto yy956;
+               case '/':       goto yy953;
+               case '0':       goto yy969;
+               case '1':       goto yy970;
+               case '2':       goto yy972;
+               case '3':       goto yy973;
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
                case '9':       goto yy52;
-               case ':':       goto yy954;
-               case 'W':       goto yy957;
-               default:        goto yy931;
+               case ':':       goto yy971;
+               case 'W':       goto yy974;
+               default:        goto yy948;
                }
-yy931:
-               YYDEBUG(931, *YYCURSOR);
-#line 1455 "ext/date/lib/parse_date.re"
+yy948:
+               YYDEBUG(948, *YYCURSOR);
+#line 1480 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("year4");
                TIMELIB_INIT;
@@ -14942,14 +15142,14 @@ yy931:
                TIMELIB_DEINIT;
                return TIMELIB_CLF;
        }
-#line 14946 "ext/date/lib/parse_date.c"
-yy932:
-               YYDEBUG(932, *YYCURSOR);
+#line 15146 "ext/date/lib/parse_date.c"
+yy949:
+               YYDEBUG(949, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch(yych) {
-               case '0':       goto yy933;
-               case '1':       goto yy934;
+               case '0':       goto yy950;
+               case '1':       goto yy951;
                case '2':
                case '3':
                case '4':
@@ -14957,46 +15157,46 @@ yy932:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy900;
+               case '9':       goto yy917;
                case 'A':
-               case 'a':       goto yy893;
+               case 'a':       goto yy910;
                case 'D':
-               case 'd':       goto yy897;
+               case 'd':       goto yy914;
                case 'F':
-               case 'f':       goto yy891;
+               case 'f':       goto yy908;
                case 'J':
-               case 'j':       goto yy890;
+               case 'j':       goto yy907;
                case 'M':
-               case 'm':       goto yy892;
+               case 'm':       goto yy909;
                case 'N':
-               case 'n':       goto yy896;
+               case 'n':       goto yy913;
                case 'O':
-               case 'o':       goto yy895;
+               case 'o':       goto yy912;
                case 'S':
-               case 's':       goto yy894;
+               case 's':       goto yy911;
                default:        goto yy54;
                }
-yy933:
-               YYDEBUG(933, *YYCURSOR);
+yy950:
+               YYDEBUG(950, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy901;
+               if(yych == '-') goto yy918;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy900;
+               if(yych <= '9') goto yy917;
                goto yy54;
-yy934:
-               YYDEBUG(934, *YYCURSOR);
+yy951:
+               YYDEBUG(951, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy901;
+               if(yych == '-') goto yy918;
                if(yych <= '/') goto yy54;
-               if(yych <= '2') goto yy900;
+               if(yych <= '2') goto yy917;
                goto yy54;
-yy935:
-               YYDEBUG(935, *YYCURSOR);
+yy952:
+               YYDEBUG(952, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch(yych) {
-               case '0':       goto yy1120;
-               case '1':       goto yy1122;
+               case '0':       goto yy1137;
+               case '1':       goto yy1139;
                case '2':
                case '3':
                case '4':
@@ -15004,96 +15204,96 @@ yy935:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy1123;
+               case '9':       goto yy1140;
                case 'A':
-               case 'a':       goto yy1114;
+               case 'a':       goto yy1131;
                case 'D':
-               case 'd':       goto yy1118;
+               case 'd':       goto yy1135;
                case 'F':
-               case 'f':       goto yy1112;
+               case 'f':       goto yy1129;
                case 'J':
-               case 'j':       goto yy1111;
+               case 'j':       goto yy1128;
                case 'M':
-               case 'm':       goto yy1113;
+               case 'm':       goto yy1130;
                case 'N':
-               case 'n':       goto yy1117;
+               case 'n':       goto yy1134;
                case 'O':
-               case 'o':       goto yy1116;
+               case 'o':       goto yy1133;
                case 'S':
-               case 's':       goto yy1115;
-               case 'W':       goto yy1119;
-               default:        goto yy1086;
+               case 's':       goto yy1132;
+               case 'W':       goto yy1136;
+               default:        goto yy1103;
                }
-yy936:
-               YYDEBUG(936, *YYCURSOR);
+yy953:
+               YYDEBUG(953, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy1094;
-               if(yych <= '1') goto yy1095;
-               if(yych <= '9') goto yy1096;
+               if(yych <= '0') goto yy1111;
+               if(yych <= '1') goto yy1112;
+               if(yych <= '9') goto yy1113;
                goto yy54;
-yy937:
-               YYDEBUG(937, *YYCURSOR);
+yy954:
+               YYDEBUG(954, *YYCURSOR);
                ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
                yych = *YYCURSOR;
-yy938:
-               YYDEBUG(938, *YYCURSOR);
+yy955:
+               YYDEBUG(955, *YYCURSOR);
                YYDEBUG(-1, yych);
                switch(yych) {
                case 0x09:
-               case ' ':       goto yy937;
+               case ' ':       goto yy954;
                case '-':
-               case '.':       goto yy1085;
+               case '.':       goto yy1102;
                case 'A':
-               case 'a':       goto yy947;
+               case 'a':       goto yy964;
                case 'D':
-               case 'd':       goto yy951;
+               case 'd':       goto yy968;
                case 'F':
-               case 'f':       goto yy945;
+               case 'f':       goto yy962;
                case 'H':
                case 'h':       goto yy61;
-               case 'I':       goto yy940;
+               case 'I':       goto yy957;
                case 'J':
-               case 'j':       goto yy944;
+               case 'j':       goto yy961;
                case 'M':
-               case 'm':       goto yy946;
+               case 'm':       goto yy963;
                case 'N':
-               case 'n':       goto yy950;
+               case 'n':       goto yy967;
                case 'O':
-               case 'o':       goto yy949;
+               case 'o':       goto yy966;
                case 'S':
-               case 's':       goto yy948;
+               case 's':       goto yy965;
                case 'T':
                case 't':       goto yy66;
-               case 'V':       goto yy942;
+               case 'V':       goto yy959;
                case 'W':
                case 'w':       goto yy63;
-               case 'X':       goto yy943;
+               case 'X':       goto yy960;
                case 'Y':
                case 'y':       goto yy65;
                default:        goto yy54;
                }
-yy939:
-               YYDEBUG(939, *YYCURSOR);
+yy956:
+               YYDEBUG(956, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy1086;
-               if(yych <= '0') goto yy1078;
-               if(yych <= '2') goto yy1079;
-               if(yych <= '3') goto yy1080;
-               goto yy1086;
-yy940:
-               YYDEBUG(940, *YYCURSOR);
+               if(yych <= '/') goto yy1103;
+               if(yych <= '0') goto yy1095;
+               if(yych <= '2') goto yy1096;
+               if(yych <= '3') goto yy1097;
+               goto yy1103;
+yy957:
+               YYDEBUG(957, *YYCURSOR);
                ++YYCURSOR;
                if((yych = *YYCURSOR) <= 'U') {
-                       if(yych == 'I') goto yy1077;
+                       if(yych == 'I') goto yy1094;
                } else {
-                       if(yych == 'W') goto yy941;
-                       if(yych <= 'X') goto yy1031;
+                       if(yych == 'W') goto yy958;
+                       if(yych <= 'X') goto yy1048;
                }
-yy941:
-               YYDEBUG(941, *YYCURSOR);
-#line 1281 "ext/date/lib/parse_date.re"
+yy958:
+               YYDEBUG(958, *YYCURSOR);
+#line 1306 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("datenodayrev");
                TIMELIB_INIT;
@@ -15105,39 +15305,39 @@ yy941:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_NO_DAY;
        }
-#line 15109 "ext/date/lib/parse_date.c"
-yy942:
-               YYDEBUG(942, *YYCURSOR);
+#line 15309 "ext/date/lib/parse_date.c"
+yy959:
+               YYDEBUG(959, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'I') goto yy1075;
-               goto yy941;
-yy943:
-               YYDEBUG(943, *YYCURSOR);
+               if(yych == 'I') goto yy1092;
+               goto yy958;
+yy960:
+               YYDEBUG(960, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'I') goto yy1074;
-               goto yy941;
-yy944:
-               YYDEBUG(944, *YYCURSOR);
+               if(yych == 'I') goto yy1091;
+               goto yy958;
+yy961:
+               YYDEBUG(961, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'A') goto yy1067;
+                       if(yych == 'A') goto yy1084;
                        if(yych <= 'T') goto yy54;
-                       goto yy1066;
+                       goto yy1083;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
-                               goto yy1067;
+                               goto yy1084;
                        } else {
-                               if(yych == 'u') goto yy1066;
+                               if(yych == 'u') goto yy1083;
                                goto yy54;
                        }
                }
-yy945:
-               YYDEBUG(945, *YYCURSOR);
+yy962:
+               YYDEBUG(962, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= 'N') {
-                               if(yych == 'E') goto yy1060;
+                               if(yych == 'E') goto yy1077;
                                goto yy54;
                        } else {
                                if(yych <= 'O') goto yy84;
@@ -15146,7 +15346,7 @@ yy945:
                        }
                } else {
                        if(yych <= 'n') {
-                               if(yych == 'e') goto yy1060;
+                               if(yych == 'e') goto yy1077;
                                goto yy54;
                        } else {
                                if(yych <= 'o') goto yy84;
@@ -15154,12 +15354,12 @@ yy945:
                                goto yy54;
                        }
                }
-yy946:
-               YYDEBUG(946, *YYCURSOR);
+yy963:
+               YYDEBUG(963, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'O') {
                        if(yych <= 'H') {
-                               if(yych == 'A') goto yy1057;
+                               if(yych == 'A') goto yy1074;
                                goto yy54;
                        } else {
                                if(yych <= 'I') goto yy115;
@@ -15168,7 +15368,7 @@ yy946:
                        }
                } else {
                        if(yych <= 'h') {
-                               if(yych == 'a') goto yy1057;
+                               if(yych == 'a') goto yy1074;
                                goto yy54;
                        } else {
                                if(yych <= 'i') goto yy115;
@@ -15176,31 +15376,31 @@ yy946:
                                goto yy54;
                        }
                }
-yy947:
-               YYDEBUG(947, *YYCURSOR);
+yy964:
+               YYDEBUG(964, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'P') goto yy1051;
+                       if(yych == 'P') goto yy1068;
                        if(yych <= 'T') goto yy54;
-                       goto yy1050;
+                       goto yy1067;
                } else {
                        if(yych <= 'p') {
                                if(yych <= 'o') goto yy54;
-                               goto yy1051;
+                               goto yy1068;
                        } else {
-                               if(yych == 'u') goto yy1050;
+                               if(yych == 'u') goto yy1067;
                                goto yy54;
                        }
                }
-yy948:
-               YYDEBUG(948, *YYCURSOR);
+yy965:
+               YYDEBUG(965, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
                        if(yych <= 'D') {
                                if(yych == 'A') goto yy124;
                                goto yy54;
                        } else {
-                               if(yych <= 'E') goto yy1043;
+                               if(yych <= 'E') goto yy1060;
                                if(yych <= 'T') goto yy54;
                                goto yy123;
                        }
@@ -15209,82 +15409,82 @@ yy948:
                                if(yych == 'a') goto yy124;
                                goto yy54;
                        } else {
-                               if(yych <= 'e') goto yy1043;
+                               if(yych <= 'e') goto yy1060;
                                if(yych == 'u') goto yy123;
                                goto yy54;
                        }
                }
-yy949:
-               YYDEBUG(949, *YYCURSOR);
+yy966:
+               YYDEBUG(966, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy1038;
-               if(yych == 'c') goto yy1038;
+               if(yych == 'C') goto yy1055;
+               if(yych == 'c') goto yy1055;
                goto yy54;
-yy950:
-               YYDEBUG(950, *YYCURSOR);
+yy967:
+               YYDEBUG(967, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy1032;
-               if(yych == 'o') goto yy1032;
+               if(yych == 'O') goto yy1049;
+               if(yych == 'o') goto yy1049;
                goto yy54;
-yy951:
-               YYDEBUG(951, *YYCURSOR);
+yy968:
+               YYDEBUG(968, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'E') {
                        if(yych == 'A') goto yy111;
                        if(yych <= 'D') goto yy54;
-                       goto yy1025;
+                       goto yy1042;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
                                goto yy111;
                        } else {
-                               if(yych == 'e') goto yy1025;
+                               if(yych == 'e') goto yy1042;
                                goto yy54;
                        }
                }
-yy952:
-               YYDEBUG(952, *YYCURSOR);
+yy969:
+               YYDEBUG(969, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '0') goto yy1022;
-               if(yych <= '9') goto yy1023;
+               if(yych <= '0') goto yy1039;
+               if(yych <= '9') goto yy1040;
                goto yy58;
-yy953:
-               YYDEBUG(953, *YYCURSOR);
+yy970:
+               YYDEBUG(970, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '2') goto yy991;
-               if(yych <= '9') goto yy970;
+               if(yych <= '2') goto yy1008;
+               if(yych <= '9') goto yy987;
                goto yy58;
-yy954:
-               YYDEBUG(954, *YYCURSOR);
+yy971:
+               YYDEBUG(971, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy971;
-               if(yych <= '1') goto yy972;
+               if(yych <= '0') goto yy988;
+               if(yych <= '1') goto yy989;
                goto yy54;
-yy955:
-               YYDEBUG(955, *YYCURSOR);
+yy972:
+               YYDEBUG(972, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy970;
+               if(yych <= '9') goto yy987;
                goto yy58;
-yy956:
-               YYDEBUG(956, *YYCURSOR);
+yy973:
+               YYDEBUG(973, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '5') goto yy966;
-               if(yych <= '6') goto yy967;
+               if(yych <= '5') goto yy983;
+               if(yych <= '6') goto yy984;
                if(yych <= '9') goto yy52;
                goto yy58;
-yy957:
-               YYDEBUG(957, *YYCURSOR);
+yy974:
+               YYDEBUG(974, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '5') {
                        if(yych <= '/') goto yy54;
-                       if(yych <= '0') goto yy958;
-                       if(yych <= '4') goto yy959;
-                       goto yy960;
+                       if(yych <= '0') goto yy975;
+                       if(yych <= '4') goto yy976;
+                       goto yy977;
                } else {
                        if(yych <= 'E') {
                                if(yych <= 'D') goto yy54;
@@ -15294,33 +15494,33 @@ yy957:
                                goto yy54;
                        }
                }
-yy958:
-               YYDEBUG(958, *YYCURSOR);
+yy975:
+               YYDEBUG(975, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '0') goto yy54;
-               if(yych <= '9') goto yy961;
+               if(yych <= '9') goto yy978;
                goto yy54;
-yy959:
-               YYDEBUG(959, *YYCURSOR);
+yy976:
+               YYDEBUG(976, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy961;
+               if(yych <= '9') goto yy978;
                goto yy54;
-yy960:
-               YYDEBUG(960, *YYCURSOR);
+yy977:
+               YYDEBUG(977, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '4') goto yy54;
-yy961:
-               YYDEBUG(961, *YYCURSOR);
+yy978:
+               YYDEBUG(978, *YYCURSOR);
                yyaccept = 18;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '-') goto yy963;
-               if(yych <= '/') goto yy962;
-               if(yych <= '7') goto yy964;
-yy962:
-               YYDEBUG(962, *YYCURSOR);
-#line 1389 "ext/date/lib/parse_date.re"
+               if(yych == '-') goto yy980;
+               if(yych <= '/') goto yy979;
+               if(yych <= '7') goto yy981;
+yy979:
+               YYDEBUG(979, *YYCURSOR);
+#line 1414 "ext/date/lib/parse_date.re"
                {
                timelib_sll w, d;
                DEBUG_OUTPUT("isoweek");
@@ -15338,17 +15538,17 @@ yy962:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_WEEK;
        }
-#line 15342 "ext/date/lib/parse_date.c"
-yy963:
-               YYDEBUG(963, *YYCURSOR);
+#line 15542 "ext/date/lib/parse_date.c"
+yy980:
+               YYDEBUG(980, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '8') goto yy54;
-yy964:
-               YYDEBUG(964, *YYCURSOR);
+yy981:
+               YYDEBUG(981, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(965, *YYCURSOR);
-#line 1370 "ext/date/lib/parse_date.re"
+               YYDEBUG(982, *YYCURSOR);
+#line 1395 "ext/date/lib/parse_date.re"
                {
                timelib_sll w, d;
                DEBUG_OUTPUT("isoweekday");
@@ -15366,22 +15566,22 @@ yy964:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_WEEK;
        }
-#line 15370 "ext/date/lib/parse_date.c"
-yy966:
-               YYDEBUG(966, *YYCURSOR);
+#line 15570 "ext/date/lib/parse_date.c"
+yy983:
+               YYDEBUG(983, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy968;
+               if(yych <= '9') goto yy985;
                goto yy58;
-yy967:
-               YYDEBUG(967, *YYCURSOR);
+yy984:
+               YYDEBUG(984, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '6') goto yy968;
+               if(yych <= '6') goto yy985;
                if(yych <= '9') goto yy52;
                goto yy58;
-yy968:
-               YYDEBUG(968, *YYCURSOR);
+yy985:
+               YYDEBUG(985, *YYCURSOR);
                yyaccept = 19;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yybm[0+yych] & 4) {
@@ -15401,7 +15601,7 @@ yy968:
                                        if(yych == 'H') goto yy58;
                                        if(yych >= 'M') goto yy58;
                                } else {
-                                       if(yych <= 'R') goto yy969;
+                                       if(yych <= 'R') goto yy986;
                                        if(yych <= 'T') goto yy58;
                                        if(yych >= 'W') goto yy58;
                                }
@@ -15428,9 +15628,9 @@ yy968:
                                }
                        }
                }
-yy969:
-               YYDEBUG(969, *YYCURSOR);
-#line 1357 "ext/date/lib/parse_date.re"
+yy986:
+               YYDEBUG(986, *YYCURSOR);
+#line 1382 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("pgydotd");
                TIMELIB_INIT;
@@ -15442,110 +15642,110 @@ yy969:
                TIMELIB_DEINIT;
                return TIMELIB_PG_YEARDAY;
        }
-#line 15446 "ext/date/lib/parse_date.c"
-yy970:
-               YYDEBUG(970, *YYCURSOR);
+#line 15646 "ext/date/lib/parse_date.c"
+yy987:
+               YYDEBUG(987, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy968;
+               if(yych <= '9') goto yy985;
                goto yy58;
-yy971:
-               YYDEBUG(971, *YYCURSOR);
+yy988:
+               YYDEBUG(988, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy973;
+               if(yych <= '9') goto yy990;
                goto yy54;
-yy972:
-               YYDEBUG(972, *YYCURSOR);
+yy989:
+               YYDEBUG(989, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '3') goto yy54;
-yy973:
-               YYDEBUG(973, *YYCURSOR);
+yy990:
+               YYDEBUG(990, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(974, *YYCURSOR);
+               YYDEBUG(991, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy975;
-               if(yych <= '2') goto yy976;
-               if(yych <= '3') goto yy977;
+               if(yych <= '0') goto yy992;
+               if(yych <= '2') goto yy993;
+               if(yych <= '3') goto yy994;
                goto yy54;
-yy975:
-               YYDEBUG(975, *YYCURSOR);
+yy992:
+               YYDEBUG(992, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy978;
+               if(yych <= '9') goto yy995;
                goto yy54;
-yy976:
-               YYDEBUG(976, *YYCURSOR);
+yy993:
+               YYDEBUG(993, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy978;
+               if(yych <= '9') goto yy995;
                goto yy54;
-yy977:
-               YYDEBUG(977, *YYCURSOR);
+yy994:
+               YYDEBUG(994, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '2') goto yy54;
-yy978:
-               YYDEBUG(978, *YYCURSOR);
+yy995:
+               YYDEBUG(995, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ' ') goto yy54;
-               YYDEBUG(979, *YYCURSOR);
+               YYDEBUG(996, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '1') goto yy980;
-               if(yych <= '2') goto yy981;
+               if(yych <= '1') goto yy997;
+               if(yych <= '2') goto yy998;
                goto yy54;
-yy980:
-               YYDEBUG(980, *YYCURSOR);
+yy997:
+               YYDEBUG(997, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy982;
+               if(yych <= '9') goto yy999;
                goto yy54;
-yy981:
-               YYDEBUG(981, *YYCURSOR);
+yy998:
+               YYDEBUG(998, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '5') goto yy54;
-yy982:
-               YYDEBUG(982, *YYCURSOR);
+yy999:
+               YYDEBUG(999, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(983, *YYCURSOR);
+               YYDEBUG(1000, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '6') goto yy54;
-               YYDEBUG(984, *YYCURSOR);
+               YYDEBUG(1001, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(985, *YYCURSOR);
+               YYDEBUG(1002, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(986, *YYCURSOR);
+               YYDEBUG(1003, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy987;
-               if(yych <= '6') goto yy988;
+               if(yych <= '5') goto yy1004;
+               if(yych <= '6') goto yy1005;
                goto yy54;
-yy987:
-               YYDEBUG(987, *YYCURSOR);
+yy1004:
+               YYDEBUG(1004, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy989;
+               if(yych <= '9') goto yy1006;
                goto yy54;
-yy988:
-               YYDEBUG(988, *YYCURSOR);
+yy1005:
+               YYDEBUG(1005, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '0') goto yy54;
-yy989:
-               YYDEBUG(989, *YYCURSOR);
+yy1006:
+               YYDEBUG(1006, *YYCURSOR);
                ++YYCURSOR;
-yy990:
-               YYDEBUG(990, *YYCURSOR);
-#line 1331 "ext/date/lib/parse_date.re"
+yy1007:
+               YYDEBUG(1007, *YYCURSOR);
+#line 1356 "ext/date/lib/parse_date.re"
                {
                int tz_not_found;
                DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
@@ -15570,212 +15770,212 @@ yy990:
                TIMELIB_DEINIT;
                return TIMELIB_XMLRPC_SOAP;
        }
-#line 15574 "ext/date/lib/parse_date.c"
-yy991:
-               YYDEBUG(991, *YYCURSOR);
+#line 15774 "ext/date/lib/parse_date.c"
+yy1008:
+               YYDEBUG(1008, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy58;
-                       if(yych >= '1') goto yy993;
+                       if(yych >= '1') goto yy1010;
                } else {
-                       if(yych <= '3') goto yy994;
-                       if(yych <= '9') goto yy968;
+                       if(yych <= '3') goto yy1011;
+                       if(yych <= '9') goto yy985;
                        goto yy58;
                }
-yy992:
-               YYDEBUG(992, *YYCURSOR);
+yy1009:
+               YYDEBUG(1009, *YYCURSOR);
                yyaccept = 19;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'V') {
                        if(yych <= 'D') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy969;
+                                       if(yych <= 0x1F) goto yy986;
                                        goto yy58;
                                } else {
-                                       if(yych <= '/') goto yy969;
-                                       if(yych <= '9') goto yy995;
-                                       if(yych <= 'C') goto yy969;
+                                       if(yych <= '/') goto yy986;
+                                       if(yych <= '9') goto yy1012;
+                                       if(yych <= 'C') goto yy986;
                                        goto yy58;
                                }
                        } else {
                                if(yych <= 'H') {
                                        if(yych == 'F') goto yy58;
-                                       if(yych <= 'G') goto yy969;
+                                       if(yych <= 'G') goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= 'M') {
-                                               if(yych <= 'L') goto yy969;
+                                               if(yych <= 'L') goto yy986;
                                                goto yy58;
                                        } else {
-                                               if(yych <= 'R') goto yy969;
+                                               if(yych <= 'R') goto yy986;
                                                if(yych <= 'T') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        }
                                }
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'c') {
-                                       if(yych == 'X') goto yy969;
+                                       if(yych == 'X') goto yy986;
                                        if(yych <= 'Y') goto yy58;
-                                       goto yy969;
+                                       goto yy986;
                                } else {
                                        if(yych <= 'e') {
                                                if(yych <= 'd') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        } else {
-                                               if(yych == 'g') goto yy969;
+                                               if(yych == 'g') goto yy986;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych == 'm') goto yy58;
-                                       if(yych <= 'r') goto yy969;
+                                       if(yych <= 'r') goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy969;
+                                               if(yych <= 'v') goto yy986;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        }
                                }
                        }
                }
-yy993:
-               YYDEBUG(993, *YYCURSOR);
+yy1010:
+               YYDEBUG(1010, *YYCURSOR);
                yyaccept = 19;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'V') {
                        if(yych <= 'D') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy969;
+                                       if(yych <= 0x1F) goto yy986;
                                        goto yy58;
                                } else {
-                                       if(yych <= '/') goto yy969;
-                                       if(yych <= '9') goto yy995;
-                                       if(yych <= 'C') goto yy969;
+                                       if(yych <= '/') goto yy986;
+                                       if(yych <= '9') goto yy1012;
+                                       if(yych <= 'C') goto yy986;
                                        goto yy58;
                                }
                        } else {
                                if(yych <= 'H') {
                                        if(yych == 'F') goto yy58;
-                                       if(yych <= 'G') goto yy969;
+                                       if(yych <= 'G') goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= 'M') {
-                                               if(yych <= 'L') goto yy969;
+                                               if(yych <= 'L') goto yy986;
                                                goto yy58;
                                        } else {
-                                               if(yych <= 'R') goto yy969;
+                                               if(yych <= 'R') goto yy986;
                                                if(yych <= 'T') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        }
                                }
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'c') {
-                                       if(yych == 'X') goto yy969;
+                                       if(yych == 'X') goto yy986;
                                        if(yych <= 'Y') goto yy58;
-                                       goto yy969;
+                                       goto yy986;
                                } else {
                                        if(yych <= 'e') {
                                                if(yych <= 'd') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        } else {
-                                               if(yych == 'g') goto yy969;
+                                               if(yych == 'g') goto yy986;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych == 'm') goto yy58;
-                                       if(yych <= 'r') goto yy969;
+                                       if(yych <= 'r') goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy969;
+                                               if(yych <= 'v') goto yy986;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        }
                                }
                        }
                }
-yy994:
-               YYDEBUG(994, *YYCURSOR);
+yy1011:
+               YYDEBUG(1011, *YYCURSOR);
                yyaccept = 19;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'V') {
                        if(yych <= 'D') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy969;
+                                       if(yych <= 0x1F) goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= '1') {
-                                               if(yych <= '/') goto yy969;
+                                               if(yych <= '/') goto yy986;
                                        } else {
                                                if(yych <= '9') goto yy52;
-                                               if(yych <= 'C') goto yy969;
+                                               if(yych <= 'C') goto yy986;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 'H') {
                                        if(yych == 'F') goto yy58;
-                                       if(yych <= 'G') goto yy969;
+                                       if(yych <= 'G') goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= 'M') {
-                                               if(yych <= 'L') goto yy969;
+                                               if(yych <= 'L') goto yy986;
                                                goto yy58;
                                        } else {
-                                               if(yych <= 'R') goto yy969;
+                                               if(yych <= 'R') goto yy986;
                                                if(yych <= 'T') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        }
                                }
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'c') {
-                                       if(yych == 'X') goto yy969;
+                                       if(yych == 'X') goto yy986;
                                        if(yych <= 'Y') goto yy58;
-                                       goto yy969;
+                                       goto yy986;
                                } else {
                                        if(yych <= 'e') {
                                                if(yych <= 'd') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        } else {
-                                               if(yych == 'g') goto yy969;
+                                               if(yych == 'g') goto yy986;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych == 'm') goto yy58;
-                                       if(yych <= 'r') goto yy969;
+                                       if(yych <= 'r') goto yy986;
                                        goto yy58;
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy969;
+                                               if(yych <= 'v') goto yy986;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy969;
+                                               goto yy986;
                                        }
                                }
                        }
                }
-yy995:
-               YYDEBUG(995, *YYCURSOR);
+yy1012:
+               YYDEBUG(1012, *YYCURSOR);
                yyaccept = 20;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yybm[0+yych] & 4) {
@@ -15798,7 +15998,7 @@ yy995:
                                        if(yych <= 'S') {
                                                if(yych >= 'S') goto yy59;
                                        } else {
-                                               if(yych <= 'T') goto yy997;
+                                               if(yych <= 'T') goto yy1014;
                                                if(yych >= 'W') goto yy63;
                                        }
                                }
@@ -15818,9 +16018,9 @@ yy995:
                        } else {
                                if(yych <= 't') {
                                        if(yych <= 'm') goto yy60;
-                                       if(yych <= 'r') goto yy996;
+                                       if(yych <= 'r') goto yy1013;
                                        if(yych <= 's') goto yy59;
-                                       goto yy998;
+                                       goto yy1015;
                                } else {
                                        if(yych <= 'w') {
                                                if(yych >= 'w') goto yy63;
@@ -15830,9 +16030,9 @@ yy995:
                                }
                        }
                }
-yy996:
-               YYDEBUG(996, *YYCURSOR);
-#line 1319 "ext/date/lib/parse_date.re"
+yy1013:
+               YYDEBUG(1013, *YYCURSOR);
+#line 1344 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("datenocolon");
                TIMELIB_INIT;
@@ -15843,17 +16043,17 @@ yy996:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_NOCOLON;
        }
-#line 15847 "ext/date/lib/parse_date.c"
-yy997:
-               YYDEBUG(997, *YYCURSOR);
+#line 16047 "ext/date/lib/parse_date.c"
+yy1014:
+               YYDEBUG(1014, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= '2') {
                                if(yych <= '/') goto yy54;
-                               if(yych <= '1') goto yy1012;
-                               goto yy1013;
+                               if(yych <= '1') goto yy1029;
+                               goto yy1030;
                        } else {
-                               if(yych <= '9') goto yy1014;
+                               if(yych <= '9') goto yy1031;
                                if(yych <= 'G') goto yy54;
                                goto yy67;
                        }
@@ -15867,15 +16067,15 @@ yy997:
                                goto yy54;
                        }
                }
-yy998:
-               YYDEBUG(998, *YYCURSOR);
+yy1015:
+               YYDEBUG(1015, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= '2') {
                                if(yych <= '/') goto yy54;
-                               if(yych >= '2') goto yy1000;
+                               if(yych >= '2') goto yy1017;
                        } else {
-                               if(yych <= '9') goto yy1001;
+                               if(yych <= '9') goto yy1018;
                                if(yych <= 'G') goto yy54;
                                goto yy67;
                        }
@@ -15889,277 +16089,277 @@ yy998:
                                goto yy54;
                        }
                }
-               YYDEBUG(999, *YYCURSOR);
+               YYDEBUG(1016, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1006;
-               if(yych <= '9') goto yy1001;
+               if(yych <= '5') goto yy1023;
+               if(yych <= '9') goto yy1018;
                goto yy54;
-yy1000:
-               YYDEBUG(1000, *YYCURSOR);
+yy1017:
+               YYDEBUG(1017, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '4') goto yy1006;
-               if(yych <= '5') goto yy1002;
+               if(yych <= '4') goto yy1023;
+               if(yych <= '5') goto yy1019;
                goto yy54;
-yy1001:
-               YYDEBUG(1001, *YYCURSOR);
+yy1018:
+               YYDEBUG(1018, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '6') goto yy54;
-yy1002:
-               YYDEBUG(1002, *YYCURSOR);
+yy1019:
+               YYDEBUG(1019, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-yy1003:
-               YYDEBUG(1003, *YYCURSOR);
+yy1020:
+               YYDEBUG(1020, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1004;
-               if(yych <= '6') goto yy1005;
+               if(yych <= '5') goto yy1021;
+               if(yych <= '6') goto yy1022;
                goto yy54;
-yy1004:
-               YYDEBUG(1004, *YYCURSOR);
+yy1021:
+               YYDEBUG(1021, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy989;
+               if(yych <= '9') goto yy1006;
                goto yy54;
-yy1005:
-               YYDEBUG(1005, *YYCURSOR);
+yy1022:
+               YYDEBUG(1022, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '0') goto yy989;
+               if(yych == '0') goto yy1006;
                goto yy54;
-yy1006:
-               YYDEBUG(1006, *YYCURSOR);
+yy1023:
+               YYDEBUG(1023, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1007;
-               if(yych <= '9') goto yy1003;
+               if(yych <= '5') goto yy1024;
+               if(yych <= '9') goto yy1020;
                goto yy54;
-yy1007:
-               YYDEBUG(1007, *YYCURSOR);
+yy1024:
+               YYDEBUG(1024, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1008;
-               if(yych <= '6') goto yy1009;
-               if(yych <= '9') goto yy1003;
+               if(yych <= '5') goto yy1025;
+               if(yych <= '6') goto yy1026;
+               if(yych <= '9') goto yy1020;
                goto yy54;
-yy1008:
-               YYDEBUG(1008, *YYCURSOR);
+yy1025:
+               YYDEBUG(1025, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1010;
-               if(yych <= '6') goto yy1011;
-               if(yych <= '9') goto yy989;
+               if(yych <= '5') goto yy1027;
+               if(yych <= '6') goto yy1028;
+               if(yych <= '9') goto yy1006;
                goto yy54;
-yy1009:
-               YYDEBUG(1009, *YYCURSOR);
+yy1026:
+               YYDEBUG(1026, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy1010;
-               if(yych <= '5') goto yy1004;
-               if(yych <= '6') goto yy1005;
+               if(yych <= '0') goto yy1027;
+               if(yych <= '5') goto yy1021;
+               if(yych <= '6') goto yy1022;
                goto yy54;
-yy1010:
-               YYDEBUG(1010, *YYCURSOR);
+yy1027:
+               YYDEBUG(1027, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '9') goto yy989;
-               goto yy990;
-yy1011:
-               YYDEBUG(1011, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '9') goto yy1006;
+               goto yy1007;
+yy1028:
+               YYDEBUG(1028, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '0') goto yy989;
-               goto yy990;
-yy1012:
-               YYDEBUG(1012, *YYCURSOR);
+               if(yych == '0') goto yy1006;
+               goto yy1007;
+yy1029:
+               YYDEBUG(1029, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1021;
-               if(yych <= '9') goto yy1014;
-               if(yych <= ':') goto yy1015;
+               if(yych <= '5') goto yy1038;
+               if(yych <= '9') goto yy1031;
+               if(yych <= ':') goto yy1032;
                goto yy54;
-yy1013:
-               YYDEBUG(1013, *YYCURSOR);
+yy1030:
+               YYDEBUG(1030, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '5') {
                        if(yych <= '/') goto yy54;
-                       if(yych <= '4') goto yy1021;
-                       goto yy1002;
+                       if(yych <= '4') goto yy1038;
+                       goto yy1019;
                } else {
-                       if(yych == ':') goto yy1015;
+                       if(yych == ':') goto yy1032;
                        goto yy54;
                }
-yy1014:
-               YYDEBUG(1014, *YYCURSOR);
+yy1031:
+               YYDEBUG(1031, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1002;
+               if(yych <= '5') goto yy1019;
                if(yych != ':') goto yy54;
-yy1015:
-               YYDEBUG(1015, *YYCURSOR);
+yy1032:
+               YYDEBUG(1032, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= '6') goto yy54;
-               YYDEBUG(1016, *YYCURSOR);
+               YYDEBUG(1033, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(1017, *YYCURSOR);
+               YYDEBUG(1034, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(1018, *YYCURSOR);
+               YYDEBUG(1035, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1019;
-               if(yych <= '6') goto yy1020;
+               if(yych <= '5') goto yy1036;
+               if(yych <= '6') goto yy1037;
                goto yy54;
-yy1019:
-               YYDEBUG(1019, *YYCURSOR);
+yy1036:
+               YYDEBUG(1036, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy989;
+               if(yych <= '9') goto yy1006;
                goto yy54;
-yy1020:
-               YYDEBUG(1020, *YYCURSOR);
+yy1037:
+               YYDEBUG(1037, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '0') goto yy989;
+               if(yych == '0') goto yy1006;
                goto yy54;
-yy1021:
-               YYDEBUG(1021, *YYCURSOR);
+yy1038:
+               YYDEBUG(1038, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1007;
-               if(yych <= '9') goto yy1003;
-               if(yych <= ':') goto yy1015;
+               if(yych <= '5') goto yy1024;
+               if(yych <= '9') goto yy1020;
+               if(yych <= ':') goto yy1032;
                goto yy54;
-yy1022:
-               YYDEBUG(1022, *YYCURSOR);
+yy1039:
+               YYDEBUG(1039, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy58;
-                       if(yych <= '0') goto yy1024;
-                       goto yy993;
+                       if(yych <= '0') goto yy1041;
+                       goto yy1010;
                } else {
-                       if(yych <= '3') goto yy994;
-                       if(yych <= '9') goto yy968;
+                       if(yych <= '3') goto yy1011;
+                       if(yych <= '9') goto yy985;
                        goto yy58;
                }
-yy1023:
-               YYDEBUG(1023, *YYCURSOR);
+yy1040:
+               YYDEBUG(1040, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy58;
-                       if(yych <= '0') goto yy992;
-                       goto yy993;
+                       if(yych <= '0') goto yy1009;
+                       goto yy1010;
                } else {
-                       if(yych <= '3') goto yy994;
-                       if(yych <= '9') goto yy968;
+                       if(yych <= '3') goto yy1011;
+                       if(yych <= '9') goto yy985;
                        goto yy58;
                }
-yy1024:
-               YYDEBUG(1024, *YYCURSOR);
+yy1041:
+               YYDEBUG(1041, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy995;
+               if(yych <= '9') goto yy1012;
                goto yy58;
-yy1025:
-               YYDEBUG(1025, *YYCURSOR);
+yy1042:
+               YYDEBUG(1042, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy1026;
+               if(yych == 'C') goto yy1043;
                if(yych != 'c') goto yy54;
-yy1026:
-               YYDEBUG(1026, *YYCURSOR);
+yy1043:
+               YYDEBUG(1043, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'E') goto yy1027;
-               if(yych != 'e') goto yy941;
-yy1027:
-               YYDEBUG(1027, *YYCURSOR);
+               if(yych == 'E') goto yy1044;
+               if(yych != 'e') goto yy958;
+yy1044:
+               YYDEBUG(1044, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy1028;
+               if(yych == 'M') goto yy1045;
                if(yych != 'm') goto yy54;
-yy1028:
-               YYDEBUG(1028, *YYCURSOR);
+yy1045:
+               YYDEBUG(1045, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy1029;
+               if(yych == 'B') goto yy1046;
                if(yych != 'b') goto yy54;
-yy1029:
-               YYDEBUG(1029, *YYCURSOR);
+yy1046:
+               YYDEBUG(1046, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1030;
+               if(yych == 'E') goto yy1047;
                if(yych != 'e') goto yy54;
-yy1030:
-               YYDEBUG(1030, *YYCURSOR);
+yy1047:
+               YYDEBUG(1047, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1031;
+               if(yych == 'R') goto yy1048;
                if(yych != 'r') goto yy54;
-yy1031:
-               YYDEBUG(1031, *YYCURSOR);
+yy1048:
+               YYDEBUG(1048, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy941;
-yy1032:
-               YYDEBUG(1032, *YYCURSOR);
+               goto yy958;
+yy1049:
+               YYDEBUG(1049, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'V') goto yy1033;
+               if(yych == 'V') goto yy1050;
                if(yych != 'v') goto yy54;
-yy1033:
-               YYDEBUG(1033, *YYCURSOR);
+yy1050:
+               YYDEBUG(1050, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'E') goto yy1034;
-               if(yych != 'e') goto yy941;
-yy1034:
-               YYDEBUG(1034, *YYCURSOR);
+               if(yych == 'E') goto yy1051;
+               if(yych != 'e') goto yy958;
+yy1051:
+               YYDEBUG(1051, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy1035;
+               if(yych == 'M') goto yy1052;
                if(yych != 'm') goto yy54;
-yy1035:
-               YYDEBUG(1035, *YYCURSOR);
+yy1052:
+               YYDEBUG(1052, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy1036;
+               if(yych == 'B') goto yy1053;
                if(yych != 'b') goto yy54;
-yy1036:
-               YYDEBUG(1036, *YYCURSOR);
+yy1053:
+               YYDEBUG(1053, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1037;
+               if(yych == 'E') goto yy1054;
                if(yych != 'e') goto yy54;
-yy1037:
-               YYDEBUG(1037, *YYCURSOR);
+yy1054:
+               YYDEBUG(1054, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1031;
-               if(yych == 'r') goto yy1031;
+               if(yych == 'R') goto yy1048;
+               if(yych == 'r') goto yy1048;
                goto yy54;
-yy1038:
-               YYDEBUG(1038, *YYCURSOR);
+yy1055:
+               YYDEBUG(1055, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy1039;
+               if(yych == 'T') goto yy1056;
                if(yych != 't') goto yy54;
-yy1039:
-               YYDEBUG(1039, *YYCURSOR);
+yy1056:
+               YYDEBUG(1056, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'O') goto yy1040;
-               if(yych != 'o') goto yy941;
-yy1040:
-               YYDEBUG(1040, *YYCURSOR);
+               if(yych == 'O') goto yy1057;
+               if(yych != 'o') goto yy958;
+yy1057:
+               YYDEBUG(1057, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy1041;
+               if(yych == 'B') goto yy1058;
                if(yych != 'b') goto yy54;
-yy1041:
-               YYDEBUG(1041, *YYCURSOR);
+yy1058:
+               YYDEBUG(1058, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1042;
+               if(yych == 'E') goto yy1059;
                if(yych != 'e') goto yy54;
-yy1042:
-               YYDEBUG(1042, *YYCURSOR);
+yy1059:
+               YYDEBUG(1059, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1031;
-               if(yych == 'r') goto yy1031;
+               if(yych == 'R') goto yy1048;
+               if(yych == 'r') goto yy1048;
                goto yy54;
-yy1043:
-               YYDEBUG(1043, *YYCURSOR);
+yy1060:
+               YYDEBUG(1060, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'P') {
                        if(yych == 'C') goto yy126;
@@ -16172,598 +16372,598 @@ yy1043:
                                if(yych != 'p') goto yy54;
                        }
                }
-yy1044:
-               YYDEBUG(1044, *YYCURSOR);
+yy1061:
+               YYDEBUG(1061, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy1045;
-               if(yych != 't') goto yy941;
-yy1045:
-               YYDEBUG(1045, *YYCURSOR);
+               if(yych == 'T') goto yy1062;
+               if(yych != 't') goto yy958;
+yy1062:
+               YYDEBUG(1062, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'E') goto yy1046;
-               if(yych != 'e') goto yy941;
-yy1046:
-               YYDEBUG(1046, *YYCURSOR);
+               if(yych == 'E') goto yy1063;
+               if(yych != 'e') goto yy958;
+yy1063:
+               YYDEBUG(1063, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy1047;
+               if(yych == 'M') goto yy1064;
                if(yych != 'm') goto yy54;
-yy1047:
-               YYDEBUG(1047, *YYCURSOR);
+yy1064:
+               YYDEBUG(1064, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy1048;
+               if(yych == 'B') goto yy1065;
                if(yych != 'b') goto yy54;
-yy1048:
-               YYDEBUG(1048, *YYCURSOR);
+yy1065:
+               YYDEBUG(1065, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1049;
+               if(yych == 'E') goto yy1066;
                if(yych != 'e') goto yy54;
-yy1049:
-               YYDEBUG(1049, *YYCURSOR);
+yy1066:
+               YYDEBUG(1066, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1031;
-               if(yych == 'r') goto yy1031;
+               if(yych == 'R') goto yy1048;
+               if(yych == 'r') goto yy1048;
                goto yy54;
-yy1050:
-               YYDEBUG(1050, *YYCURSOR);
+yy1067:
+               YYDEBUG(1067, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'G') goto yy1054;
-               if(yych == 'g') goto yy1054;
+               if(yych == 'G') goto yy1071;
+               if(yych == 'g') goto yy1071;
                goto yy54;
-yy1051:
-               YYDEBUG(1051, *YYCURSOR);
+yy1068:
+               YYDEBUG(1068, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1052;
+               if(yych == 'R') goto yy1069;
                if(yych != 'r') goto yy54;
-yy1052:
-               YYDEBUG(1052, *YYCURSOR);
+yy1069:
+               YYDEBUG(1069, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'I') goto yy1053;
-               if(yych != 'i') goto yy941;
-yy1053:
-               YYDEBUG(1053, *YYCURSOR);
+               if(yych == 'I') goto yy1070;
+               if(yych != 'i') goto yy958;
+yy1070:
+               YYDEBUG(1070, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'L') goto yy1031;
-               if(yych == 'l') goto yy1031;
+               if(yych == 'L') goto yy1048;
+               if(yych == 'l') goto yy1048;
                goto yy54;
-yy1054:
-               YYDEBUG(1054, *YYCURSOR);
+yy1071:
+               YYDEBUG(1071, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'U') goto yy1055;
-               if(yych != 'u') goto yy941;
-yy1055:
-               YYDEBUG(1055, *YYCURSOR);
+               if(yych == 'U') goto yy1072;
+               if(yych != 'u') goto yy958;
+yy1072:
+               YYDEBUG(1072, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'S') goto yy1056;
+               if(yych == 'S') goto yy1073;
                if(yych != 's') goto yy54;
-yy1056:
-               YYDEBUG(1056, *YYCURSOR);
+yy1073:
+               YYDEBUG(1073, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy1031;
-               if(yych == 't') goto yy1031;
+               if(yych == 'T') goto yy1048;
+               if(yych == 't') goto yy1048;
                goto yy54;
-yy1057:
-               YYDEBUG(1057, *YYCURSOR);
+yy1074:
+               YYDEBUG(1074, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
-                       if(yych == 'R') goto yy1058;
+                       if(yych == 'R') goto yy1075;
                        if(yych <= 'X') goto yy54;
-                       goto yy1031;
+                       goto yy1048;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy54;
                        } else {
-                               if(yych == 'y') goto yy1031;
+                               if(yych == 'y') goto yy1048;
                                goto yy54;
                        }
                }
-yy1058:
-               YYDEBUG(1058, *YYCURSOR);
+yy1075:
+               YYDEBUG(1075, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'C') goto yy1059;
-               if(yych != 'c') goto yy941;
-yy1059:
-               YYDEBUG(1059, *YYCURSOR);
+               if(yych == 'C') goto yy1076;
+               if(yych != 'c') goto yy958;
+yy1076:
+               YYDEBUG(1076, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'H') goto yy1031;
-               if(yych == 'h') goto yy1031;
+               if(yych == 'H') goto yy1048;
+               if(yych == 'h') goto yy1048;
                goto yy54;
-yy1060:
-               YYDEBUG(1060, *YYCURSOR);
+yy1077:
+               YYDEBUG(1077, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy1061;
+               if(yych == 'B') goto yy1078;
                if(yych != 'b') goto yy54;
-yy1061:
-               YYDEBUG(1061, *YYCURSOR);
+yy1078:
+               YYDEBUG(1078, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'R') goto yy1062;
-               if(yych != 'r') goto yy941;
-yy1062:
-               YYDEBUG(1062, *YYCURSOR);
+               if(yych == 'R') goto yy1079;
+               if(yych != 'r') goto yy958;
+yy1079:
+               YYDEBUG(1079, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'U') goto yy1063;
+               if(yych == 'U') goto yy1080;
                if(yych != 'u') goto yy54;
-yy1063:
-               YYDEBUG(1063, *YYCURSOR);
+yy1080:
+               YYDEBUG(1080, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1064;
+               if(yych == 'A') goto yy1081;
                if(yych != 'a') goto yy54;
-yy1064:
-               YYDEBUG(1064, *YYCURSOR);
+yy1081:
+               YYDEBUG(1081, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1065;
+               if(yych == 'R') goto yy1082;
                if(yych != 'r') goto yy54;
-yy1065:
-               YYDEBUG(1065, *YYCURSOR);
+yy1082:
+               YYDEBUG(1082, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1031;
-               if(yych == 'y') goto yy1031;
+               if(yych == 'Y') goto yy1048;
+               if(yych == 'y') goto yy1048;
                goto yy54;
-yy1066:
-               YYDEBUG(1066, *YYCURSOR);
+yy1083:
+               YYDEBUG(1083, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
-                       if(yych == 'L') goto yy1073;
+                       if(yych == 'L') goto yy1090;
                        if(yych <= 'M') goto yy54;
-                       goto yy1072;
+                       goto yy1089;
                } else {
                        if(yych <= 'l') {
                                if(yych <= 'k') goto yy54;
-                               goto yy1073;
+                               goto yy1090;
                        } else {
-                               if(yych == 'n') goto yy1072;
+                               if(yych == 'n') goto yy1089;
                                goto yy54;
                        }
                }
-yy1067:
-               YYDEBUG(1067, *YYCURSOR);
+yy1084:
+               YYDEBUG(1084, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'N') goto yy1068;
+               if(yych == 'N') goto yy1085;
                if(yych != 'n') goto yy54;
-yy1068:
-               YYDEBUG(1068, *YYCURSOR);
+yy1085:
+               YYDEBUG(1085, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'U') goto yy1069;
-               if(yych != 'u') goto yy941;
-yy1069:
-               YYDEBUG(1069, *YYCURSOR);
+               if(yych == 'U') goto yy1086;
+               if(yych != 'u') goto yy958;
+yy1086:
+               YYDEBUG(1086, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1070;
+               if(yych == 'A') goto yy1087;
                if(yych != 'a') goto yy54;
-yy1070:
-               YYDEBUG(1070, *YYCURSOR);
+yy1087:
+               YYDEBUG(1087, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1071;
+               if(yych == 'R') goto yy1088;
                if(yych != 'r') goto yy54;
-yy1071:
-               YYDEBUG(1071, *YYCURSOR);
+yy1088:
+               YYDEBUG(1088, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1031;
-               if(yych == 'y') goto yy1031;
+               if(yych == 'Y') goto yy1048;
+               if(yych == 'y') goto yy1048;
                goto yy54;
-yy1072:
-               YYDEBUG(1072, *YYCURSOR);
+yy1089:
+               YYDEBUG(1089, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1031;
-               if(yych == 'e') goto yy1031;
-               goto yy941;
-yy1073:
-               YYDEBUG(1073, *YYCURSOR);
+               if(yych == 'E') goto yy1048;
+               if(yych == 'e') goto yy1048;
+               goto yy958;
+yy1090:
+               YYDEBUG(1090, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1031;
-               if(yych == 'y') goto yy1031;
-               goto yy941;
-yy1074:
-               YYDEBUG(1074, *YYCURSOR);
+               if(yych == 'Y') goto yy1048;
+               if(yych == 'y') goto yy1048;
+               goto yy958;
+yy1091:
+               YYDEBUG(1091, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'I') goto yy1031;
-               goto yy941;
-yy1075:
-               YYDEBUG(1075, *YYCURSOR);
+               if(yych == 'I') goto yy1048;
+               goto yy958;
+yy1092:
+               YYDEBUG(1092, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych != 'I') goto yy941;
-               YYDEBUG(1076, *YYCURSOR);
+               if(yych != 'I') goto yy958;
+               YYDEBUG(1093, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'I') goto yy1031;
-               goto yy941;
-yy1077:
-               YYDEBUG(1077, *YYCURSOR);
+               if(yych == 'I') goto yy1048;
+               goto yy958;
+yy1094:
+               YYDEBUG(1094, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'I') goto yy1031;
-               goto yy941;
-yy1078:
-               YYDEBUG(1078, *YYCURSOR);
+               if(yych == 'I') goto yy1048;
+               goto yy958;
+yy1095:
+               YYDEBUG(1095, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy1093;
-               if(yych <= '9') goto yy1092;
+               if(yych <= '0') goto yy1110;
+               if(yych <= '9') goto yy1109;
                goto yy54;
-yy1079:
-               YYDEBUG(1079, *YYCURSOR);
+yy1096:
+               YYDEBUG(1096, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1091;
+               if(yych <= '9') goto yy1108;
                goto yy54;
-yy1080:
-               YYDEBUG(1080, *YYCURSOR);
+yy1097:
+               YYDEBUG(1097, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1089;
-               if(yych <= '6') goto yy1088;
+               if(yych <= '5') goto yy1106;
+               if(yych <= '6') goto yy1105;
                goto yy54;
-yy1081:
-               YYDEBUG(1081, *YYCURSOR);
+yy1098:
+               YYDEBUG(1098, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1060;
-               if(yych == 'e') goto yy1060;
+               if(yych == 'E') goto yy1077;
+               if(yych == 'e') goto yy1077;
                goto yy54;
-yy1082:
-               YYDEBUG(1082, *YYCURSOR);
+yy1099:
+               YYDEBUG(1099, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1057;
-               if(yych == 'a') goto yy1057;
+               if(yych == 'A') goto yy1074;
+               if(yych == 'a') goto yy1074;
                goto yy54;
-yy1083:
-               YYDEBUG(1083, *YYCURSOR);
+yy1100:
+               YYDEBUG(1100, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1087;
-               if(yych == 'e') goto yy1087;
+               if(yych == 'E') goto yy1104;
+               if(yych == 'e') goto yy1104;
                goto yy54;
-yy1084:
-               YYDEBUG(1084, *YYCURSOR);
+yy1101:
+               YYDEBUG(1101, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1025;
-               if(yych == 'e') goto yy1025;
+               if(yych == 'E') goto yy1042;
+               if(yych == 'e') goto yy1042;
                goto yy54;
-yy1085:
-               YYDEBUG(1085, *YYCURSOR);
+yy1102:
+               YYDEBUG(1102, *YYCURSOR);
                ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
                yych = *YYCURSOR;
-yy1086:
-               YYDEBUG(1086, *YYCURSOR);
+yy1103:
+               YYDEBUG(1103, *YYCURSOR);
                YYDEBUG(-1, yych);
                switch(yych) {
                case 0x09:
                case ' ':
                case '-':
-               case '.':       goto yy1085;
+               case '.':       goto yy1102;
                case 'A':
-               case 'a':       goto yy947;
+               case 'a':       goto yy964;
                case 'D':
-               case 'd':       goto yy1084;
+               case 'd':       goto yy1101;
                case 'F':
-               case 'f':       goto yy1081;
-               case 'I':       goto yy940;
+               case 'f':       goto yy1098;
+               case 'I':       goto yy957;
                case 'J':
-               case 'j':       goto yy944;
+               case 'j':       goto yy961;
                case 'M':
-               case 'm':       goto yy1082;
+               case 'm':       goto yy1099;
                case 'N':
-               case 'n':       goto yy950;
+               case 'n':       goto yy967;
                case 'O':
-               case 'o':       goto yy949;
+               case 'o':       goto yy966;
                case 'S':
-               case 's':       goto yy1083;
-               case 'V':       goto yy942;
-               case 'X':       goto yy943;
+               case 's':       goto yy1100;
+               case 'V':       goto yy959;
+               case 'X':       goto yy960;
                default:        goto yy54;
                }
-yy1087:
-               YYDEBUG(1087, *YYCURSOR);
+yy1104:
+               YYDEBUG(1104, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'P') goto yy1044;
-               if(yych == 'p') goto yy1044;
+               if(yych == 'P') goto yy1061;
+               if(yych == 'p') goto yy1061;
                goto yy54;
-yy1088:
-               YYDEBUG(1088, *YYCURSOR);
+yy1105:
+               YYDEBUG(1105, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '6') goto yy1090;
+               if(yych <= '6') goto yy1107;
                goto yy54;
-yy1089:
-               YYDEBUG(1089, *YYCURSOR);
+yy1106:
+               YYDEBUG(1106, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-yy1090:
-               YYDEBUG(1090, *YYCURSOR);
+yy1107:
+               YYDEBUG(1107, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy969;
-yy1091:
-               YYDEBUG(1091, *YYCURSOR);
+               goto yy986;
+yy1108:
+               YYDEBUG(1108, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1090;
+               if(yych <= '9') goto yy1107;
                goto yy54;
-yy1092:
-               YYDEBUG(1092, *YYCURSOR);
+yy1109:
+               YYDEBUG(1109, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1090;
+               if(yych <= '9') goto yy1107;
                goto yy54;
-yy1093:
-               YYDEBUG(1093, *YYCURSOR);
+yy1110:
+               YYDEBUG(1110, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '0') goto yy54;
-               if(yych <= '9') goto yy1090;
+               if(yych <= '9') goto yy1107;
                goto yy54;
-yy1094:
-               YYDEBUG(1094, *YYCURSOR);
+yy1111:
+               YYDEBUG(1111, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '.') goto yy54;
-               if(yych <= '/') goto yy1097;
-               if(yych <= '9') goto yy1105;
+               if(yych <= '/') goto yy1114;
+               if(yych <= '9') goto yy1122;
                goto yy54;
-yy1095:
-               YYDEBUG(1095, *YYCURSOR);
+yy1112:
+               YYDEBUG(1112, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '.') goto yy54;
-               if(yych <= '/') goto yy1097;
-               if(yych <= '2') goto yy1105;
+               if(yych <= '/') goto yy1114;
+               if(yych <= '2') goto yy1122;
                goto yy54;
-yy1096:
-               YYDEBUG(1096, *YYCURSOR);
+yy1113:
+               YYDEBUG(1113, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '/') goto yy54;
-yy1097:
-               YYDEBUG(1097, *YYCURSOR);
+yy1114:
+               YYDEBUG(1114, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '2') goto yy1098;
-               if(yych <= '3') goto yy1099;
-               if(yych <= '9') goto yy1100;
+               if(yych <= '2') goto yy1115;
+               if(yych <= '3') goto yy1116;
+               if(yych <= '9') goto yy1117;
                goto yy54;
-yy1098:
-               YYDEBUG(1098, *YYCURSOR);
+yy1115:
+               YYDEBUG(1115, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') goto yy626;
-                       if(yych <= '9') goto yy1100;
+                       if(yych <= '9') goto yy1117;
                        if(yych <= 'm') goto yy626;
-                       goto yy1102;
+                       goto yy1119;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1103;
+                               goto yy1120;
                        } else {
-                               if(yych <= 's') goto yy1101;
-                               if(yych <= 't') goto yy1104;
+                               if(yych <= 's') goto yy1118;
+                               if(yych <= 't') goto yy1121;
                                goto yy626;
                        }
                }
-yy1099:
-               YYDEBUG(1099, *YYCURSOR);
+yy1116:
+               YYDEBUG(1116, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') goto yy626;
-                       if(yych <= '1') goto yy1100;
+                       if(yych <= '1') goto yy1117;
                        if(yych <= 'm') goto yy626;
-                       goto yy1102;
+                       goto yy1119;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1103;
+                               goto yy1120;
                        } else {
-                               if(yych <= 's') goto yy1101;
-                               if(yych <= 't') goto yy1104;
+                               if(yych <= 's') goto yy1118;
+                               if(yych <= 't') goto yy1121;
                                goto yy626;
                        }
                }
-yy1100:
-               YYDEBUG(1100, *YYCURSOR);
+yy1117:
+               YYDEBUG(1117, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'q') {
-                       if(yych == 'n') goto yy1102;
+                       if(yych == 'n') goto yy1119;
                        goto yy626;
                } else {
-                       if(yych <= 'r') goto yy1103;
-                       if(yych <= 's') goto yy1101;
-                       if(yych <= 't') goto yy1104;
+                       if(yych <= 'r') goto yy1120;
+                       if(yych <= 's') goto yy1118;
+                       if(yych <= 't') goto yy1121;
                        goto yy626;
                }
-yy1101:
-               YYDEBUG(1101, *YYCURSOR);
+yy1118:
+               YYDEBUG(1118, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 't') goto yy625;
                goto yy54;
-yy1102:
-               YYDEBUG(1102, *YYCURSOR);
+yy1119:
+               YYDEBUG(1119, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'd') goto yy625;
                goto yy54;
-yy1103:
-               YYDEBUG(1103, *YYCURSOR);
+yy1120:
+               YYDEBUG(1120, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'd') goto yy625;
                goto yy54;
-yy1104:
-               YYDEBUG(1104, *YYCURSOR);
+yy1121:
+               YYDEBUG(1121, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'h') goto yy625;
                goto yy54;
-yy1105:
-               YYDEBUG(1105, *YYCURSOR);
+yy1122:
+               YYDEBUG(1122, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '/') goto yy54;
-               YYDEBUG(1106, *YYCURSOR);
+               YYDEBUG(1123, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy54;
-                       if(yych >= '1') goto yy1108;
+                       if(yych >= '1') goto yy1125;
                } else {
-                       if(yych <= '3') goto yy1109;
-                       if(yych <= '9') goto yy1100;
+                       if(yych <= '3') goto yy1126;
+                       if(yych <= '9') goto yy1117;
                        goto yy54;
                }
-               YYDEBUG(1107, *YYCURSOR);
+               YYDEBUG(1124, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') goto yy626;
-                       if(yych <= '9') goto yy1110;
+                       if(yych <= '9') goto yy1127;
                        if(yych <= 'm') goto yy626;
-                       goto yy1102;
+                       goto yy1119;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1103;
+                               goto yy1120;
                        } else {
-                               if(yych <= 's') goto yy1101;
-                               if(yych <= 't') goto yy1104;
+                               if(yych <= 's') goto yy1118;
+                               if(yych <= 't') goto yy1121;
                                goto yy626;
                        }
                }
-yy1108:
-               YYDEBUG(1108, *YYCURSOR);
+yy1125:
+               YYDEBUG(1125, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') goto yy626;
-                       if(yych <= '9') goto yy1110;
+                       if(yych <= '9') goto yy1127;
                        if(yych <= 'm') goto yy626;
-                       goto yy1102;
+                       goto yy1119;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1103;
+                               goto yy1120;
                        } else {
-                               if(yych <= 's') goto yy1101;
-                               if(yych <= 't') goto yy1104;
+                               if(yych <= 's') goto yy1118;
+                               if(yych <= 't') goto yy1121;
                                goto yy626;
                        }
                }
-yy1109:
-               YYDEBUG(1109, *YYCURSOR);
+yy1126:
+               YYDEBUG(1126, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '/') goto yy626;
-                       if(yych <= '1') goto yy1110;
+                       if(yych <= '1') goto yy1127;
                        if(yych <= 'm') goto yy626;
-                       goto yy1102;
+                       goto yy1119;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1103;
+                               goto yy1120;
                        } else {
-                               if(yych <= 's') goto yy1101;
-                               if(yych <= 't') goto yy1104;
+                               if(yych <= 's') goto yy1118;
+                               if(yych <= 't') goto yy1121;
                                goto yy626;
                        }
                }
-yy1110:
-               YYDEBUG(1110, *YYCURSOR);
+yy1127:
+               YYDEBUG(1127, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych == '/') goto yy625;
                        if(yych <= 'm') goto yy626;
-                       goto yy1102;
+                       goto yy1119;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1103;
+                               goto yy1120;
                        } else {
-                               if(yych <= 's') goto yy1101;
-                               if(yych <= 't') goto yy1104;
+                               if(yych <= 's') goto yy1118;
+                               if(yych <= 't') goto yy1121;
                                goto yy626;
                        }
                }
-yy1111:
-               YYDEBUG(1111, *YYCURSOR);
+yy1128:
+               YYDEBUG(1128, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'A') goto yy1191;
+                       if(yych == 'A') goto yy1208;
                        if(yych <= 'T') goto yy54;
-                       goto yy1190;
+                       goto yy1207;
                } else {
                        if(yych <= 'a') {
                                if(yych <= '`') goto yy54;
-                               goto yy1191;
+                               goto yy1208;
                        } else {
-                               if(yych == 'u') goto yy1190;
+                               if(yych == 'u') goto yy1207;
                                goto yy54;
                        }
                }
-yy1112:
-               YYDEBUG(1112, *YYCURSOR);
+yy1129:
+               YYDEBUG(1129, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1188;
-               if(yych == 'e') goto yy1188;
+               if(yych == 'E') goto yy1205;
+               if(yych == 'e') goto yy1205;
                goto yy54;
-yy1113:
-               YYDEBUG(1113, *YYCURSOR);
+yy1130:
+               YYDEBUG(1130, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1185;
-               if(yych == 'a') goto yy1185;
+               if(yych == 'A') goto yy1202;
+               if(yych == 'a') goto yy1202;
                goto yy54;
-yy1114:
-               YYDEBUG(1114, *YYCURSOR);
+yy1131:
+               YYDEBUG(1131, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
-                       if(yych == 'P') goto yy1182;
+                       if(yych == 'P') goto yy1199;
                        if(yych <= 'T') goto yy54;
-                       goto yy1181;
+                       goto yy1198;
                } else {
                        if(yych <= 'p') {
                                if(yych <= 'o') goto yy54;
-                               goto yy1182;
+                               goto yy1199;
                        } else {
-                               if(yych == 'u') goto yy1181;
+                               if(yych == 'u') goto yy1198;
                                goto yy54;
                        }
                }
-yy1115:
-               YYDEBUG(1115, *YYCURSOR);
+yy1132:
+               YYDEBUG(1132, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1178;
-               if(yych == 'e') goto yy1178;
+               if(yych == 'E') goto yy1195;
+               if(yych == 'e') goto yy1195;
                goto yy54;
-yy1116:
-               YYDEBUG(1116, *YYCURSOR);
+yy1133:
+               YYDEBUG(1133, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy1176;
-               if(yych == 'c') goto yy1176;
+               if(yych == 'C') goto yy1193;
+               if(yych == 'c') goto yy1193;
                goto yy54;
-yy1117:
-               YYDEBUG(1117, *YYCURSOR);
+yy1134:
+               YYDEBUG(1134, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy1174;
-               if(yych == 'o') goto yy1174;
+               if(yych == 'O') goto yy1191;
+               if(yych == 'o') goto yy1191;
                goto yy54;
-yy1118:
-               YYDEBUG(1118, *YYCURSOR);
+yy1135:
+               YYDEBUG(1135, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'E') goto yy1172;
-               if(yych == 'e') goto yy1172;
+               if(yych == 'E') goto yy1189;
+               if(yych == 'e') goto yy1189;
                goto yy54;
-yy1119:
-               YYDEBUG(1119, *YYCURSOR);
+yy1136:
+               YYDEBUG(1136, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '0') goto yy958;
-               if(yych <= '4') goto yy959;
-               if(yych <= '5') goto yy960;
+               if(yych <= '0') goto yy975;
+               if(yych <= '4') goto yy976;
+               if(yych <= '5') goto yy977;
                goto yy54;
-yy1120:
-               YYDEBUG(1120, *YYCURSOR);
+yy1137:
+               YYDEBUG(1137, *YYCURSOR);
                yyaccept = 23;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '-') goto yy1124;
-               if(yych <= '/') goto yy1121;
-               if(yych <= '9') goto yy1143;
-yy1121:
-               YYDEBUG(1121, *YYCURSOR);
-#line 1204 "ext/date/lib/parse_date.re"
+               if(yych == '-') goto yy1141;
+               if(yych <= '/') goto yy1138;
+               if(yych <= '9') goto yy1160;
+yy1138:
+               YYDEBUG(1138, *YYCURSOR);
+#line 1229 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("gnudateshorter");
                TIMELIB_INIT;
@@ -16774,716 +16974,716 @@ yy1121:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 16778 "ext/date/lib/parse_date.c"
-yy1122:
-               YYDEBUG(1122, *YYCURSOR);
+#line 16978 "ext/date/lib/parse_date.c"
+yy1139:
+               YYDEBUG(1139, *YYCURSOR);
                yyaccept = 23;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '-') goto yy1124;
-               if(yych <= '/') goto yy1121;
-               if(yych <= '2') goto yy1143;
-               goto yy1121;
-yy1123:
-               YYDEBUG(1123, *YYCURSOR);
+               if(yych == '-') goto yy1141;
+               if(yych <= '/') goto yy1138;
+               if(yych <= '2') goto yy1160;
+               goto yy1138;
+yy1140:
+               YYDEBUG(1140, *YYCURSOR);
                yyaccept = 23;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych != '-') goto yy1121;
-yy1124:
-               YYDEBUG(1124, *YYCURSOR);
+               if(yych != '-') goto yy1138;
+yy1141:
+               YYDEBUG(1141, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '2') goto yy1125;
-               if(yych <= '3') goto yy1126;
-               if(yych <= '9') goto yy1127;
+               if(yych <= '2') goto yy1142;
+               if(yych <= '3') goto yy1143;
+               if(yych <= '9') goto yy1144;
                goto yy54;
-yy1125:
-               YYDEBUG(1125, *YYCURSOR);
+yy1142:
+               YYDEBUG(1142, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'm') {
                        if(yych <= '9') {
-                               if(yych <= '/') goto yy810;
-                               goto yy1127;
+                               if(yych <= '/') goto yy827;
+                               goto yy1144;
                        } else {
-                               if(yych == 'T') goto yy1132;
-                               goto yy810;
+                               if(yych == 'T') goto yy1149;
+                               goto yy827;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'n') goto yy1129;
-                               if(yych <= 'q') goto yy810;
-                               goto yy1130;
+                               if(yych <= 'n') goto yy1146;
+                               if(yych <= 'q') goto yy827;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
-                               goto yy810;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
+                               goto yy827;
                        }
                }
-yy1126:
-               YYDEBUG(1126, *YYCURSOR);
+yy1143:
+               YYDEBUG(1143, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'm') {
                        if(yych <= '1') {
-                               if(yych <= '/') goto yy810;
+                               if(yych <= '/') goto yy827;
                        } else {
-                               if(yych == 'T') goto yy1132;
-                               goto yy810;
+                               if(yych == 'T') goto yy1149;
+                               goto yy827;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'n') goto yy1129;
-                               if(yych <= 'q') goto yy810;
-                               goto yy1130;
+                               if(yych <= 'n') goto yy1146;
+                               if(yych <= 'q') goto yy827;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
-                               goto yy810;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
+                               goto yy827;
                        }
                }
-yy1127:
-               YYDEBUG(1127, *YYCURSOR);
+yy1144:
+               YYDEBUG(1144, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych == 'T') goto yy1132;
-                       if(yych <= 'm') goto yy810;
-                       goto yy1129;
+                       if(yych == 'T') goto yy1149;
+                       if(yych <= 'm') goto yy827;
+                       goto yy1146;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy1130;
+                               if(yych <= 'q') goto yy827;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
-                               goto yy810;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
+                               goto yy827;
                        }
                }
-yy1128:
-               YYDEBUG(1128, *YYCURSOR);
+yy1145:
+               YYDEBUG(1145, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 't') goto yy1142;
+               if(yych == 't') goto yy1159;
                goto yy54;
-yy1129:
-               YYDEBUG(1129, *YYCURSOR);
+yy1146:
+               YYDEBUG(1146, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy1142;
+               if(yych == 'd') goto yy1159;
                goto yy54;
-yy1130:
-               YYDEBUG(1130, *YYCURSOR);
+yy1147:
+               YYDEBUG(1147, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'd') goto yy1142;
+               if(yych == 'd') goto yy1159;
                goto yy54;
-yy1131:
-               YYDEBUG(1131, *YYCURSOR);
+yy1148:
+               YYDEBUG(1148, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'h') goto yy1142;
+               if(yych == 'h') goto yy1159;
                goto yy54;
-yy1132:
-               YYDEBUG(1132, *YYCURSOR);
+yy1149:
+               YYDEBUG(1149, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '1') goto yy1133;
-               if(yych <= '2') goto yy1134;
-               if(yych <= '9') goto yy1135;
+               if(yych <= '1') goto yy1150;
+               if(yych <= '2') goto yy1151;
+               if(yych <= '9') goto yy1152;
                goto yy54;
-yy1133:
-               YYDEBUG(1133, *YYCURSOR);
+yy1150:
+               YYDEBUG(1150, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1135;
-               if(yych <= ':') goto yy1136;
+               if(yych <= '9') goto yy1152;
+               if(yych <= ':') goto yy1153;
                goto yy54;
-yy1134:
-               YYDEBUG(1134, *YYCURSOR);
+yy1151:
+               YYDEBUG(1151, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '4') goto yy1135;
-               if(yych == ':') goto yy1136;
+               if(yych <= '4') goto yy1152;
+               if(yych == ':') goto yy1153;
                goto yy54;
-yy1135:
-               YYDEBUG(1135, *YYCURSOR);
+yy1152:
+               YYDEBUG(1152, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-yy1136:
-               YYDEBUG(1136, *YYCURSOR);
+yy1153:
+               YYDEBUG(1153, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1137;
-               if(yych <= '9') goto yy1138;
+               if(yych <= '5') goto yy1154;
+               if(yych <= '9') goto yy1155;
                goto yy54;
-yy1137:
-               YYDEBUG(1137, *YYCURSOR);
+yy1154:
+               YYDEBUG(1154, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1138;
-               if(yych <= ':') goto yy1139;
+               if(yych <= '9') goto yy1155;
+               if(yych <= ':') goto yy1156;
                goto yy54;
-yy1138:
-               YYDEBUG(1138, *YYCURSOR);
+yy1155:
+               YYDEBUG(1155, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-yy1139:
-               YYDEBUG(1139, *YYCURSOR);
+yy1156:
+               YYDEBUG(1156, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1140;
-               if(yych <= '6') goto yy1141;
-               if(yych <= '9') goto yy989;
+               if(yych <= '5') goto yy1157;
+               if(yych <= '6') goto yy1158;
+               if(yych <= '9') goto yy1006;
                goto yy54;
-yy1140:
-               YYDEBUG(1140, *YYCURSOR);
+yy1157:
+               YYDEBUG(1157, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '9') goto yy989;
-               goto yy990;
-yy1141:
-               YYDEBUG(1141, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '9') goto yy1006;
+               goto yy1007;
+yy1158:
+               YYDEBUG(1158, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '0') goto yy989;
-               goto yy990;
-yy1142:
-               YYDEBUG(1142, *YYCURSOR);
+               if(yych == '0') goto yy1006;
+               goto yy1007;
+yy1159:
+               YYDEBUG(1159, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == 'T') goto yy1132;
-               goto yy810;
-yy1143:
-               YYDEBUG(1143, *YYCURSOR);
+               if(yych == 'T') goto yy1149;
+               goto yy827;
+yy1160:
+               YYDEBUG(1160, *YYCURSOR);
                yyaccept = 23;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych != '-') goto yy1121;
-               YYDEBUG(1144, *YYCURSOR);
+               if(yych != '-') goto yy1138;
+               YYDEBUG(1161, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy54;
-                       if(yych >= '1') goto yy1146;
+                       if(yych >= '1') goto yy1163;
                } else {
-                       if(yych <= '3') goto yy1147;
-                       if(yych <= '9') goto yy1127;
+                       if(yych <= '3') goto yy1164;
+                       if(yych <= '9') goto yy1144;
                        goto yy54;
                }
-               YYDEBUG(1145, *YYCURSOR);
+               YYDEBUG(1162, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'm') {
                        if(yych <= '9') {
-                               if(yych <= '/') goto yy810;
-                               goto yy1148;
+                               if(yych <= '/') goto yy827;
+                               goto yy1165;
                        } else {
-                               if(yych == 'T') goto yy1132;
-                               goto yy810;
+                               if(yych == 'T') goto yy1149;
+                               goto yy827;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'n') goto yy1129;
-                               if(yych <= 'q') goto yy810;
-                               goto yy1130;
+                               if(yych <= 'n') goto yy1146;
+                               if(yych <= 'q') goto yy827;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
-                               goto yy810;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
+                               goto yy827;
                        }
                }
-yy1146:
-               YYDEBUG(1146, *YYCURSOR);
+yy1163:
+               YYDEBUG(1163, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'm') {
                        if(yych <= '9') {
-                               if(yych <= '/') goto yy810;
-                               goto yy1148;
+                               if(yych <= '/') goto yy827;
+                               goto yy1165;
                        } else {
-                               if(yych == 'T') goto yy1132;
-                               goto yy810;
+                               if(yych == 'T') goto yy1149;
+                               goto yy827;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'n') goto yy1129;
-                               if(yych <= 'q') goto yy810;
-                               goto yy1130;
+                               if(yych <= 'n') goto yy1146;
+                               if(yych <= 'q') goto yy827;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
-                               goto yy810;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
+                               goto yy827;
                        }
                }
-yy1147:
-               YYDEBUG(1147, *YYCURSOR);
+yy1164:
+               YYDEBUG(1164, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'm') {
                        if(yych <= '1') {
-                               if(yych <= '/') goto yy810;
+                               if(yych <= '/') goto yy827;
                        } else {
-                               if(yych == 'T') goto yy1132;
-                               goto yy810;
+                               if(yych == 'T') goto yy1149;
+                               goto yy827;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'n') goto yy1129;
-                               if(yych <= 'q') goto yy810;
-                               goto yy1130;
+                               if(yych <= 'n') goto yy1146;
+                               if(yych <= 'q') goto yy827;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
-                               goto yy810;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
+                               goto yy827;
                        }
                }
-yy1148:
-               YYDEBUG(1148, *YYCURSOR);
+yy1165:
+               YYDEBUG(1165, *YYCURSOR);
                yyaccept = 22;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych == 'T') goto yy1149;
+                       if(yych == 'T') goto yy1166;
                        if(yych <= 'm') goto yy626;
-                       goto yy1129;
+                       goto yy1146;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy626;
-                               goto yy1130;
+                               goto yy1147;
                        } else {
-                               if(yych <= 's') goto yy1128;
-                               if(yych <= 't') goto yy1131;
+                               if(yych <= 's') goto yy1145;
+                               if(yych <= 't') goto yy1148;
                                goto yy626;
                        }
                }
-yy1149:
-               YYDEBUG(1149, *YYCURSOR);
+yy1166:
+               YYDEBUG(1166, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '1') goto yy1150;
-               if(yych <= '2') goto yy1151;
-               if(yych <= '9') goto yy1135;
+               if(yych <= '1') goto yy1167;
+               if(yych <= '2') goto yy1168;
+               if(yych <= '9') goto yy1152;
                goto yy54;
-yy1150:
-               YYDEBUG(1150, *YYCURSOR);
+yy1167:
+               YYDEBUG(1167, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1152;
-               if(yych <= ':') goto yy1136;
+               if(yych <= '9') goto yy1169;
+               if(yych <= ':') goto yy1153;
                goto yy54;
-yy1151:
-               YYDEBUG(1151, *YYCURSOR);
+yy1168:
+               YYDEBUG(1168, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '4') goto yy1152;
-               if(yych == ':') goto yy1136;
+               if(yych <= '4') goto yy1169;
+               if(yych == ':') goto yy1153;
                goto yy54;
-yy1152:
-               YYDEBUG(1152, *YYCURSOR);
+yy1169:
+               YYDEBUG(1169, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(1153, *YYCURSOR);
+               YYDEBUG(1170, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1154;
-               if(yych <= '9') goto yy1138;
+               if(yych <= '5') goto yy1171;
+               if(yych <= '9') goto yy1155;
                goto yy54;
-yy1154:
-               YYDEBUG(1154, *YYCURSOR);
+yy1171:
+               YYDEBUG(1171, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1155;
-               if(yych <= ':') goto yy1139;
+               if(yych <= '9') goto yy1172;
+               if(yych <= ':') goto yy1156;
                goto yy54;
-yy1155:
-               YYDEBUG(1155, *YYCURSOR);
+yy1172:
+               YYDEBUG(1172, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != ':') goto yy54;
-               YYDEBUG(1156, *YYCURSOR);
+               YYDEBUG(1173, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1157;
-               if(yych <= '6') goto yy1158;
-               if(yych <= '9') goto yy989;
+               if(yych <= '5') goto yy1174;
+               if(yych <= '6') goto yy1175;
+               if(yych <= '9') goto yy1006;
                goto yy54;
-yy1157:
-               YYDEBUG(1157, *YYCURSOR);
+yy1174:
+               YYDEBUG(1174, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '9') goto yy1159;
-               goto yy990;
-yy1158:
-               YYDEBUG(1158, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '9') goto yy1176;
+               goto yy1007;
+yy1175:
+               YYDEBUG(1175, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych != '0') goto yy990;
-yy1159:
-               YYDEBUG(1159, *YYCURSOR);
+               if(yych != '0') goto yy1007;
+yy1176:
+               YYDEBUG(1176, *YYCURSOR);
                yyaccept = 24;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych != '.') goto yy990;
-               YYDEBUG(1160, *YYCURSOR);
+               if(yych != '.') goto yy1007;
+               YYDEBUG(1177, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-yy1161:
-               YYDEBUG(1161, *YYCURSOR);
+yy1178:
+               YYDEBUG(1178, *YYCURSOR);
                yyaccept = 24;
                YYMARKER = ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
                yych = *YYCURSOR;
-               YYDEBUG(1162, *YYCURSOR);
+               YYDEBUG(1179, *YYCURSOR);
                if(yych <= '-') {
-                       if(yych == '+') goto yy1164;
-                       if(yych <= ',') goto yy990;
-                       goto yy1164;
+                       if(yych == '+') goto yy1181;
+                       if(yych <= ',') goto yy1007;
+                       goto yy1181;
                } else {
                        if(yych <= '9') {
-                               if(yych <= '/') goto yy990;
-                               goto yy1161;
+                               if(yych <= '/') goto yy1007;
+                               goto yy1178;
                        } else {
-                               if(yych != 'G') goto yy990;
+                               if(yych != 'G') goto yy1007;
                        }
                }
-               YYDEBUG(1163, *YYCURSOR);
+               YYDEBUG(1180, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'M') goto yy1170;
+               if(yych == 'M') goto yy1187;
                goto yy54;
-yy1164:
-               YYDEBUG(1164, *YYCURSOR);
+yy1181:
+               YYDEBUG(1181, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '1') goto yy1165;
-               if(yych <= '2') goto yy1166;
-               if(yych <= '9') goto yy1167;
+               if(yych <= '1') goto yy1182;
+               if(yych <= '2') goto yy1183;
+               if(yych <= '9') goto yy1184;
                goto yy54;
-yy1165:
-               YYDEBUG(1165, *YYCURSOR);
+yy1182:
+               YYDEBUG(1182, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '9') goto yy1167;
-               if(yych <= ':') goto yy1168;
-               goto yy990;
-yy1166:
-               YYDEBUG(1166, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '9') goto yy1184;
+               if(yych <= ':') goto yy1185;
+               goto yy1007;
+yy1183:
+               YYDEBUG(1183, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '5') {
-                       if(yych <= '/') goto yy990;
-                       if(yych >= '5') goto yy1169;
+                       if(yych <= '/') goto yy1007;
+                       if(yych >= '5') goto yy1186;
                } else {
-                       if(yych <= '9') goto yy989;
-                       if(yych <= ':') goto yy1168;
-                       goto yy990;
+                       if(yych <= '9') goto yy1006;
+                       if(yych <= ':') goto yy1185;
+                       goto yy1007;
                }
-yy1167:
-               YYDEBUG(1167, *YYCURSOR);
+yy1184:
+               YYDEBUG(1184, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '5') goto yy1169;
-               if(yych <= '9') goto yy989;
-               if(yych >= ';') goto yy990;
-yy1168:
-               YYDEBUG(1168, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '5') goto yy1186;
+               if(yych <= '9') goto yy1006;
+               if(yych >= ';') goto yy1007;
+yy1185:
+               YYDEBUG(1185, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '5') goto yy1169;
-               if(yych <= '9') goto yy989;
-               goto yy990;
-yy1169:
-               YYDEBUG(1169, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '5') goto yy1186;
+               if(yych <= '9') goto yy1006;
+               goto yy1007;
+yy1186:
+               YYDEBUG(1186, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy990;
-               if(yych <= '9') goto yy989;
-               goto yy990;
-yy1170:
-               YYDEBUG(1170, *YYCURSOR);
+               if(yych <= '/') goto yy1007;
+               if(yych <= '9') goto yy1006;
+               goto yy1007;
+yy1187:
+               YYDEBUG(1187, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != 'T') goto yy54;
-               YYDEBUG(1171, *YYCURSOR);
+               YYDEBUG(1188, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '+') goto yy1164;
-               if(yych == '-') goto yy1164;
+               if(yych == '+') goto yy1181;
+               if(yych == '-') goto yy1181;
                goto yy54;
-yy1172:
-               YYDEBUG(1172, *YYCURSOR);
+yy1189:
+               YYDEBUG(1189, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'C') goto yy1173;
+               if(yych == 'C') goto yy1190;
                if(yych != 'c') goto yy54;
-yy1173:
-               YYDEBUG(1173, *YYCURSOR);
+yy1190:
+               YYDEBUG(1190, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'E') goto yy1027;
-                       if(yych == 'e') goto yy1027;
-                       goto yy941;
+                       if(yych <= 'E') goto yy1044;
+                       if(yych == 'e') goto yy1044;
+                       goto yy958;
                }
-yy1174:
-               YYDEBUG(1174, *YYCURSOR);
+yy1191:
+               YYDEBUG(1191, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'V') goto yy1175;
+               if(yych == 'V') goto yy1192;
                if(yych != 'v') goto yy54;
-yy1175:
-               YYDEBUG(1175, *YYCURSOR);
+yy1192:
+               YYDEBUG(1192, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'E') goto yy1034;
-                       if(yych == 'e') goto yy1034;
-                       goto yy941;
+                       if(yych <= 'E') goto yy1051;
+                       if(yych == 'e') goto yy1051;
+                       goto yy958;
                }
-yy1176:
-               YYDEBUG(1176, *YYCURSOR);
+yy1193:
+               YYDEBUG(1193, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy1177;
+               if(yych == 'T') goto yy1194;
                if(yych != 't') goto yy54;
-yy1177:
-               YYDEBUG(1177, *YYCURSOR);
+yy1194:
+               YYDEBUG(1194, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'O') goto yy1040;
-                       if(yych == 'o') goto yy1040;
-                       goto yy941;
+                       if(yych <= 'O') goto yy1057;
+                       if(yych == 'o') goto yy1057;
+                       goto yy958;
                }
-yy1178:
-               YYDEBUG(1178, *YYCURSOR);
+yy1195:
+               YYDEBUG(1195, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'P') goto yy1179;
+               if(yych == 'P') goto yy1196;
                if(yych != 'p') goto yy54;
-yy1179:
-               YYDEBUG(1179, *YYCURSOR);
+yy1196:
+               YYDEBUG(1196, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'T') goto yy1180;
-                       if(yych != 't') goto yy941;
+                       if(yych <= 'T') goto yy1197;
+                       if(yych != 't') goto yy958;
                }
-yy1180:
-               YYDEBUG(1180, *YYCURSOR);
+yy1197:
+               YYDEBUG(1197, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'E') goto yy1046;
-                       if(yych == 'e') goto yy1046;
-                       goto yy941;
+                       if(yych <= 'E') goto yy1063;
+                       if(yych == 'e') goto yy1063;
+                       goto yy958;
                }
-yy1181:
-               YYDEBUG(1181, *YYCURSOR);
+yy1198:
+               YYDEBUG(1198, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'G') goto yy1184;
-               if(yych == 'g') goto yy1184;
+               if(yych == 'G') goto yy1201;
+               if(yych == 'g') goto yy1201;
                goto yy54;
-yy1182:
-               YYDEBUG(1182, *YYCURSOR);
+yy1199:
+               YYDEBUG(1199, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'R') goto yy1183;
+               if(yych == 'R') goto yy1200;
                if(yych != 'r') goto yy54;
-yy1183:
-               YYDEBUG(1183, *YYCURSOR);
+yy1200:
+               YYDEBUG(1200, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'I') goto yy1053;
-                       if(yych == 'i') goto yy1053;
-                       goto yy941;
+                       if(yych <= 'I') goto yy1070;
+                       if(yych == 'i') goto yy1070;
+                       goto yy958;
                }
-yy1184:
-               YYDEBUG(1184, *YYCURSOR);
+yy1201:
+               YYDEBUG(1201, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'U') goto yy1055;
-                       if(yych == 'u') goto yy1055;
-                       goto yy941;
+                       if(yych <= 'U') goto yy1072;
+                       if(yych == 'u') goto yy1072;
+                       goto yy958;
                }
-yy1185:
-               YYDEBUG(1185, *YYCURSOR);
+yy1202:
+               YYDEBUG(1202, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
-                       if(yych == 'R') goto yy1186;
+                       if(yych == 'R') goto yy1203;
                        if(yych <= 'X') goto yy54;
-                       goto yy1187;
+                       goto yy1204;
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'q') goto yy54;
                        } else {
-                               if(yych == 'y') goto yy1187;
+                               if(yych == 'y') goto yy1204;
                                goto yy54;
                        }
                }
-yy1186:
-               YYDEBUG(1186, *YYCURSOR);
+yy1203:
+               YYDEBUG(1203, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'B') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'C') goto yy1059;
-                       if(yych == 'c') goto yy1059;
-                       goto yy941;
+                       if(yych <= 'C') goto yy1076;
+                       if(yych == 'c') goto yy1076;
+                       goto yy958;
                }
-yy1187:
-               YYDEBUG(1187, *YYCURSOR);
+yy1204:
+               YYDEBUG(1204, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '-') goto yy914;
-               goto yy941;
-yy1188:
-               YYDEBUG(1188, *YYCURSOR);
+               if(yych == '-') goto yy931;
+               goto yy958;
+yy1205:
+               YYDEBUG(1205, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'B') goto yy1189;
+               if(yych == 'B') goto yy1206;
                if(yych != 'b') goto yy54;
-yy1189:
-               YYDEBUG(1189, *YYCURSOR);
+yy1206:
+               YYDEBUG(1206, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Q') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'R') goto yy1062;
-                       if(yych == 'r') goto yy1062;
-                       goto yy941;
+                       if(yych <= 'R') goto yy1079;
+                       if(yych == 'r') goto yy1079;
+                       goto yy958;
                }
-yy1190:
-               YYDEBUG(1190, *YYCURSOR);
+yy1207:
+               YYDEBUG(1207, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
-                       if(yych == 'L') goto yy1194;
+                       if(yych == 'L') goto yy1211;
                        if(yych <= 'M') goto yy54;
-                       goto yy1193;
+                       goto yy1210;
                } else {
                        if(yych <= 'l') {
                                if(yych <= 'k') goto yy54;
-                               goto yy1194;
+                               goto yy1211;
                        } else {
-                               if(yych == 'n') goto yy1193;
+                               if(yych == 'n') goto yy1210;
                                goto yy54;
                        }
                }
-yy1191:
-               YYDEBUG(1191, *YYCURSOR);
+yy1208:
+               YYDEBUG(1208, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'N') goto yy1192;
+               if(yych == 'N') goto yy1209;
                if(yych != 'n') goto yy54;
-yy1192:
-               YYDEBUG(1192, *YYCURSOR);
+yy1209:
+               YYDEBUG(1209, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'U') goto yy1069;
-                       if(yych == 'u') goto yy1069;
-                       goto yy941;
+                       if(yych <= 'U') goto yy1086;
+                       if(yych == 'u') goto yy1086;
+                       goto yy958;
                }
-yy1193:
-               YYDEBUG(1193, *YYCURSOR);
+yy1210:
+               YYDEBUG(1210, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'E') goto yy1031;
-                       if(yych == 'e') goto yy1031;
-                       goto yy941;
+                       if(yych <= 'E') goto yy1048;
+                       if(yych == 'e') goto yy1048;
+                       goto yy958;
                }
-yy1194:
-               YYDEBUG(1194, *YYCURSOR);
+yy1211:
+               YYDEBUG(1211, *YYCURSOR);
                yyaccept = 21;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'X') {
-                       if(yych == '-') goto yy914;
-                       goto yy941;
+                       if(yych == '-') goto yy931;
+                       goto yy958;
                } else {
-                       if(yych <= 'Y') goto yy1031;
-                       if(yych == 'y') goto yy1031;
-                       goto yy941;
+                       if(yych <= 'Y') goto yy1048;
+                       if(yych == 'y') goto yy1048;
+                       goto yy958;
                }
-yy1195:
-               YYDEBUG(1195, *YYCURSOR);
+yy1212:
+               YYDEBUG(1212, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') {
                        if(yych <= 0x09) {
-                               if(yych <= 0x08) goto yy733;
-                               goto yy884;
+                               if(yych <= 0x08) goto yy749;
+                               goto yy901;
                        } else {
-                               if(yych <= ',') goto yy733;
-                               if(yych <= '.') goto yy884;
-                               goto yy883;
+                               if(yych <= ',') goto yy749;
+                               if(yych <= '.') goto yy901;
+                               goto yy900;
                        }
                } else {
                        if(yych <= 'U') {
-                               if(yych <= 'T') goto yy733;
+                               if(yych <= 'T') goto yy749;
                                goto yy75;
                        } else {
                                if(yych == 'u') goto yy75;
-                               goto yy733;
+                               goto yy749;
                        }
                }
-yy1196:
-               YYDEBUG(1196, *YYCURSOR);
+yy1213:
+               YYDEBUG(1213, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'P') {
                        if(yych == 'C') goto yy126;
                        if(yych <= 'O') goto yy54;
-                       goto yy741;
+                       goto yy757;
                } else {
                        if(yych <= 'c') {
                                if(yych <= 'b') goto yy54;
                                goto yy126;
                        } else {
-                               if(yych == 'p') goto yy741;
+                               if(yych == 'p') goto yy757;
                                goto yy54;
                        }
                }
-yy1197:
-               YYDEBUG(1197, *YYCURSOR);
+yy1214:
+               YYDEBUG(1214, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '9') {
                        if(yych <= ',') {
-                               if(yych == 0x09) goto yy1199;
-                               goto yy1201;
+                               if(yych == 0x09) goto yy1216;
+                               goto yy1218;
                        } else {
-                               if(yych <= '-') goto yy1198;
-                               if(yych <= '.') goto yy884;
-                               if(yych <= '/') goto yy883;
-                               goto yy888;
+                               if(yych <= '-') goto yy1215;
+                               if(yych <= '.') goto yy901;
+                               if(yych <= '/') goto yy900;
+                               goto yy905;
                        }
                } else {
                        if(yych <= 'q') {
                                if(yych == 'n') goto yy641;
-                               goto yy1201;
+                               goto yy1218;
                        } else {
                                if(yych <= 'r') goto yy642;
                                if(yych <= 's') goto yy635;
                                if(yych <= 't') goto yy639;
-                               goto yy1201;
+                               goto yy1218;
                        }
                }
-yy1198:
-               YYDEBUG(1198, *YYCURSOR);
+yy1215:
+               YYDEBUG(1215, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch(yych) {
-               case '0':       goto yy1202;
-               case '1':       goto yy1203;
+               case '0':       goto yy1219;
+               case '1':       goto yy1220;
                case '2':
                case '3':
                case '4':
@@ -17491,48 +17691,48 @@ yy1198:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy771;
+               case '9':       goto yy788;
                case 'A':
-               case 'a':       goto yy775;
+               case 'a':       goto yy792;
                case 'D':
-               case 'd':       goto yy779;
+               case 'd':       goto yy796;
                case 'F':
-               case 'f':       goto yy773;
+               case 'f':       goto yy790;
                case 'J':
-               case 'j':       goto yy772;
+               case 'j':       goto yy789;
                case 'M':
-               case 'm':       goto yy774;
+               case 'm':       goto yy791;
                case 'N':
-               case 'n':       goto yy778;
+               case 'n':       goto yy795;
                case 'O':
-               case 'o':       goto yy777;
+               case 'o':       goto yy794;
                case 'S':
-               case 's':       goto yy776;
-               default:        goto yy733;
+               case 's':       goto yy793;
+               default:        goto yy749;
                }
-yy1199:
-               YYDEBUG(1199, *YYCURSOR);
+yy1216:
+               YYDEBUG(1216, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych <= '/') goto yy1201;
-               if(yych <= '0') goto yy885;
-               if(yych <= '1') goto yy886;
-               if(yych <= '9') goto yy887;
-               goto yy1201;
-yy1200:
-               YYDEBUG(1200, *YYCURSOR);
+               if(yych <= '/') goto yy1218;
+               if(yych <= '0') goto yy902;
+               if(yych <= '1') goto yy903;
+               if(yych <= '9') goto yy904;
+               goto yy1218;
+yy1217:
+               YYDEBUG(1217, *YYCURSOR);
                ++YYCURSOR;
                if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
                yych = *YYCURSOR;
-yy1201:
-               YYDEBUG(1201, *YYCURSOR);
+yy1218:
+               YYDEBUG(1218, *YYCURSOR);
                YYDEBUG(-1, yych);
                switch(yych) {
                case 0x09:
-               case ' ':       goto yy1200;
+               case ' ':       goto yy1217;
                case '-':
-               case '.':       goto yy732;
+               case '.':       goto yy748;
                case 'A':
-               case 'a':       goto yy729;
+               case 'a':       goto yy745;
                case 'D':
                case 'd':       goto yy637;
                case 'F':
@@ -17560,177 +17760,177 @@ yy1201:
                case 'y':       goto yy65;
                default:        goto yy54;
                }
-yy1202:
-               YYDEBUG(1202, *YYCURSOR);
+yy1219:
+               YYDEBUG(1219, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '.') {
                        if(yych <= ',') goto yy54;
-                       if(yych <= '-') goto yy808;
-                       goto yy756;
+                       if(yych <= '-') goto yy825;
+                       goto yy772;
                } else {
                        if(yych <= '/') goto yy54;
-                       if(yych <= '9') goto yy1204;
+                       if(yych <= '9') goto yy1221;
                        goto yy54;
                }
-yy1203:
-               YYDEBUG(1203, *YYCURSOR);
+yy1220:
+               YYDEBUG(1220, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '.') {
                        if(yych <= ',') goto yy54;
-                       if(yych <= '-') goto yy808;
-                       goto yy756;
+                       if(yych <= '-') goto yy825;
+                       goto yy772;
                } else {
                        if(yych <= '/') goto yy54;
                        if(yych >= '3') goto yy54;
                }
-yy1204:
-               YYDEBUG(1204, *YYCURSOR);
+yy1221:
+               YYDEBUG(1221, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= ',') goto yy54;
-               if(yych <= '-') goto yy1205;
-               if(yych <= '.') goto yy756;
+               if(yych <= '-') goto yy1222;
+               if(yych <= '.') goto yy772;
                goto yy54;
-yy1205:
-               YYDEBUG(1205, *YYCURSOR);
+yy1222:
+               YYDEBUG(1222, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '2') {
                        if(yych <= '/') goto yy54;
-                       if(yych >= '1') goto yy1207;
+                       if(yych >= '1') goto yy1224;
                } else {
-                       if(yych <= '3') goto yy1208;
-                       if(yych <= '9') goto yy812;
+                       if(yych <= '3') goto yy1225;
+                       if(yych <= '9') goto yy829;
                        goto yy54;
                }
-               YYDEBUG(1206, *YYCURSOR);
+               YYDEBUG(1223, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy1209;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy1226;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy1207:
-               YYDEBUG(1207, *YYCURSOR);
+yy1224:
+               YYDEBUG(1224, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy810;
-                       if(yych <= '9') goto yy1209;
-                       if(yych <= 'm') goto yy810;
-                       goto yy814;
+                       if(yych <= '/') goto yy827;
+                       if(yych <= '9') goto yy1226;
+                       if(yych <= 'm') goto yy827;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy1208:
-               YYDEBUG(1208, *YYCURSOR);
+yy1225:
+               YYDEBUG(1225, *YYCURSOR);
                yyaccept = 14;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
                        if(yych <= '1') {
-                               if(yych <= '/') goto yy810;
+                               if(yych <= '/') goto yy827;
                        } else {
-                               if(yych <= '9') goto yy761;
-                               if(yych <= 'm') goto yy810;
-                               goto yy814;
+                               if(yych <= '9') goto yy777;
+                               if(yych <= 'm') goto yy827;
+                               goto yy831;
                        }
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy810;
-                               goto yy815;
+                               if(yych <= 'q') goto yy827;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy810;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy827;
                        }
                }
-yy1209:
-               YYDEBUG(1209, *YYCURSOR);
+yy1226:
+               YYDEBUG(1226, *YYCURSOR);
                yyaccept = 16;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'n') {
-                       if(yych <= '/') goto yy911;
-                       if(yych <= '9') goto yy763;
-                       if(yych <= 'm') goto yy911;
-                       goto yy814;
+                       if(yych <= '/') goto yy928;
+                       if(yych <= '9') goto yy779;
+                       if(yych <= 'm') goto yy928;
+                       goto yy831;
                } else {
                        if(yych <= 'r') {
-                               if(yych <= 'q') goto yy911;
-                               goto yy815;
+                               if(yych <= 'q') goto yy928;
+                               goto yy832;
                        } else {
-                               if(yych <= 's') goto yy813;
-                               if(yych <= 't') goto yy816;
-                               goto yy911;
+                               if(yych <= 's') goto yy830;
+                               if(yych <= 't') goto yy833;
+                               goto yy928;
                        }
                }
-yy1210:
-               YYDEBUG(1210, *YYCURSOR);
+yy1227:
+               YYDEBUG(1227, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '9') {
                        if(yych <= '-') {
-                               if(yych == 0x09) goto yy1199;
-                               if(yych <= ',') goto yy1201;
-                               goto yy1198;
+                               if(yych == 0x09) goto yy1216;
+                               if(yych <= ',') goto yy1218;
+                               goto yy1215;
                        } else {
-                               if(yych <= '.') goto yy1211;
-                               if(yych <= '/') goto yy883;
-                               if(yych <= '5') goto yy1213;
-                               goto yy888;
+                               if(yych <= '.') goto yy1228;
+                               if(yych <= '/') goto yy900;
+                               if(yych <= '5') goto yy1230;
+                               goto yy905;
                        }
                } else {
                        if(yych <= 'q') {
-                               if(yych <= ':') goto yy1212;
+                               if(yych <= ':') goto yy1229;
                                if(yych == 'n') goto yy641;
-                               goto yy1201;
+                               goto yy1218;
                        } else {
                                if(yych <= 'r') goto yy642;
                                if(yych <= 's') goto yy635;
                                if(yych <= 't') goto yy639;
-                               goto yy1201;
+                               goto yy1218;
                        }
                }
-yy1211:
-               YYDEBUG(1211, *YYCURSOR);
+yy1228:
+               YYDEBUG(1228, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '1') {
-                       if(yych <= '/') goto yy733;
-                       if(yych <= '0') goto yy1235;
-                       goto yy1236;
+                       if(yych <= '/') goto yy749;
+                       if(yych <= '0') goto yy1252;
+                       goto yy1253;
                } else {
-                       if(yych <= '5') goto yy1237;
-                       if(yych <= '9') goto yy1238;
-                       goto yy733;
+                       if(yych <= '5') goto yy1254;
+                       if(yych <= '9') goto yy1255;
+                       goto yy749;
                }
-yy1212:
-               YYDEBUG(1212, *YYCURSOR);
+yy1229:
+               YYDEBUG(1229, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1230;
-               if(yych <= '9') goto yy1231;
+               if(yych <= '5') goto yy1247;
+               if(yych <= '9') goto yy1248;
                goto yy54;
-yy1213:
-               YYDEBUG(1213, *YYCURSOR);
+yy1230:
+               YYDEBUG(1230, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '-') goto yy932;
+               if(yych == '-') goto yy949;
                if(yych <= '/') goto yy58;
                if(yych >= ':') goto yy58;
-               YYDEBUG(1214, *YYCURSOR);
+               YYDEBUG(1231, *YYCURSOR);
                yyaccept = 25;
                yych = *(YYMARKER = ++YYCURSOR);
                YYDEBUG(-1, yych);
@@ -17762,27 +17962,27 @@ yy1213:
                case 's':
                case 't':
                case 'w':
-               case 'y':       goto yy938;
-               case '-':       goto yy935;
-               case '.':       goto yy939;
-               case '/':       goto yy936;
-               case '0':       goto yy1216;
-               case '1':       goto yy1217;
-               case '2':       goto yy1218;
-               case '3':       goto yy1219;
+               case 'y':       goto yy955;
+               case '-':       goto yy952;
+               case '.':       goto yy956;
+               case '/':       goto yy953;
+               case '0':       goto yy1233;
+               case '1':       goto yy1234;
+               case '2':       goto yy1235;
+               case '3':       goto yy1236;
                case '4':
-               case '5':       goto yy1220;
-               case '6':       goto yy1221;
+               case '5':       goto yy1237;
+               case '6':       goto yy1238;
                case '7':
                case '8':
                case '9':       goto yy52;
-               case ':':       goto yy954;
-               case 'W':       goto yy957;
-               default:        goto yy1215;
+               case ':':       goto yy971;
+               case 'W':       goto yy974;
+               default:        goto yy1232;
                }
-yy1215:
-               YYDEBUG(1215, *YYCURSOR);
-#line 1098 "ext/date/lib/parse_date.re"
+yy1232:
+               YYDEBUG(1232, *YYCURSOR);
+#line 1123 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("gnunocolon");
                TIMELIB_INIT;
@@ -17804,50 +18004,50 @@ yy1215:
                TIMELIB_DEINIT;
                return TIMELIB_GNU_NOCOLON;
        }
-#line 17808 "ext/date/lib/parse_date.c"
-yy1216:
-               YYDEBUG(1216, *YYCURSOR);
+#line 18008 "ext/date/lib/parse_date.c"
+yy1233:
+               YYDEBUG(1233, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '0') goto yy1228;
-               if(yych <= '9') goto yy1229;
+               if(yych <= '0') goto yy1245;
+               if(yych <= '9') goto yy1246;
                goto yy58;
-yy1217:
-               YYDEBUG(1217, *YYCURSOR);
+yy1234:
+               YYDEBUG(1234, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '2') goto yy1227;
-               if(yych <= '9') goto yy1226;
+               if(yych <= '2') goto yy1244;
+               if(yych <= '9') goto yy1243;
                goto yy58;
-yy1218:
-               YYDEBUG(1218, *YYCURSOR);
+yy1235:
+               YYDEBUG(1235, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy1226;
+               if(yych <= '9') goto yy1243;
                goto yy58;
-yy1219:
-               YYDEBUG(1219, *YYCURSOR);
+yy1236:
+               YYDEBUG(1236, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '5') goto yy1224;
-               if(yych <= '6') goto yy1225;
-               if(yych <= '9') goto yy1222;
+               if(yych <= '5') goto yy1241;
+               if(yych <= '6') goto yy1242;
+               if(yych <= '9') goto yy1239;
                goto yy58;
-yy1220:
-               YYDEBUG(1220, *YYCURSOR);
+yy1237:
+               YYDEBUG(1237, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '9') goto yy1222;
+               if(yych <= '9') goto yy1239;
                goto yy58;
-yy1221:
-               YYDEBUG(1221, *YYCURSOR);
+yy1238:
+               YYDEBUG(1238, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy58;
-               if(yych <= '0') goto yy1222;
+               if(yych <= '0') goto yy1239;
                if(yych <= '9') goto yy52;
                goto yy58;
-yy1222:
-               YYDEBUG(1222, *YYCURSOR);
+yy1239:
+               YYDEBUG(1239, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yybm[0+yych] & 4) {
@@ -17867,7 +18067,7 @@ yy1222:
                                        if(yych == 'H') goto yy58;
                                        if(yych >= 'M') goto yy58;
                                } else {
-                                       if(yych <= 'R') goto yy1223;
+                                       if(yych <= 'R') goto yy1240;
                                        if(yych <= 'T') goto yy58;
                                        if(yych >= 'W') goto yy58;
                                }
@@ -17894,9 +18094,9 @@ yy1222:
                                }
                        }
                }
-yy1223:
-               YYDEBUG(1223, *YYCURSOR);
-#line 1144 "ext/date/lib/parse_date.re"
+yy1240:
+               YYDEBUG(1240, *YYCURSOR);
+#line 1169 "ext/date/lib/parse_date.re"
                {
                int tz_not_found;
                DEBUG_OUTPUT("iso8601nocolon");
@@ -17915,236 +18115,236 @@ yy1223:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_NOCOLON;
        }
-#line 17919 "ext/date/lib/parse_date.c"
-yy1224:
-               YYDEBUG(1224, *YYCURSOR);
+#line 18119 "ext/date/lib/parse_date.c"
+yy1241:
+               YYDEBUG(1241, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'V') {
                        if(yych <= 'D') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy1223;
+                                       if(yych <= 0x1F) goto yy1240;
                                        goto yy58;
                                } else {
-                                       if(yych <= '/') goto yy1223;
-                                       if(yych <= '9') goto yy968;
-                                       if(yych <= 'C') goto yy1223;
+                                       if(yych <= '/') goto yy1240;
+                                       if(yych <= '9') goto yy985;
+                                       if(yych <= 'C') goto yy1240;
                                        goto yy58;
                                }
                        } else {
                                if(yych <= 'H') {
                                        if(yych == 'F') goto yy58;
-                                       if(yych <= 'G') goto yy1223;
+                                       if(yych <= 'G') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'M') {
-                                               if(yych <= 'L') goto yy1223;
+                                               if(yych <= 'L') goto yy1240;
                                                goto yy58;
                                        } else {
-                                               if(yych <= 'R') goto yy1223;
+                                               if(yych <= 'R') goto yy1240;
                                                if(yych <= 'T') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'c') {
-                                       if(yych == 'X') goto yy1223;
+                                       if(yych == 'X') goto yy1240;
                                        if(yych <= 'Y') goto yy58;
-                                       goto yy1223;
+                                       goto yy1240;
                                } else {
                                        if(yych <= 'e') {
                                                if(yych <= 'd') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
-                                               if(yych == 'g') goto yy1223;
+                                               if(yych == 'g') goto yy1240;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych == 'm') goto yy58;
-                                       if(yych <= 'r') goto yy1223;
+                                       if(yych <= 'r') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy1223;
+                                               if(yych <= 'v') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                }
-yy1225:
-               YYDEBUG(1225, *YYCURSOR);
+yy1242:
+               YYDEBUG(1242, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'V') {
                        if(yych <= 'D') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy1223;
+                                       if(yych <= 0x1F) goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= '6') {
-                                               if(yych <= '/') goto yy1223;
-                                               goto yy968;
+                                               if(yych <= '/') goto yy1240;
+                                               goto yy985;
                                        } else {
                                                if(yych <= '9') goto yy52;
-                                               if(yych <= 'C') goto yy1223;
+                                               if(yych <= 'C') goto yy1240;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 'H') {
                                        if(yych == 'F') goto yy58;
-                                       if(yych <= 'G') goto yy1223;
+                                       if(yych <= 'G') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'M') {
-                                               if(yych <= 'L') goto yy1223;
+                                               if(yych <= 'L') goto yy1240;
                                                goto yy58;
                                        } else {
-                                               if(yych <= 'R') goto yy1223;
+                                               if(yych <= 'R') goto yy1240;
                                                if(yych <= 'T') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'c') {
-                                       if(yych == 'X') goto yy1223;
+                                       if(yych == 'X') goto yy1240;
                                        if(yych <= 'Y') goto yy58;
-                                       goto yy1223;
+                                       goto yy1240;
                                } else {
                                        if(yych <= 'e') {
                                                if(yych <= 'd') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
-                                               if(yych == 'g') goto yy1223;
+                                               if(yych == 'g') goto yy1240;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych == 'm') goto yy58;
-                                       if(yych <= 'r') goto yy1223;
+                                       if(yych <= 'r') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy1223;
+                                               if(yych <= 'v') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                }
-yy1226:
-               YYDEBUG(1226, *YYCURSOR);
+yy1243:
+               YYDEBUG(1243, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'V') {
                        if(yych <= 'D') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy1223;
+                                       if(yych <= 0x1F) goto yy1240;
                                        goto yy58;
                                } else {
-                                       if(yych <= '/') goto yy1223;
-                                       if(yych <= '9') goto yy968;
-                                       if(yych <= 'C') goto yy1223;
+                                       if(yych <= '/') goto yy1240;
+                                       if(yych <= '9') goto yy985;
+                                       if(yych <= 'C') goto yy1240;
                                        goto yy58;
                                }
                        } else {
                                if(yych <= 'H') {
                                        if(yych == 'F') goto yy58;
-                                       if(yych <= 'G') goto yy1223;
+                                       if(yych <= 'G') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'M') {
-                                               if(yych <= 'L') goto yy1223;
+                                               if(yych <= 'L') goto yy1240;
                                                goto yy58;
                                        } else {
-                                               if(yych <= 'R') goto yy1223;
+                                               if(yych <= 'R') goto yy1240;
                                                if(yych <= 'T') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                } else {
                        if(yych <= 'h') {
                                if(yych <= 'c') {
-                                       if(yych == 'X') goto yy1223;
+                                       if(yych == 'X') goto yy1240;
                                        if(yych <= 'Y') goto yy58;
-                                       goto yy1223;
+                                       goto yy1240;
                                } else {
                                        if(yych <= 'e') {
                                                if(yych <= 'd') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
-                                               if(yych == 'g') goto yy1223;
+                                               if(yych == 'g') goto yy1240;
                                                goto yy58;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych == 'm') goto yy58;
-                                       if(yych <= 'r') goto yy1223;
+                                       if(yych <= 'r') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy1223;
+                                               if(yych <= 'v') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                }
-yy1227:
-               YYDEBUG(1227, *YYCURSOR);
+yy1244:
+               YYDEBUG(1244, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
                        if(yych <= '9') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy1223;
+                                       if(yych <= 0x1F) goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= '0') {
-                                               if(yych <= '/') goto yy1223;
-                                               goto yy992;
+                                               if(yych <= '/') goto yy1240;
+                                               goto yy1009;
                                        } else {
-                                               if(yych <= '2') goto yy993;
-                                               if(yych <= '3') goto yy994;
-                                               goto yy968;
+                                               if(yych <= '2') goto yy1010;
+                                               if(yych <= '3') goto yy1011;
+                                               goto yy985;
                                        }
                                }
                        } else {
                                if(yych <= 'G') {
                                        if(yych <= 'D') {
-                                               if(yych <= 'C') goto yy1223;
+                                               if(yych <= 'C') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'F') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                } else {
                                        if(yych <= 'L') {
                                                if(yych <= 'H') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
                                                if(yych <= 'M') goto yy58;
-                                               if(yych <= 'R') goto yy1223;
+                                               if(yych <= 'R') goto yy1240;
                                                goto yy58;
                                        }
                                }
@@ -18153,74 +18353,74 @@ yy1227:
                        if(yych <= 'g') {
                                if(yych <= 'Y') {
                                        if(yych == 'W') goto yy58;
-                                       if(yych <= 'X') goto yy1223;
+                                       if(yych <= 'X') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'd') {
-                                               if(yych <= 'c') goto yy1223;
+                                               if(yych <= 'c') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'f') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych <= 'l') {
                                                if(yych <= 'h') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
                                                if(yych <= 'm') goto yy58;
-                                               if(yych <= 'r') goto yy1223;
+                                               if(yych <= 'r') goto yy1240;
                                                goto yy58;
                                        }
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy1223;
+                                               if(yych <= 'v') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                }
-yy1228:
-               YYDEBUG(1228, *YYCURSOR);
+yy1245:
+               YYDEBUG(1245, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
                        if(yych <= '9') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy1223;
+                                       if(yych <= 0x1F) goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= '0') {
-                                               if(yych <= '/') goto yy1223;
-                                               goto yy1024;
+                                               if(yych <= '/') goto yy1240;
+                                               goto yy1041;
                                        } else {
-                                               if(yych <= '2') goto yy993;
-                                               if(yych <= '3') goto yy994;
-                                               goto yy968;
+                                               if(yych <= '2') goto yy1010;
+                                               if(yych <= '3') goto yy1011;
+                                               goto yy985;
                                        }
                                }
                        } else {
                                if(yych <= 'G') {
                                        if(yych <= 'D') {
-                                               if(yych <= 'C') goto yy1223;
+                                               if(yych <= 'C') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'F') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                } else {
                                        if(yych <= 'L') {
                                                if(yych <= 'H') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
                                                if(yych <= 'M') goto yy58;
-                                               if(yych <= 'R') goto yy1223;
+                                               if(yych <= 'R') goto yy1240;
                                                goto yy58;
                                        }
                                }
@@ -18229,74 +18429,74 @@ yy1228:
                        if(yych <= 'g') {
                                if(yych <= 'Y') {
                                        if(yych == 'W') goto yy58;
-                                       if(yych <= 'X') goto yy1223;
+                                       if(yych <= 'X') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'd') {
-                                               if(yych <= 'c') goto yy1223;
+                                               if(yych <= 'c') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'f') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych <= 'l') {
                                                if(yych <= 'h') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
                                                if(yych <= 'm') goto yy58;
-                                               if(yych <= 'r') goto yy1223;
+                                               if(yych <= 'r') goto yy1240;
                                                goto yy58;
                                        }
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy1223;
+                                               if(yych <= 'v') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                }
-yy1229:
-               YYDEBUG(1229, *YYCURSOR);
+yy1246:
+               YYDEBUG(1246, *YYCURSOR);
                yyaccept = 26;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
                        if(yych <= '9') {
                                if(yych <= ' ') {
                                        if(yych == 0x09) goto yy58;
-                                       if(yych <= 0x1F) goto yy1223;
+                                       if(yych <= 0x1F) goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= '0') {
-                                               if(yych <= '/') goto yy1223;
-                                               goto yy992;
+                                               if(yych <= '/') goto yy1240;
+                                               goto yy1009;
                                        } else {
-                                               if(yych <= '2') goto yy993;
-                                               if(yych <= '3') goto yy994;
-                                               goto yy968;
+                                               if(yych <= '2') goto yy1010;
+                                               if(yych <= '3') goto yy1011;
+                                               goto yy985;
                                        }
                                }
                        } else {
                                if(yych <= 'G') {
                                        if(yych <= 'D') {
-                                               if(yych <= 'C') goto yy1223;
+                                               if(yych <= 'C') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'F') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                } else {
                                        if(yych <= 'L') {
                                                if(yych <= 'H') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
                                                if(yych <= 'M') goto yy58;
-                                               if(yych <= 'R') goto yy1223;
+                                               if(yych <= 'R') goto yy1240;
                                                goto yy58;
                                        }
                                }
@@ -18305,182 +18505,182 @@ yy1229:
                        if(yych <= 'g') {
                                if(yych <= 'Y') {
                                        if(yych == 'W') goto yy58;
-                                       if(yych <= 'X') goto yy1223;
+                                       if(yych <= 'X') goto yy1240;
                                        goto yy58;
                                } else {
                                        if(yych <= 'd') {
-                                               if(yych <= 'c') goto yy1223;
+                                               if(yych <= 'c') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'f') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        } else {
                                if(yych <= 't') {
                                        if(yych <= 'l') {
                                                if(yych <= 'h') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        } else {
                                                if(yych <= 'm') goto yy58;
-                                               if(yych <= 'r') goto yy1223;
+                                               if(yych <= 'r') goto yy1240;
                                                goto yy58;
                                        }
                                } else {
                                        if(yych <= 'w') {
-                                               if(yych <= 'v') goto yy1223;
+                                               if(yych <= 'v') goto yy1240;
                                                goto yy58;
                                        } else {
                                                if(yych == 'y') goto yy58;
-                                               goto yy1223;
+                                               goto yy1240;
                                        }
                                }
                        }
                }
-yy1230:
-               YYDEBUG(1230, *YYCURSOR);
+yy1247:
+               YYDEBUG(1247, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
-                       if(yych == '.') goto yy1232;
+                       if(yych == '.') goto yy1249;
                        goto yy662;
                } else {
-                       if(yych <= '9') goto yy1231;
-                       if(yych <= ':') goto yy1232;
+                       if(yych <= '9') goto yy1248;
+                       if(yych <= ':') goto yy1249;
                        goto yy662;
                }
-yy1231:
-               YYDEBUG(1231, *YYCURSOR);
+yy1248:
+               YYDEBUG(1248, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == '.') goto yy1232;
+               if(yych == '.') goto yy1249;
                if(yych != ':') goto yy662;
-yy1232:
-               YYDEBUG(1232, *YYCURSOR);
+yy1249:
+               YYDEBUG(1249, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1233;
-               if(yych <= '6') goto yy1234;
+               if(yych <= '5') goto yy1250;
+               if(yych <= '6') goto yy1251;
                if(yych <= '9') goto yy667;
                goto yy54;
-yy1233:
-               YYDEBUG(1233, *YYCURSOR);
+yy1250:
+               YYDEBUG(1250, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych == '.') goto yy668;
                if(yych <= '/') goto yy662;
                if(yych <= '9') goto yy667;
                goto yy662;
-yy1234:
-               YYDEBUG(1234, *YYCURSOR);
+yy1251:
+               YYDEBUG(1251, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych == '.') goto yy668;
                if(yych == '0') goto yy667;
                goto yy662;
-yy1235:
-               YYDEBUG(1235, *YYCURSOR);
+yy1252:
+               YYDEBUG(1252, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       goto yy1239;
+                       if(yych <= '-') goto yy772;
+                       goto yy1256;
                } else {
                        if(yych <= '/') goto yy662;
-                       if(yych <= '9') goto yy1238;
-                       if(yych <= ':') goto yy1232;
+                       if(yych <= '9') goto yy1255;
+                       if(yych <= ':') goto yy1249;
                        goto yy662;
                }
-yy1236:
-               YYDEBUG(1236, *YYCURSOR);
+yy1253:
+               YYDEBUG(1253, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       if(yych <= '.') goto yy1239;
+                       if(yych <= '-') goto yy772;
+                       if(yych <= '.') goto yy1256;
                        goto yy662;
                } else {
-                       if(yych <= '2') goto yy1238;
-                       if(yych <= '9') goto yy1231;
-                       if(yych <= ':') goto yy1232;
+                       if(yych <= '2') goto yy1255;
+                       if(yych <= '9') goto yy1248;
+                       if(yych <= ':') goto yy1249;
                        goto yy662;
                }
-yy1237:
-               YYDEBUG(1237, *YYCURSOR);
+yy1254:
+               YYDEBUG(1254, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
-                       goto yy1239;
+                       if(yych <= '-') goto yy772;
+                       goto yy1256;
                } else {
                        if(yych <= '/') goto yy662;
-                       if(yych <= '9') goto yy1231;
-                       if(yych <= ':') goto yy1232;
+                       if(yych <= '9') goto yy1248;
+                       if(yych <= ':') goto yy1249;
                        goto yy662;
                }
-yy1238:
-               YYDEBUG(1238, *YYCURSOR);
+yy1255:
+               YYDEBUG(1255, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
                        if(yych <= ',') goto yy662;
-                       if(yych <= '-') goto yy756;
+                       if(yych <= '-') goto yy772;
                } else {
-                       if(yych == ':') goto yy1232;
+                       if(yych == ':') goto yy1249;
                        goto yy662;
                }
-yy1239:
-               YYDEBUG(1239, *YYCURSOR);
+yy1256:
+               YYDEBUG(1256, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '5') goto yy1240;
-               if(yych <= '6') goto yy1241;
-               if(yych <= '9') goto yy760;
+               if(yych <= '5') goto yy1257;
+               if(yych <= '6') goto yy1258;
+               if(yych <= '9') goto yy776;
                goto yy54;
-yy1240:
-               YYDEBUG(1240, *YYCURSOR);
+yy1257:
+               YYDEBUG(1257, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych == '.') goto yy668;
                if(yych <= '/') goto yy662;
-               if(yych <= '9') goto yy1242;
+               if(yych <= '9') goto yy1259;
                goto yy662;
-yy1241:
-               YYDEBUG(1241, *YYCURSOR);
+yy1258:
+               YYDEBUG(1258, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
                        if(yych == '.') goto yy668;
                        goto yy662;
                } else {
-                       if(yych <= '0') goto yy1242;
-                       if(yych <= '9') goto yy761;
+                       if(yych <= '0') goto yy1259;
+                       if(yych <= '9') goto yy777;
                        goto yy662;
                }
-yy1242:
-               YYDEBUG(1242, *YYCURSOR);
+yy1259:
+               YYDEBUG(1259, *YYCURSOR);
                yyaccept = 12;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych == '.') goto yy668;
                if(yych <= '/') goto yy662;
-               if(yych <= '9') goto yy763;
+               if(yych <= '9') goto yy779;
                goto yy662;
-yy1243:
-               YYDEBUG(1243, *YYCURSOR);
+yy1260:
+               YYDEBUG(1260, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '9') {
                        if(yych <= '-') {
                                if(yych == 0x09) goto yy631;
                                if(yych <= ',') goto yy633;
-                               goto yy1198;
+                               goto yy1215;
                        } else {
                                if(yych <= '.') goto yy645;
                                if(yych <= '/') goto yy643;
-                               if(yych <= '5') goto yy1213;
-                               goto yy888;
+                               if(yych <= '5') goto yy1230;
+                               goto yy905;
                        }
                } else {
                        if(yych <= 'q') {
@@ -18494,34 +18694,34 @@ yy1243:
                                goto yy633;
                        }
                }
-yy1244:
-               YYDEBUG(1244, *YYCURSOR);
+yy1261:
+               YYDEBUG(1261, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '9') {
                        if(yych <= '-') {
-                               if(yych == 0x09) goto yy1199;
-                               if(yych <= ',') goto yy1201;
-                               goto yy1198;
+                               if(yych == 0x09) goto yy1216;
+                               if(yych <= ',') goto yy1218;
+                               goto yy1215;
                        } else {
-                               if(yych <= '.') goto yy1211;
+                               if(yych <= '.') goto yy1228;
                                if(yych <= '/') goto yy643;
-                               if(yych <= '5') goto yy1213;
-                               goto yy888;
+                               if(yych <= '5') goto yy1230;
+                               goto yy905;
                        }
                } else {
                        if(yych <= 'q') {
-                               if(yych <= ':') goto yy1212;
+                               if(yych <= ':') goto yy1229;
                                if(yych == 'n') goto yy641;
-                               goto yy1201;
+                               goto yy1218;
                        } else {
                                if(yych <= 'r') goto yy642;
                                if(yych <= 's') goto yy635;
                                if(yych <= 't') goto yy639;
-                               goto yy1201;
+                               goto yy1218;
                        }
                }
-yy1245:
-               YYDEBUG(1245, *YYCURSOR);
+yy1262:
+               YYDEBUG(1262, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
                        if(yych <= ')') {
@@ -18537,13 +18737,13 @@ yy1245:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 's') goto yy1246;
+                               if(yych <= 's') goto yy1263;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1246:
-               YYDEBUG(1246, *YYCURSOR);
+yy1263:
+               YYDEBUG(1263, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -18559,13 +18759,13 @@ yy1246:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 't') goto yy1247;
+                               if(yych <= 't') goto yy1264;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1247:
-               YYDEBUG(1247, *YYCURSOR);
+yy1264:
+               YYDEBUG(1264, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '(') {
@@ -18586,34 +18786,34 @@ yy1247:
                                goto yy3;
                        }
                }
-yy1248:
-               YYDEBUG(1248, *YYCURSOR);
+yy1265:
+               YYDEBUG(1265, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'D') goto yy1249;
+               if(yych == 'D') goto yy1266;
                if(yych != 'd') goto yy171;
-yy1249:
-               YYDEBUG(1249, *YYCURSOR);
+yy1266:
+               YYDEBUG(1266, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1250;
+               if(yych == 'A') goto yy1267;
                if(yych != 'a') goto yy54;
-yy1250:
-               YYDEBUG(1250, *YYCURSOR);
+yy1267:
+               YYDEBUG(1267, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1251;
+               if(yych == 'Y') goto yy1268;
                if(yych != 'y') goto yy54;
-yy1251:
-               YYDEBUG(1251, *YYCURSOR);
+yy1268:
+               YYDEBUG(1268, *YYCURSOR);
                yyaccept = 27;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
-                       if(yych == ' ') goto yy1253;
+                       if(yych == ' ') goto yy1270;
                } else {
                        if(yych <= 'S') goto yy187;
                        if(yych == 's') goto yy187;
                }
-yy1252:
-               YYDEBUG(1252, *YYCURSOR);
-#line 1038 "ext/date/lib/parse_date.re"
+yy1269:
+               YYDEBUG(1269, *YYCURSOR);
+#line 1042 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("firstdayof | lastdayof");
                TIMELIB_INIT;
@@ -18629,23 +18829,23 @@ yy1252:
                TIMELIB_DEINIT;
                return TIMELIB_LF_DAY_OF_MONTH;
        }
-#line 18633 "ext/date/lib/parse_date.c"
-yy1253:
-               YYDEBUG(1253, *YYCURSOR);
+#line 18833 "ext/date/lib/parse_date.c"
+yy1270:
+               YYDEBUG(1270, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy1254;
+               if(yych == 'O') goto yy1271;
                if(yych != 'o') goto yy54;
-yy1254:
-               YYDEBUG(1254, *YYCURSOR);
+yy1271:
+               YYDEBUG(1271, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'F') goto yy1255;
+               if(yych == 'F') goto yy1272;
                if(yych != 'f') goto yy54;
-yy1255:
-               YYDEBUG(1255, *YYCURSOR);
+yy1272:
+               YYDEBUG(1272, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy1252;
-yy1256:
-               YYDEBUG(1256, *YYCURSOR);
+               goto yy1269;
+yy1273:
+               YYDEBUG(1273, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
@@ -18656,7 +18856,7 @@ yy1256:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'R') goto yy139;
-                               goto yy1246;
+                               goto yy1263;
                        }
                } else {
                        if(yych <= '`') {
@@ -18664,13 +18864,13 @@ yy1256:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 's') goto yy1257;
+                               if(yych == 's') goto yy1274;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1257:
-               YYDEBUG(1257, *YYCURSOR);
+yy1274:
+               YYDEBUG(1274, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -18681,7 +18881,7 @@ yy1257:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1247;
+                               goto yy1264;
                        }
                } else {
                        if(yych <= '`') {
@@ -18689,13 +18889,13 @@ yy1257:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1258;
+                               if(yych == 't') goto yy1275;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1258:
-               YYDEBUG(1258, *YYCURSOR);
+yy1275:
+               YYDEBUG(1275, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
@@ -18703,7 +18903,7 @@ yy1258:
                                if(yych == 0x09) goto yy170;
                                goto yy3;
                        } else {
-                               if(yych <= ' ') goto yy1248;
+                               if(yych <= ' ') goto yy1265;
                                if(yych == ')') goto yy137;
                                goto yy3;
                        }
@@ -18720,8 +18920,8 @@ yy1258:
                                goto yy3;
                        }
                }
-yy1259:
-               YYDEBUG(1259, *YYCURSOR);
+yy1276:
+               YYDEBUG(1276, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'B') {
                        if(yych <= ')') {
@@ -18730,7 +18930,7 @@ yy1259:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'A') goto yy139;
-                               goto yy1280;
+                               goto yy1297;
                        }
                } else {
                        if(yych <= 'a') {
@@ -18738,37 +18938,37 @@ yy1259:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'b') goto yy1280;
+                               if(yych <= 'b') goto yy1297;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1260:
-               YYDEBUG(1260, *YYCURSOR);
+yy1277:
+               YYDEBUG(1277, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= '@') {
                                if(yych == ')') goto yy137;
                                goto yy3;
                        } else {
-                               if(yych == 'F') goto yy1270;
+                               if(yych == 'F') goto yy1287;
                                if(yych <= 'Q') goto yy139;
-                               goto yy1269;
+                               goto yy1286;
                        }
                } else {
                        if(yych <= 'f') {
                                if(yych <= 'Z') goto yy139;
                                if(yych <= '`') goto yy3;
                                if(yych <= 'e') goto yy139;
-                               goto yy1270;
+                               goto yy1287;
                        } else {
-                               if(yych == 'r') goto yy1269;
+                               if(yych == 'r') goto yy1286;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1261:
-               YYDEBUG(1261, *YYCURSOR);
+yy1278:
+               YYDEBUG(1278, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
                        if(yych <= ')') {
@@ -18777,7 +18977,7 @@ yy1261:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'T') goto yy139;
-                               goto yy1266;
+                               goto yy1283;
                        }
                } else {
                        if(yych <= 't') {
@@ -18785,13 +18985,13 @@ yy1261:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'u') goto yy1266;
+                               if(yych <= 'u') goto yy1283;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1262:
-               YYDEBUG(1262, *YYCURSOR);
+yy1279:
+               YYDEBUG(1279, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'I') {
                        if(yych <= ')') {
@@ -18807,13 +19007,13 @@ yy1262:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'i') goto yy1263;
+                               if(yych <= 'i') goto yy1280;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1263:
-               YYDEBUG(1263, *YYCURSOR);
+yy1280:
+               YYDEBUG(1280, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'D') {
                        if(yych <= ')') {
@@ -18829,13 +19029,13 @@ yy1263:
                                if(yych <= '`') goto yy279;
                                goto yy140;
                        } else {
-                               if(yych <= 'd') goto yy1264;
+                               if(yych <= 'd') goto yy1281;
                                if(yych <= 'z') goto yy140;
                                goto yy279;
                        }
                }
-yy1264:
-               YYDEBUG(1264, *YYCURSOR);
+yy1281:
+               YYDEBUG(1281, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
@@ -18845,13 +19045,13 @@ yy1264:
                                if(yych <= 'Z') goto yy141;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1265;
+                               if(yych <= 'a') goto yy1282;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1265:
-               YYDEBUG(1265, *YYCURSOR);
+yy1282:
+               YYDEBUG(1282, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
                        if(yych <= ')') {
@@ -18873,8 +19073,8 @@ yy1265:
                                goto yy3;
                        }
                }
-yy1266:
-               YYDEBUG(1266, *YYCURSOR);
+yy1283:
+               YYDEBUG(1283, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= ')') {
@@ -18890,13 +19090,13 @@ yy1266:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 'r') goto yy1267;
+                               if(yych <= 'r') goto yy1284;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1267:
-               YYDEBUG(1267, *YYCURSOR);
+yy1284:
+               YYDEBUG(1284, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -18912,13 +19112,13 @@ yy1267:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 't') goto yy1268;
+                               if(yych <= 't') goto yy1285;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1268:
-               YYDEBUG(1268, *YYCURSOR);
+yy1285:
+               YYDEBUG(1285, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= ')') {
@@ -18940,8 +19140,8 @@ yy1268:
                                goto yy3;
                        }
                }
-yy1269:
-               YYDEBUG(1269, *YYCURSOR);
+yy1286:
+               YYDEBUG(1286, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
                        if(yych <= ')') {
@@ -18950,7 +19150,7 @@ yy1269:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'R') goto yy140;
-                               goto yy1272;
+                               goto yy1289;
                        }
                } else {
                        if(yych <= 'r') {
@@ -18958,13 +19158,13 @@ yy1269:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 's') goto yy1272;
+                               if(yych <= 's') goto yy1289;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1270:
-               YYDEBUG(1270, *YYCURSOR);
+yy1287:
+               YYDEBUG(1287, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -18980,13 +19180,13 @@ yy1270:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 't') goto yy1271;
+                               if(yych <= 't') goto yy1288;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1271:
-               YYDEBUG(1271, *YYCURSOR);
+yy1288:
+               YYDEBUG(1288, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= ')') {
@@ -19008,8 +19208,8 @@ yy1271:
                                goto yy3;
                        }
                }
-yy1272:
-               YYDEBUG(1272, *YYCURSOR);
+yy1289:
+               YYDEBUG(1289, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -19025,13 +19225,13 @@ yy1272:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 't') goto yy1273;
+                               if(yych <= 't') goto yy1290;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1273:
-               YYDEBUG(1273, *YYCURSOR);
+yy1290:
+               YYDEBUG(1290, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '(') {
@@ -19052,44 +19252,44 @@ yy1273:
                                goto yy3;
                        }
                }
-yy1274:
-               YYDEBUG(1274, *YYCURSOR);
+yy1291:
+               YYDEBUG(1291, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'D') goto yy1275;
+               if(yych == 'D') goto yy1292;
                if(yych != 'd') goto yy171;
-yy1275:
-               YYDEBUG(1275, *YYCURSOR);
+yy1292:
+               YYDEBUG(1292, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1276;
+               if(yych == 'A') goto yy1293;
                if(yych != 'a') goto yy54;
-yy1276:
-               YYDEBUG(1276, *YYCURSOR);
+yy1293:
+               YYDEBUG(1293, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1277;
+               if(yych == 'Y') goto yy1294;
                if(yych != 'y') goto yy54;
-yy1277:
-               YYDEBUG(1277, *YYCURSOR);
+yy1294:
+               YYDEBUG(1294, *YYCURSOR);
                yyaccept = 27;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
-                       if(yych != ' ') goto yy1252;
+                       if(yych != ' ') goto yy1269;
                } else {
                        if(yych <= 'S') goto yy187;
                        if(yych == 's') goto yy187;
-                       goto yy1252;
+                       goto yy1269;
                }
-               YYDEBUG(1278, *YYCURSOR);
+               YYDEBUG(1295, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'O') goto yy1279;
+               if(yych == 'O') goto yy1296;
                if(yych != 'o') goto yy54;
-yy1279:
-               YYDEBUG(1279, *YYCURSOR);
+yy1296:
+               YYDEBUG(1296, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'F') goto yy1255;
-               if(yych == 'f') goto yy1255;
+               if(yych == 'F') goto yy1272;
+               if(yych == 'f') goto yy1272;
                goto yy54;
-yy1280:
-               YYDEBUG(1280, *YYCURSOR);
+yy1297:
+               YYDEBUG(1297, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
@@ -19124,14 +19324,14 @@ yy1280:
                                        if(yych <= '`') goto yy306;
                                        goto yy140;
                                } else {
-                                       if(yych <= 'r') goto yy1281;
+                                       if(yych <= 'r') goto yy1298;
                                        if(yych <= 'z') goto yy140;
                                        goto yy306;
                                }
                        }
                }
-yy1281:
-               YYDEBUG(1281, *YYCURSOR);
+yy1298:
+               YYDEBUG(1298, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
                        if(yych <= ')') {
@@ -19147,13 +19347,13 @@ yy1281:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'u') goto yy1282;
+                               if(yych <= 'u') goto yy1299;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1282:
-               YYDEBUG(1282, *YYCURSOR);
+yy1299:
+               YYDEBUG(1299, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
@@ -19163,30 +19363,30 @@ yy1282:
                                if(yych <= 'Z') goto yy142;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1283;
+                               if(yych <= 'a') goto yy1300;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1283:
-               YYDEBUG(1283, *YYCURSOR);
+yy1300:
+               YYDEBUG(1300, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Q') {
                        if(yych == ')') goto yy137;
                        goto yy3;
                } else {
-                       if(yych <= 'R') goto yy1284;
+                       if(yych <= 'R') goto yy1301;
                        if(yych != 'r') goto yy3;
                }
-yy1284:
-               YYDEBUG(1284, *YYCURSOR);
+yy1301:
+               YYDEBUG(1301, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'Y') goto yy318;
                if(yych == 'y') goto yy318;
                goto yy54;
-yy1285:
-               YYDEBUG(1285, *YYCURSOR);
+yy1302:
+               YYDEBUG(1302, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'B') {
@@ -19197,7 +19397,7 @@ yy1285:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'A') goto yy139;
-                               goto yy1280;
+                               goto yy1297;
                        }
                } else {
                        if(yych <= '`') {
@@ -19205,13 +19405,13 @@ yy1285:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'b') goto yy1300;
+                               if(yych == 'b') goto yy1317;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1286:
-               YYDEBUG(1286, *YYCURSOR);
+yy1303:
+               YYDEBUG(1303, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -19224,9 +19424,9 @@ yy1286:
                                        if(yych <= '@') goto yy3;
                                        goto yy139;
                                } else {
-                                       if(yych <= 'F') goto yy1270;
+                                       if(yych <= 'F') goto yy1287;
                                        if(yych <= 'Q') goto yy139;
-                                       goto yy1269;
+                                       goto yy1286;
                                }
                        }
                } else {
@@ -19241,17 +19441,17 @@ yy1286:
                                }
                        } else {
                                if(yych <= 'q') {
-                                       if(yych <= 'f') goto yy1296;
+                                       if(yych <= 'f') goto yy1313;
                                        goto yy144;
                                } else {
-                                       if(yych <= 'r') goto yy1295;
+                                       if(yych <= 'r') goto yy1312;
                                        if(yych <= 'z') goto yy144;
                                        goto yy3;
                                }
                        }
                }
-yy1287:
-               YYDEBUG(1287, *YYCURSOR);
+yy1304:
+               YYDEBUG(1304, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'U') {
@@ -19262,7 +19462,7 @@ yy1287:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'T') goto yy139;
-                               goto yy1266;
+                               goto yy1283;
                        }
                } else {
                        if(yych <= '`') {
@@ -19270,13 +19470,13 @@ yy1287:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'u') goto yy1292;
+                               if(yych == 'u') goto yy1309;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1288:
-               YYDEBUG(1288, *YYCURSOR);
+yy1305:
+               YYDEBUG(1305, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'I') {
@@ -19287,7 +19487,7 @@ yy1288:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'H') goto yy139;
-                               goto yy1263;
+                               goto yy1280;
                        }
                } else {
                        if(yych <= '`') {
@@ -19295,13 +19495,13 @@ yy1288:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'i') goto yy1289;
+                               if(yych == 'i') goto yy1306;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1289:
-               YYDEBUG(1289, *YYCURSOR);
+yy1306:
+               YYDEBUG(1306, *YYCURSOR);
                yyaccept = 5;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -19312,7 +19512,7 @@ yy1289:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy279;
                                if(yych <= 'C') goto yy140;
-                               goto yy1264;
+                               goto yy1281;
                        }
                } else {
                        if(yych <= '`') {
@@ -19320,13 +19520,13 @@ yy1289:
                                if(yych == '_') goto yy145;
                                goto yy279;
                        } else {
-                               if(yych == 'd') goto yy1290;
+                               if(yych == 'd') goto yy1307;
                                if(yych <= 'z') goto yy149;
                                goto yy279;
                        }
                }
-yy1290:
-               YYDEBUG(1290, *YYCURSOR);
+yy1307:
+               YYDEBUG(1307, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'A') {
@@ -19336,7 +19536,7 @@ yy1290:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
-                               goto yy1265;
+                               goto yy1282;
                        }
                } else {
                        if(yych <= '_') {
@@ -19345,13 +19545,13 @@ yy1290:
                                goto yy145;
                        } else {
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1291;
+                               if(yych <= 'a') goto yy1308;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1291:
-               YYDEBUG(1291, *YYCURSOR);
+yy1308:
+               YYDEBUG(1308, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Y') {
@@ -19375,8 +19575,8 @@ yy1291:
                                goto yy3;
                        }
                }
-yy1292:
-               YYDEBUG(1292, *YYCURSOR);
+yy1309:
+               YYDEBUG(1309, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -19387,7 +19587,7 @@ yy1292:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'Q') goto yy140;
-                               goto yy1267;
+                               goto yy1284;
                        }
                } else {
                        if(yych <= '`') {
@@ -19395,13 +19595,13 @@ yy1292:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'r') goto yy1293;
+                               if(yych == 'r') goto yy1310;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1293:
-               YYDEBUG(1293, *YYCURSOR);
+yy1310:
+               YYDEBUG(1310, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -19412,7 +19612,7 @@ yy1293:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy141;
-                               goto yy1268;
+                               goto yy1285;
                        }
                } else {
                        if(yych <= '`') {
@@ -19420,13 +19620,13 @@ yy1293:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1294;
+                               if(yych == 't') goto yy1311;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1294:
-               YYDEBUG(1294, *YYCURSOR);
+yy1311:
+               YYDEBUG(1311, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -19450,8 +19650,8 @@ yy1294:
                                goto yy3;
                        }
                }
-yy1295:
-               YYDEBUG(1295, *YYCURSOR);
+yy1312:
+               YYDEBUG(1312, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
@@ -19462,7 +19662,7 @@ yy1295:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'R') goto yy140;
-                               goto yy1272;
+                               goto yy1289;
                        }
                } else {
                        if(yych <= '`') {
@@ -19470,13 +19670,13 @@ yy1295:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 's') goto yy1298;
+                               if(yych == 's') goto yy1315;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1296:
-               YYDEBUG(1296, *YYCURSOR);
+yy1313:
+               YYDEBUG(1313, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -19487,7 +19687,7 @@ yy1296:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1271;
+                               goto yy1288;
                        }
                } else {
                        if(yych <= '`') {
@@ -19495,13 +19695,13 @@ yy1296:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1297;
+                               if(yych == 't') goto yy1314;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1297:
-               YYDEBUG(1297, *YYCURSOR);
+yy1314:
+               YYDEBUG(1314, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -19525,8 +19725,8 @@ yy1297:
                                goto yy3;
                        }
                }
-yy1298:
-               YYDEBUG(1298, *YYCURSOR);
+yy1315:
+               YYDEBUG(1315, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -19537,7 +19737,7 @@ yy1298:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy141;
-                               goto yy1273;
+                               goto yy1290;
                        }
                } else {
                        if(yych <= '`') {
@@ -19545,13 +19745,13 @@ yy1298:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1299;
+                               if(yych == 't') goto yy1316;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1299:
-               YYDEBUG(1299, *YYCURSOR);
+yy1316:
+               YYDEBUG(1316, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
@@ -19559,7 +19759,7 @@ yy1299:
                                if(yych == 0x09) goto yy170;
                                goto yy3;
                        } else {
-                               if(yych <= ' ') goto yy1274;
+                               if(yych <= ' ') goto yy1291;
                                if(yych == ')') goto yy137;
                                goto yy3;
                        }
@@ -19576,8 +19776,8 @@ yy1299:
                                goto yy3;
                        }
                }
-yy1300:
-               YYDEBUG(1300, *YYCURSOR);
+yy1317:
+               YYDEBUG(1317, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '9') {
@@ -19605,7 +19805,7 @@ yy1300:
                                        if(yych <= '@') goto yy306;
                                        goto yy140;
                                } else {
-                                       if(yych <= 'R') goto yy1281;
+                                       if(yych <= 'R') goto yy1298;
                                        if(yych <= 'Z') goto yy140;
                                        goto yy306;
                                }
@@ -19615,14 +19815,14 @@ yy1300:
                                        if(yych <= '`') goto yy306;
                                        goto yy149;
                                } else {
-                                       if(yych <= 'r') goto yy1301;
+                                       if(yych <= 'r') goto yy1318;
                                        if(yych <= 'z') goto yy149;
                                        goto yy306;
                                }
                        }
                }
-yy1301:
-               YYDEBUG(1301, *YYCURSOR);
+yy1318:
+               YYDEBUG(1318, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'U') {
@@ -19633,7 +19833,7 @@ yy1301:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'T') goto yy141;
-                               goto yy1282;
+                               goto yy1299;
                        }
                } else {
                        if(yych <= '`') {
@@ -19641,13 +19841,13 @@ yy1301:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'u') goto yy1302;
+                               if(yych == 'u') goto yy1319;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1302:
-               YYDEBUG(1302, *YYCURSOR);
+yy1319:
+               YYDEBUG(1319, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'A') {
@@ -19657,7 +19857,7 @@ yy1302:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
-                               goto yy1283;
+                               goto yy1300;
                        }
                } else {
                        if(yych <= '_') {
@@ -19666,13 +19866,13 @@ yy1302:
                                goto yy145;
                        } else {
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1303;
+                               if(yych <= 'a') goto yy1320;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1303:
-               YYDEBUG(1303, *YYCURSOR);
+yy1320:
+               YYDEBUG(1320, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -19682,40 +19882,40 @@ yy1303:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= 'Q') goto yy3;
-                               goto yy1284;
+                               goto yy1301;
                        }
                } else {
                        if(yych <= '`') {
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'r') goto yy1304;
+                               if(yych == 'r') goto yy1321;
                                if(yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
-yy1304:
-               YYDEBUG(1304, *YYCURSOR);
+yy1321:
+               YYDEBUG(1321, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'Y') goto yy318;
                if(yych == 'y') goto yy491;
                goto yy153;
-yy1305:
-               YYDEBUG(1305, *YYCURSOR);
+yy1322:
+               YYDEBUG(1322, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-yy1306:
-               YYDEBUG(1306, *YYCURSOR);
+yy1323:
+               YYDEBUG(1323, *YYCURSOR);
                ++YYCURSOR;
                if(YYLIMIT == YYCURSOR) YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(1307, *YYCURSOR);
-               if(yych <= '/') goto yy1308;
-               if(yych <= '9') goto yy1306;
-yy1308:
-               YYDEBUG(1308, *YYCURSOR);
-#line 1013 "ext/date/lib/parse_date.re"
+               YYDEBUG(1324, *YYCURSOR);
+               if(yych <= '/') goto yy1325;
+               if(yych <= '9') goto yy1323;
+yy1325:
+               YYDEBUG(1325, *YYCURSOR);
+#line 1017 "ext/date/lib/parse_date.re"
                {
                timelib_ull i;
 
@@ -19739,9 +19939,9 @@ yy1308:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 19743 "ext/date/lib/parse_date.c"
-yy1309:
-               YYDEBUG(1309, *YYCURSOR);
+#line 19943 "ext/date/lib/parse_date.c"
+yy1326:
+               YYDEBUG(1326, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
                        if(yych <= ')') {
@@ -19750,7 +19950,7 @@ yy1309:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy139;
-                               goto yy1350;
+                               goto yy1367;
                        }
                } else {
                        if(yych <= 'm') {
@@ -19758,61 +19958,61 @@ yy1309:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'n') goto yy1350;
+                               if(yych <= 'n') goto yy1367;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1310:
-               YYDEBUG(1310, *YYCURSOR);
+yy1327:
+               YYDEBUG(1327, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'U') {
                        if(yych <= '@') {
                                if(yych == ')') goto yy137;
                                goto yy3;
                        } else {
-                               if(yych == 'I') goto yy1343;
+                               if(yych == 'I') goto yy1360;
                                if(yych <= 'T') goto yy139;
-                               goto yy1342;
+                               goto yy1359;
                        }
                } else {
                        if(yych <= 'i') {
                                if(yych <= 'Z') goto yy139;
                                if(yych <= '`') goto yy3;
                                if(yych <= 'h') goto yy139;
-                               goto yy1343;
+                               goto yy1360;
                        } else {
-                               if(yych == 'u') goto yy1342;
+                               if(yych == 'u') goto yy1359;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1311:
-               YYDEBUG(1311, *YYCURSOR);
+yy1328:
+               YYDEBUG(1328, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'M') {
                        if(yych <= '@') {
                                if(yych == ')') goto yy137;
                                goto yy3;
                        } else {
-                               if(yych == 'D') goto yy1331;
+                               if(yych == 'D') goto yy1348;
                                if(yych <= 'L') goto yy139;
-                               goto yy1332;
+                               goto yy1349;
                        }
                } else {
                        if(yych <= 'd') {
                                if(yych <= 'Z') goto yy139;
                                if(yych <= '`') goto yy3;
                                if(yych <= 'c') goto yy139;
-                               goto yy1331;
+                               goto yy1348;
                        } else {
-                               if(yych == 'm') goto yy1332;
+                               if(yych == 'm') goto yy1349;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1312:
-               YYDEBUG(1312, *YYCURSOR);
+yy1329:
+               YYDEBUG(1329, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'E') {
                        if(yych <= ')') {
@@ -19821,7 +20021,7 @@ yy1312:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy139;
-                               goto yy1327;
+                               goto yy1344;
                        }
                } else {
                        if(yych <= 'd') {
@@ -19829,13 +20029,13 @@ yy1312:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'e') goto yy1327;
+                               if(yych <= 'e') goto yy1344;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1313:
-               YYDEBUG(1313, *YYCURSOR);
+yy1330:
+               YYDEBUG(1330, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'E') {
                        if(yych <= ')') {
@@ -19844,7 +20044,7 @@ yy1313:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy139;
-                               goto yy1323;
+                               goto yy1340;
                        }
                } else {
                        if(yych <= 'd') {
@@ -19852,78 +20052,78 @@ yy1313:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'e') goto yy1323;
+                               if(yych <= 'e') goto yy1340;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1314:
-               YYDEBUG(1314, *YYCURSOR);
+yy1331:
+               YYDEBUG(1331, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') {
-                       if(yych == '.') goto yy1212;
+                       if(yych == '.') goto yy1229;
                        goto yy54;
                } else {
-                       if(yych <= '9') goto yy1317;
-                       if(yych <= ':') goto yy1212;
+                       if(yych <= '9') goto yy1334;
+                       if(yych <= ':') goto yy1229;
                        goto yy54;
                }
-yy1315:
-               YYDEBUG(1315, *YYCURSOR);
+yy1332:
+               YYDEBUG(1332, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') {
-                       if(yych == '.') goto yy1212;
+                       if(yych == '.') goto yy1229;
                        goto yy54;
                } else {
-                       if(yych <= '4') goto yy1317;
-                       if(yych == ':') goto yy1212;
+                       if(yych <= '4') goto yy1334;
+                       if(yych == ':') goto yy1229;
                        goto yy54;
                }
-yy1316:
-               YYDEBUG(1316, *YYCURSOR);
+yy1333:
+               YYDEBUG(1333, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == '.') goto yy1212;
-               if(yych == ':') goto yy1212;
+               if(yych == '.') goto yy1229;
+               if(yych == ':') goto yy1229;
                goto yy54;
-yy1317:
-               YYDEBUG(1317, *YYCURSOR);
+yy1334:
+               YYDEBUG(1334, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') {
-                       if(yych == '.') goto yy1212;
+                       if(yych == '.') goto yy1229;
                        goto yy54;
                } else {
-                       if(yych <= '5') goto yy1318;
-                       if(yych == ':') goto yy1212;
+                       if(yych <= '5') goto yy1335;
+                       if(yych == ':') goto yy1229;
                        goto yy54;
                }
-yy1318:
-               YYDEBUG(1318, *YYCURSOR);
+yy1335:
+               YYDEBUG(1335, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
                if(yych >= ':') goto yy54;
-               YYDEBUG(1319, *YYCURSOR);
+               YYDEBUG(1336, *YYCURSOR);
                yyaccept = 25;
                yych = *(YYMARKER = ++YYCURSOR);
-               if(yych <= '/') goto yy1215;
-               if(yych <= '5') goto yy1320;
-               if(yych <= '6') goto yy1321;
-               goto yy1215;
-yy1320:
-               YYDEBUG(1320, *YYCURSOR);
+               if(yych <= '/') goto yy1232;
+               if(yych <= '5') goto yy1337;
+               if(yych <= '6') goto yy1338;
+               goto yy1232;
+yy1337:
+               YYDEBUG(1337, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= '/') goto yy54;
-               if(yych <= '9') goto yy1322;
+               if(yych <= '9') goto yy1339;
                goto yy54;
-yy1321:
-               YYDEBUG(1321, *YYCURSOR);
+yy1338:
+               YYDEBUG(1338, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych != '0') goto yy54;
-yy1322:
-               YYDEBUG(1322, *YYCURSOR);
+yy1339:
+               YYDEBUG(1339, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy1223;
-yy1323:
-               YYDEBUG(1323, *YYCURSOR);
+               goto yy1240;
+yy1340:
+               YYDEBUG(1340, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'L') {
                        if(yych <= ')') {
@@ -19939,13 +20139,13 @@ yy1323:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 'l') goto yy1324;
+                               if(yych <= 'l') goto yy1341;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1324:
-               YYDEBUG(1324, *YYCURSOR);
+yy1341:
+               YYDEBUG(1341, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'F') {
                        if(yych <= ')') {
@@ -19961,13 +20161,13 @@ yy1324:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'f') goto yy1325;
+                               if(yych <= 'f') goto yy1342;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1325:
-               YYDEBUG(1325, *YYCURSOR);
+yy1342:
+               YYDEBUG(1342, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -19983,13 +20183,13 @@ yy1325:
                                if(yych <= '`') goto yy3;
                                goto yy142;
                        } else {
-                               if(yych <= 't') goto yy1326;
+                               if(yych <= 't') goto yy1343;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1326:
-               YYDEBUG(1326, *YYCURSOR);
+yy1343:
+               YYDEBUG(1343, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'G') {
@@ -20000,8 +20200,8 @@ yy1326:
                        if(yych == 'h') goto yy169;
                        goto yy3;
                }
-yy1327:
-               YYDEBUG(1327, *YYCURSOR);
+yy1344:
+               YYDEBUG(1344, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
                        if(yych <= ')') {
@@ -20017,13 +20217,13 @@ yy1327:
                                if(yych <= '`') goto yy279;
                                goto yy140;
                        } else {
-                               if(yych <= 's') goto yy1328;
+                               if(yych <= 's') goto yy1345;
                                if(yych <= 'z') goto yy140;
                                goto yy279;
                        }
                }
-yy1328:
-               YYDEBUG(1328, *YYCURSOR);
+yy1345:
+               YYDEBUG(1345, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'D') {
                        if(yych <= ')') {
@@ -20039,13 +20239,13 @@ yy1328:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'd') goto yy1329;
+                               if(yych <= 'd') goto yy1346;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1329:
-               YYDEBUG(1329, *YYCURSOR);
+yy1346:
+               YYDEBUG(1346, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
@@ -20055,13 +20255,13 @@ yy1329:
                                if(yych <= 'Z') goto yy142;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1330;
+                               if(yych <= 'a') goto yy1347;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1330:
-               YYDEBUG(1330, *YYCURSOR);
+yy1347:
+               YYDEBUG(1347, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'X') {
                        if(yych == ')') goto yy137;
@@ -20071,25 +20271,25 @@ yy1330:
                        if(yych == 'y') goto yy285;
                        goto yy3;
                }
-yy1331:
-               YYDEBUG(1331, *YYCURSOR);
+yy1348:
+               YYDEBUG(1348, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
                        if(yych <= '@') goto yy3;
-                       goto yy1339;
+                       goto yy1356;
                } else {
                        if(yych <= '`') {
                                if(yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1339;
+                               if(yych <= 'a') goto yy1356;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1332:
-               YYDEBUG(1332, *YYCURSOR);
+yy1349:
+               YYDEBUG(1349, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'O') {
                        if(yych <= ')') {
@@ -20105,13 +20305,13 @@ yy1332:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 'o') goto yy1333;
+                               if(yych <= 'o') goto yy1350;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1333:
-               YYDEBUG(1333, *YYCURSOR);
+yy1350:
+               YYDEBUG(1350, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= ')') {
@@ -20127,13 +20327,13 @@ yy1333:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'r') goto yy1334;
+                               if(yych <= 'r') goto yy1351;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1334:
-               YYDEBUG(1334, *YYCURSOR);
+yy1351:
+               YYDEBUG(1351, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= ')') {
@@ -20149,33 +20349,33 @@ yy1334:
                                if(yych <= '`') goto yy3;
                                goto yy142;
                        } else {
-                               if(yych <= 'r') goto yy1335;
+                               if(yych <= 'r') goto yy1352;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1335:
-               YYDEBUG(1335, *YYCURSOR);
+yy1352:
+               YYDEBUG(1352, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
                        if(yych == ')') goto yy137;
                        goto yy3;
                } else {
-                       if(yych <= 'O') goto yy1336;
+                       if(yych <= 'O') goto yy1353;
                        if(yych != 'o') goto yy3;
                }
-yy1336:
-               YYDEBUG(1336, *YYCURSOR);
+yy1353:
+               YYDEBUG(1353, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'W') goto yy1337;
+               if(yych == 'W') goto yy1354;
                if(yych != 'w') goto yy54;
-yy1337:
-               YYDEBUG(1337, *YYCURSOR);
+yy1354:
+               YYDEBUG(1354, *YYCURSOR);
                ++YYCURSOR;
-yy1338:
-               YYDEBUG(1338, *YYCURSOR);
-#line 1001 "ext/date/lib/parse_date.re"
+yy1355:
+               YYDEBUG(1355, *YYCURSOR);
+#line 1005 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("tomorrow");
                TIMELIB_INIT;
@@ -20186,9 +20386,9 @@ yy1338:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 20190 "ext/date/lib/parse_date.c"
-yy1339:
-               YYDEBUG(1339, *YYCURSOR);
+#line 20390 "ext/date/lib/parse_date.c"
+yy1356:
+               YYDEBUG(1356, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
                        if(yych <= ')') {
@@ -20204,24 +20404,24 @@ yy1339:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'y') goto yy1340;
+                               if(yych <= 'y') goto yy1357;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1340:
-               YYDEBUG(1340, *YYCURSOR);
+yy1357:
+               YYDEBUG(1357, *YYCURSOR);
                ++YYCURSOR;
                if((yych = *YYCURSOR) <= '@') {
                        if(yych == ')') goto yy137;
                } else {
                        if(yych <= 'Z') goto yy142;
-                       if(yych <= '`') goto yy1341;
+                       if(yych <= '`') goto yy1358;
                        if(yych <= 'z') goto yy142;
                }
-yy1341:
-               YYDEBUG(1341, *YYCURSOR);
-#line 991 "ext/date/lib/parse_date.re"
+yy1358:
+               YYDEBUG(1358, *YYCURSOR);
+#line 995 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("midnight | today");
                TIMELIB_INIT;
@@ -20230,9 +20430,9 @@ yy1341:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 20234 "ext/date/lib/parse_date.c"
-yy1342:
-               YYDEBUG(1342, *YYCURSOR);
+#line 20434 "ext/date/lib/parse_date.c"
+yy1359:
+               YYDEBUG(1359, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= ')') {
@@ -20241,7 +20441,7 @@ yy1342:
                        } else {
                                if(yych <= '@') goto yy279;
                                if(yych <= 'Q') goto yy140;
-                               goto yy1346;
+                               goto yy1363;
                        }
                } else {
                        if(yych <= 'q') {
@@ -20249,13 +20449,13 @@ yy1342:
                                if(yych <= '`') goto yy279;
                                goto yy140;
                        } else {
-                               if(yych <= 'r') goto yy1346;
+                               if(yych <= 'r') goto yy1363;
                                if(yych <= 'z') goto yy140;
                                goto yy279;
                        }
                }
-yy1343:
-               YYDEBUG(1343, *YYCURSOR);
+yy1360:
+               YYDEBUG(1360, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
                        if(yych <= '@') {
@@ -20263,7 +20463,7 @@ yy1343:
                                goto yy3;
                        } else {
                                if(yych <= 'Q') goto yy140;
-                               if(yych >= 'S') goto yy1345;
+                               if(yych >= 'S') goto yy1362;
                        }
                } else {
                        if(yych <= 'q') {
@@ -20271,14 +20471,14 @@ yy1343:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 'r') goto yy1344;
-                               if(yych <= 's') goto yy1345;
+                               if(yych <= 'r') goto yy1361;
+                               if(yych <= 's') goto yy1362;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1344:
-               YYDEBUG(1344, *YYCURSOR);
+yy1361:
+               YYDEBUG(1361, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'D') {
                        if(yych <= ')') {
@@ -20300,8 +20500,8 @@ yy1344:
                                goto yy3;
                        }
                }
-yy1345:
-               YYDEBUG(1345, *YYCURSOR);
+yy1362:
+               YYDEBUG(1362, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '(') {
@@ -20323,8 +20523,8 @@ yy1345:
                                goto yy3;
                        }
                }
-yy1346:
-               YYDEBUG(1346, *YYCURSOR);
+yy1363:
+               YYDEBUG(1363, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
                        if(yych <= ')') {
@@ -20340,13 +20540,13 @@ yy1346:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 's') goto yy1347;
+                               if(yych <= 's') goto yy1364;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1347:
-               YYDEBUG(1347, *YYCURSOR);
+yy1364:
+               YYDEBUG(1364, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'D') {
                        if(yych <= ')') {
@@ -20362,30 +20562,30 @@ yy1347:
                                if(yych <= '`') goto yy3;
                                goto yy142;
                        } else {
-                               if(yych <= 'd') goto yy1348;
+                               if(yych <= 'd') goto yy1365;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1348:
-               YYDEBUG(1348, *YYCURSOR);
+yy1365:
+               YYDEBUG(1365, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '@') {
                        if(yych == ')') goto yy137;
                        goto yy3;
                } else {
-                       if(yych <= 'A') goto yy1349;
+                       if(yych <= 'A') goto yy1366;
                        if(yych != 'a') goto yy3;
                }
-yy1349:
-               YYDEBUG(1349, *YYCURSOR);
+yy1366:
+               YYDEBUG(1366, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'Y') goto yy285;
                if(yych == 'y') goto yy285;
                goto yy54;
-yy1350:
-               YYDEBUG(1350, *YYCURSOR);
+yy1367:
+               YYDEBUG(1367, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -20401,13 +20601,13 @@ yy1350:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 't') goto yy1351;
+                               if(yych <= 't') goto yy1368;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1351:
-               YYDEBUG(1351, *YYCURSOR);
+yy1368:
+               YYDEBUG(1368, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= ')') {
@@ -20429,8 +20629,8 @@ yy1351:
                                goto yy3;
                        }
                }
-yy1352:
-               YYDEBUG(1352, *YYCURSOR);
+yy1369:
+               YYDEBUG(1369, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
@@ -20441,7 +20641,7 @@ yy1352:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy139;
-                               goto yy1350;
+                               goto yy1367;
                        }
                } else {
                        if(yych <= '`') {
@@ -20449,13 +20649,13 @@ yy1352:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'n') goto yy1382;
+                               if(yych == 'n') goto yy1399;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1353:
-               YYDEBUG(1353, *YYCURSOR);
+yy1370:
+               YYDEBUG(1370, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'U') {
@@ -20468,9 +20668,9 @@ yy1353:
                                        if(yych <= '@') goto yy3;
                                        goto yy139;
                                } else {
-                                       if(yych <= 'I') goto yy1343;
+                                       if(yych <= 'I') goto yy1360;
                                        if(yych <= 'T') goto yy139;
-                                       goto yy1342;
+                                       goto yy1359;
                                }
                        }
                } else {
@@ -20485,17 +20685,17 @@ yy1353:
                                }
                        } else {
                                if(yych <= 't') {
-                                       if(yych <= 'i') goto yy1375;
+                                       if(yych <= 'i') goto yy1392;
                                        goto yy144;
                                } else {
-                                       if(yych <= 'u') goto yy1374;
+                                       if(yych <= 'u') goto yy1391;
                                        if(yych <= 'z') goto yy144;
                                        goto yy3;
                                }
                        }
                }
-yy1354:
-               YYDEBUG(1354, *YYCURSOR);
+yy1371:
+               YYDEBUG(1371, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'M') {
@@ -20508,9 +20708,9 @@ yy1354:
                                        if(yych <= '@') goto yy3;
                                        goto yy139;
                                } else {
-                                       if(yych <= 'D') goto yy1331;
+                                       if(yych <= 'D') goto yy1348;
                                        if(yych <= 'L') goto yy139;
-                                       goto yy1332;
+                                       goto yy1349;
                                }
                        }
                } else {
@@ -20525,17 +20725,17 @@ yy1354:
                                }
                        } else {
                                if(yych <= 'l') {
-                                       if(yych <= 'd') goto yy1365;
+                                       if(yych <= 'd') goto yy1382;
                                        goto yy144;
                                } else {
-                                       if(yych <= 'm') goto yy1366;
+                                       if(yych <= 'm') goto yy1383;
                                        if(yych <= 'z') goto yy144;
                                        goto yy3;
                                }
                        }
                }
-yy1355:
-               YYDEBUG(1355, *YYCURSOR);
+yy1372:
+               YYDEBUG(1372, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'E') {
@@ -20546,7 +20746,7 @@ yy1355:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy139;
-                               goto yy1327;
+                               goto yy1344;
                        }
                } else {
                        if(yych <= '`') {
@@ -20554,13 +20754,13 @@ yy1355:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'e') goto yy1361;
+                               if(yych == 'e') goto yy1378;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1356:
-               YYDEBUG(1356, *YYCURSOR);
+yy1373:
+               YYDEBUG(1373, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'E') {
@@ -20571,7 +20771,7 @@ yy1356:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy139;
-                               goto yy1323;
+                               goto yy1340;
                        }
                } else {
                        if(yych <= '`') {
@@ -20579,13 +20779,13 @@ yy1356:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'e') goto yy1357;
+                               if(yych == 'e') goto yy1374;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1357:
-               YYDEBUG(1357, *YYCURSOR);
+yy1374:
+               YYDEBUG(1374, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'L') {
@@ -20596,7 +20796,7 @@ yy1357:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'K') goto yy140;
-                               goto yy1324;
+                               goto yy1341;
                        }
                } else {
                        if(yych <= '`') {
@@ -20604,13 +20804,13 @@ yy1357:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'l') goto yy1358;
+                               if(yych == 'l') goto yy1375;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1358:
-               YYDEBUG(1358, *YYCURSOR);
+yy1375:
+               YYDEBUG(1375, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'F') {
@@ -20621,7 +20821,7 @@ yy1358:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'E') goto yy141;
-                               goto yy1325;
+                               goto yy1342;
                        }
                } else {
                        if(yych <= '`') {
@@ -20629,13 +20829,13 @@ yy1358:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'f') goto yy1359;
+                               if(yych == 'f') goto yy1376;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1359:
-               YYDEBUG(1359, *YYCURSOR);
+yy1376:
+               YYDEBUG(1376, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -20646,7 +20846,7 @@ yy1359:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy142;
-                               goto yy1326;
+                               goto yy1343;
                        }
                } else {
                        if(yych <= '`') {
@@ -20654,13 +20854,13 @@ yy1359:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1360;
+                               if(yych == 't') goto yy1377;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1360:
-               YYDEBUG(1360, *YYCURSOR);
+yy1377:
+               YYDEBUG(1377, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -20682,8 +20882,8 @@ yy1360:
                                goto yy3;
                        }
                }
-yy1361:
-               YYDEBUG(1361, *YYCURSOR);
+yy1378:
+               YYDEBUG(1378, *YYCURSOR);
                yyaccept = 5;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
@@ -20694,7 +20894,7 @@ yy1361:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy279;
                                if(yych <= 'R') goto yy140;
-                               goto yy1328;
+                               goto yy1345;
                        }
                } else {
                        if(yych <= '`') {
@@ -20702,13 +20902,13 @@ yy1361:
                                if(yych == '_') goto yy145;
                                goto yy279;
                        } else {
-                               if(yych == 's') goto yy1362;
+                               if(yych == 's') goto yy1379;
                                if(yych <= 'z') goto yy149;
                                goto yy279;
                        }
                }
-yy1362:
-               YYDEBUG(1362, *YYCURSOR);
+yy1379:
+               YYDEBUG(1379, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -20719,7 +20919,7 @@ yy1362:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'C') goto yy141;
-                               goto yy1329;
+                               goto yy1346;
                        }
                } else {
                        if(yych <= '`') {
@@ -20727,13 +20927,13 @@ yy1362:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'd') goto yy1363;
+                               if(yych == 'd') goto yy1380;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1363:
-               YYDEBUG(1363, *YYCURSOR);
+yy1380:
+               YYDEBUG(1380, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'A') {
@@ -20743,7 +20943,7 @@ yy1363:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
-                               goto yy1330;
+                               goto yy1347;
                        }
                } else {
                        if(yych <= '_') {
@@ -20752,13 +20952,13 @@ yy1363:
                                goto yy145;
                        } else {
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1364;
+                               if(yych <= 'a') goto yy1381;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1364:
-               YYDEBUG(1364, *YYCURSOR);
+yy1381:
+               YYDEBUG(1381, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Y') {
@@ -20780,8 +20980,8 @@ yy1364:
                                goto yy3;
                        }
                }
-yy1365:
-               YYDEBUG(1365, *YYCURSOR);
+yy1382:
+               YYDEBUG(1382, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'A') {
@@ -20791,7 +20991,7 @@ yy1365:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
-                               goto yy1339;
+                               goto yy1356;
                        }
                } else {
                        if(yych <= '_') {
@@ -20800,13 +21000,13 @@ yy1365:
                                goto yy145;
                        } else {
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1372;
+                               if(yych <= 'a') goto yy1389;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1366:
-               YYDEBUG(1366, *YYCURSOR);
+yy1383:
+               YYDEBUG(1383, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'O') {
@@ -20817,7 +21017,7 @@ yy1366:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'N') goto yy140;
-                               goto yy1333;
+                               goto yy1350;
                        }
                } else {
                        if(yych <= '`') {
@@ -20825,13 +21025,13 @@ yy1366:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'o') goto yy1367;
+                               if(yych == 'o') goto yy1384;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1367:
-               YYDEBUG(1367, *YYCURSOR);
+yy1384:
+               YYDEBUG(1384, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -20842,7 +21042,7 @@ yy1367:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'Q') goto yy141;
-                               goto yy1334;
+                               goto yy1351;
                        }
                } else {
                        if(yych <= '`') {
@@ -20850,13 +21050,13 @@ yy1367:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'r') goto yy1368;
+                               if(yych == 'r') goto yy1385;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1368:
-               YYDEBUG(1368, *YYCURSOR);
+yy1385:
+               YYDEBUG(1385, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -20867,7 +21067,7 @@ yy1368:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'Q') goto yy142;
-                               goto yy1335;
+                               goto yy1352;
                        }
                } else {
                        if(yych <= '`') {
@@ -20875,13 +21075,13 @@ yy1368:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'r') goto yy1369;
+                               if(yych == 'r') goto yy1386;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1369:
-               YYDEBUG(1369, *YYCURSOR);
+yy1386:
+               YYDEBUG(1386, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'O') {
@@ -20891,37 +21091,37 @@ yy1369:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= 'N') goto yy3;
-                               goto yy1336;
+                               goto yy1353;
                        }
                } else {
                        if(yych <= '`') {
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'o') goto yy1370;
+                               if(yych == 'o') goto yy1387;
                                if(yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
-yy1370:
-               YYDEBUG(1370, *YYCURSOR);
+yy1387:
+               YYDEBUG(1387, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'W') goto yy1337;
+               if(yych == 'W') goto yy1354;
                if(yych != 'w') goto yy153;
-               YYDEBUG(1371, *YYCURSOR);
+               YYDEBUG(1388, *YYCURSOR);
                yyaccept = 28;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '^') {
                        if(yych == '/') goto yy145;
-                       goto yy1338;
+                       goto yy1355;
                } else {
                        if(yych <= '_') goto yy145;
-                       if(yych <= '`') goto yy1338;
+                       if(yych <= '`') goto yy1355;
                        if(yych <= 'z') goto yy152;
-                       goto yy1338;
+                       goto yy1355;
                }
-yy1372:
-               YYDEBUG(1372, *YYCURSOR);
+yy1389:
+               YYDEBUG(1389, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Y') {
@@ -20932,7 +21132,7 @@ yy1372:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'X') goto yy141;
-                               goto yy1340;
+                               goto yy1357;
                        }
                } else {
                        if(yych <= '`') {
@@ -20940,36 +21140,36 @@ yy1372:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'y') goto yy1373;
+                               if(yych == 'y') goto yy1390;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1373:
-               YYDEBUG(1373, *YYCURSOR);
+yy1390:
+               YYDEBUG(1390, *YYCURSOR);
                yyaccept = 29;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '@') {
                        if(yych <= ')') {
-                               if(yych <= '(') goto yy1341;
+                               if(yych <= '(') goto yy1358;
                                goto yy137;
                        } else {
                                if(yych == '/') goto yy145;
-                               goto yy1341;
+                               goto yy1358;
                        }
                } else {
                        if(yych <= '_') {
                                if(yych <= 'Z') goto yy142;
-                               if(yych <= '^') goto yy1341;
+                               if(yych <= '^') goto yy1358;
                                goto yy145;
                        } else {
-                               if(yych <= '`') goto yy1341;
+                               if(yych <= '`') goto yy1358;
                                if(yych <= 'z') goto yy151;
-                               goto yy1341;
+                               goto yy1358;
                        }
                }
-yy1374:
-               YYDEBUG(1374, *YYCURSOR);
+yy1391:
+               YYDEBUG(1391, *YYCURSOR);
                yyaccept = 5;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -20980,7 +21180,7 @@ yy1374:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy279;
                                if(yych <= 'Q') goto yy140;
-                               goto yy1346;
+                               goto yy1363;
                        }
                } else {
                        if(yych <= '`') {
@@ -20988,13 +21188,13 @@ yy1374:
                                if(yych == '_') goto yy145;
                                goto yy279;
                        } else {
-                               if(yych == 'r') goto yy1378;
+                               if(yych == 'r') goto yy1395;
                                if(yych <= 'z') goto yy149;
                                goto yy279;
                        }
                }
-yy1375:
-               YYDEBUG(1375, *YYCURSOR);
+yy1392:
+               YYDEBUG(1392, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
@@ -21005,8 +21205,8 @@ yy1375:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'Q') goto yy140;
-                               if(yych <= 'R') goto yy1344;
-                               goto yy1345;
+                               if(yych <= 'R') goto yy1361;
+                               goto yy1362;
                        }
                } else {
                        if(yych <= '`') {
@@ -21017,13 +21217,13 @@ yy1375:
                                if(yych <= 'r') {
                                        if(yych <= 'q') goto yy149;
                                } else {
-                                       if(yych <= 's') goto yy1377;
+                                       if(yych <= 's') goto yy1394;
                                        if(yych <= 'z') goto yy149;
                                        goto yy3;
                                }
                        }
                }
-               YYDEBUG(1376, *YYCURSOR);
+               YYDEBUG(1393, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -21047,8 +21247,8 @@ yy1375:
                                goto yy3;
                        }
                }
-yy1377:
-               YYDEBUG(1377, *YYCURSOR);
+yy1394:
+               YYDEBUG(1394, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
@@ -21073,8 +21273,8 @@ yy1377:
                                goto yy3;
                        }
                }
-yy1378:
-               YYDEBUG(1378, *YYCURSOR);
+yy1395:
+               YYDEBUG(1395, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
@@ -21085,7 +21285,7 @@ yy1378:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'R') goto yy141;
-                               goto yy1347;
+                               goto yy1364;
                        }
                } else {
                        if(yych <= '`') {
@@ -21093,13 +21293,13 @@ yy1378:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 's') goto yy1379;
+                               if(yych == 's') goto yy1396;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1379:
-               YYDEBUG(1379, *YYCURSOR);
+yy1396:
+               YYDEBUG(1396, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -21110,7 +21310,7 @@ yy1379:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'C') goto yy142;
-                               goto yy1348;
+                               goto yy1365;
                        }
                } else {
                        if(yych <= '`') {
@@ -21118,13 +21318,13 @@ yy1379:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'd') goto yy1380;
+                               if(yych == 'd') goto yy1397;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1380:
-               YYDEBUG(1380, *YYCURSOR);
+yy1397:
+               YYDEBUG(1397, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'A') {
@@ -21134,26 +21334,26 @@ yy1380:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
-                               goto yy1349;
+                               goto yy1366;
                        }
                } else {
                        if(yych <= '`') {
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1381;
+                               if(yych <= 'a') goto yy1398;
                                if(yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
-yy1381:
-               YYDEBUG(1381, *YYCURSOR);
+yy1398:
+               YYDEBUG(1398, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'Y') goto yy285;
                if(yych == 'y') goto yy298;
                goto yy153;
-yy1382:
-               YYDEBUG(1382, *YYCURSOR);
+yy1399:
+               YYDEBUG(1399, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -21164,7 +21364,7 @@ yy1382:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1351;
+                               goto yy1368;
                        }
                } else {
                        if(yych <= '`') {
@@ -21172,13 +21372,13 @@ yy1382:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1383;
+                               if(yych == 't') goto yy1400;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1383:
-               YYDEBUG(1383, *YYCURSOR);
+yy1400:
+               YYDEBUG(1400, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -21202,32 +21402,32 @@ yy1383:
                                goto yy3;
                        }
                }
-yy1384:
-               YYDEBUG(1384, *YYCURSOR);
+yy1401:
+               YYDEBUG(1401, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
                        if(yych <= '@') {
                                if(yych == ')') goto yy137;
                                goto yy3;
                        } else {
-                               if(yych == 'R') goto yy1396;
+                               if(yych == 'R') goto yy1413;
                                if(yych <= 'X') goto yy139;
-                               goto yy1397;
+                               goto yy1414;
                        }
                } else {
                        if(yych <= 'r') {
                                if(yych <= 'Z') goto yy139;
                                if(yych <= '`') goto yy3;
                                if(yych <= 'q') goto yy139;
-                               goto yy1396;
+                               goto yy1413;
                        } else {
-                               if(yych == 'y') goto yy1397;
+                               if(yych == 'y') goto yy1414;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1385:
-               YYDEBUG(1385, *YYCURSOR);
+yy1402:
+               YYDEBUG(1402, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'D') {
                        if(yych <= ')') {
@@ -21236,7 +21436,7 @@ yy1385:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'C') goto yy139;
-                               goto yy1390;
+                               goto yy1407;
                        }
                } else {
                        if(yych <= 'c') {
@@ -21244,13 +21444,13 @@ yy1385:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'd') goto yy1390;
+                               if(yych <= 'd') goto yy1407;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1386:
-               YYDEBUG(1386, *YYCURSOR);
+yy1403:
+               YYDEBUG(1403, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
                        if(yych <= ')') {
@@ -21266,13 +21466,13 @@ yy1386:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'n') goto yy1387;
+                               if(yych <= 'n') goto yy1404;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1387:
-               YYDEBUG(1387, *YYCURSOR);
+yy1404:
+               YYDEBUG(1404, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'D') {
                        if(yych <= ')') {
@@ -21288,13 +21488,13 @@ yy1387:
                                if(yych <= '`') goto yy279;
                                goto yy140;
                        } else {
-                               if(yych <= 'd') goto yy1388;
+                               if(yych <= 'd') goto yy1405;
                                if(yych <= 'z') goto yy140;
                                goto yy279;
                        }
                }
-yy1388:
-               YYDEBUG(1388, *YYCURSOR);
+yy1405:
+               YYDEBUG(1405, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'A') {
                        if(yych == ')') goto yy137;
@@ -21304,13 +21504,13 @@ yy1388:
                                if(yych <= 'Z') goto yy141;
                                goto yy3;
                        } else {
-                               if(yych <= 'a') goto yy1389;
+                               if(yych <= 'a') goto yy1406;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1389:
-               YYDEBUG(1389, *YYCURSOR);
+yy1406:
+               YYDEBUG(1406, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'Y') {
                        if(yych <= ')') {
@@ -21332,8 +21532,8 @@ yy1389:
                                goto yy3;
                        }
                }
-yy1390:
-               YYDEBUG(1390, *YYCURSOR);
+yy1407:
+               YYDEBUG(1407, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
                        if(yych <= ')') {
@@ -21349,13 +21549,13 @@ yy1390:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 'n') goto yy1391;
+                               if(yych <= 'n') goto yy1408;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1391:
-               YYDEBUG(1391, *YYCURSOR);
+yy1408:
+               YYDEBUG(1408, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'I') {
                        if(yych <= ')') {
@@ -21371,13 +21571,13 @@ yy1391:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'i') goto yy1392;
+                               if(yych <= 'i') goto yy1409;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1392:
-               YYDEBUG(1392, *YYCURSOR);
+yy1409:
+               YYDEBUG(1409, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'G') {
                        if(yych <= ')') {
@@ -21393,33 +21593,33 @@ yy1392:
                                if(yych <= '`') goto yy3;
                                goto yy142;
                        } else {
-                               if(yych <= 'g') goto yy1393;
+                               if(yych <= 'g') goto yy1410;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1393:
-               YYDEBUG(1393, *YYCURSOR);
+yy1410:
+               YYDEBUG(1410, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'G') {
                        if(yych == ')') goto yy137;
                        goto yy3;
                } else {
-                       if(yych <= 'H') goto yy1394;
+                       if(yych <= 'H') goto yy1411;
                        if(yych != 'h') goto yy3;
                }
-yy1394:
-               YYDEBUG(1394, *YYCURSOR);
+yy1411:
+               YYDEBUG(1411, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy1395;
+               if(yych == 'T') goto yy1412;
                if(yych != 't') goto yy54;
-yy1395:
-               YYDEBUG(1395, *YYCURSOR);
+yy1412:
+               YYDEBUG(1412, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy1341;
-yy1396:
-               YYDEBUG(1396, *YYCURSOR);
+               goto yy1358;
+yy1413:
+               YYDEBUG(1413, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
@@ -21447,7 +21647,7 @@ yy1396:
                                        if(yych <= '9') goto yy308;
                                        goto yy306;
                                } else {
-                                       if(yych == 'C') goto yy1398;
+                                       if(yych == 'C') goto yy1415;
                                        goto yy140;
                                }
                        } else {
@@ -21455,14 +21655,14 @@ yy1396:
                                        if(yych <= '`') goto yy306;
                                        goto yy140;
                                } else {
-                                       if(yych <= 'c') goto yy1398;
+                                       if(yych <= 'c') goto yy1415;
                                        if(yych <= 'z') goto yy140;
                                        goto yy306;
                                }
                        }
                }
-yy1397:
-               YYDEBUG(1397, *YYCURSOR);
+yy1414:
+               YYDEBUG(1414, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '-') {
@@ -21487,8 +21687,8 @@ yy1397:
                                goto yy306;
                        }
                }
-yy1398:
-               YYDEBUG(1398, *YYCURSOR);
+yy1415:
+               YYDEBUG(1415, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= ')') {
@@ -21510,8 +21710,8 @@ yy1398:
                                goto yy3;
                        }
                }
-yy1399:
-               YYDEBUG(1399, *YYCURSOR);
+yy1416:
+               YYDEBUG(1416, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Y') {
@@ -21524,9 +21724,9 @@ yy1399:
                                        if(yych <= '@') goto yy3;
                                        goto yy139;
                                } else {
-                                       if(yych <= 'R') goto yy1396;
+                                       if(yych <= 'R') goto yy1413;
                                        if(yych <= 'X') goto yy139;
-                                       goto yy1397;
+                                       goto yy1414;
                                }
                        }
                } else {
@@ -21541,17 +21741,17 @@ yy1399:
                                }
                        } else {
                                if(yych <= 'x') {
-                                       if(yych <= 'r') goto yy1411;
+                                       if(yych <= 'r') goto yy1428;
                                        goto yy144;
                                } else {
-                                       if(yych <= 'y') goto yy1412;
+                                       if(yych <= 'y') goto yy1429;
                                        if(yych <= 'z') goto yy144;
                                        goto yy3;
                                }
                        }
                }
-yy1400:
-               YYDEBUG(1400, *YYCURSOR);
+yy1417:
+               YYDEBUG(1417, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -21562,7 +21762,7 @@ yy1400:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'C') goto yy139;
-                               goto yy1390;
+                               goto yy1407;
                        }
                } else {
                        if(yych <= '`') {
@@ -21570,13 +21770,13 @@ yy1400:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'd') goto yy1405;
+                               if(yych == 'd') goto yy1422;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1401:
-               YYDEBUG(1401, *YYCURSOR);
+yy1418:
+               YYDEBUG(1418, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
@@ -21587,7 +21787,7 @@ yy1401:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy139;
-                               goto yy1387;
+                               goto yy1404;
                        }
                } else {
                        if(yych <= '`') {
@@ -21595,13 +21795,13 @@ yy1401:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'n') goto yy1402;
+                               if(yych == 'n') goto yy1419;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1402:
-               YYDEBUG(1402, *YYCURSOR);
+yy1419:
+               YYDEBUG(1419, *YYCURSOR);
                yyaccept = 5;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -21612,7 +21812,7 @@ yy1402:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy279;
                                if(yych <= 'C') goto yy140;
-                               goto yy1388;
+                               goto yy1405;
                        }
                } else {
                        if(yych <= '`') {
@@ -21620,13 +21820,13 @@ yy1402:
                                if(yych == '_') goto yy145;
                                goto yy279;
                        } else {
-                               if(yych == 'd') goto yy1403;
+                               if(yych == 'd') goto yy1420;
                                if(yych <= 'z') goto yy149;
                                goto yy279;
                        }
                }
-yy1403:
-               YYDEBUG(1403, *YYCURSOR);
+yy1420:
+               YYDEBUG(1420, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'A') {
@@ -21636,7 +21836,7 @@ yy1403:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
-                               goto yy1389;
+                               goto yy1406;
                        }
                } else {
                        if(yych <= '_') {
@@ -21645,13 +21845,13 @@ yy1403:
                                goto yy145;
                        } else {
                                if(yych <= '`') goto yy3;
-                               if(yych <= 'a') goto yy1404;
+                               if(yych <= 'a') goto yy1421;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1404:
-               YYDEBUG(1404, *YYCURSOR);
+yy1421:
+               YYDEBUG(1421, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'Y') {
@@ -21675,8 +21875,8 @@ yy1404:
                                goto yy3;
                        }
                }
-yy1405:
-               YYDEBUG(1405, *YYCURSOR);
+yy1422:
+               YYDEBUG(1422, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
@@ -21687,7 +21887,7 @@ yy1405:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy140;
-                               goto yy1391;
+                               goto yy1408;
                        }
                } else {
                        if(yych <= '`') {
@@ -21695,13 +21895,13 @@ yy1405:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'n') goto yy1406;
+                               if(yych == 'n') goto yy1423;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1406:
-               YYDEBUG(1406, *YYCURSOR);
+yy1423:
+               YYDEBUG(1423, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'I') {
@@ -21712,7 +21912,7 @@ yy1406:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'H') goto yy141;
-                               goto yy1392;
+                               goto yy1409;
                        }
                } else {
                        if(yych <= '`') {
@@ -21720,13 +21920,13 @@ yy1406:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'i') goto yy1407;
+                               if(yych == 'i') goto yy1424;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1407:
-               YYDEBUG(1407, *YYCURSOR);
+yy1424:
+               YYDEBUG(1424, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'G') {
@@ -21737,7 +21937,7 @@ yy1407:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'F') goto yy142;
-                               goto yy1393;
+                               goto yy1410;
                        }
                } else {
                        if(yych <= '`') {
@@ -21745,13 +21945,13 @@ yy1407:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'g') goto yy1408;
+                               if(yych == 'g') goto yy1425;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1408:
-               YYDEBUG(1408, *YYCURSOR);
+yy1425:
+               YYDEBUG(1425, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -21761,37 +21961,37 @@ yy1408:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= 'G') goto yy3;
-                               goto yy1394;
+                               goto yy1411;
                        }
                } else {
                        if(yych <= '`') {
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'h') goto yy1409;
+                               if(yych == 'h') goto yy1426;
                                if(yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
-yy1409:
-               YYDEBUG(1409, *YYCURSOR);
+yy1426:
+               YYDEBUG(1426, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'T') goto yy1395;
+               if(yych == 'T') goto yy1412;
                if(yych != 't') goto yy153;
-               YYDEBUG(1410, *YYCURSOR);
+               YYDEBUG(1427, *YYCURSOR);
                yyaccept = 29;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '^') {
                        if(yych == '/') goto yy145;
-                       goto yy1341;
+                       goto yy1358;
                } else {
                        if(yych <= '_') goto yy145;
-                       if(yych <= '`') goto yy1341;
+                       if(yych <= '`') goto yy1358;
                        if(yych <= 'z') goto yy152;
-                       goto yy1341;
+                       goto yy1358;
                }
-yy1411:
-               YYDEBUG(1411, *YYCURSOR);
+yy1428:
+               YYDEBUG(1428, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '9') {
@@ -21819,7 +22019,7 @@ yy1411:
                                        if(yych <= '@') goto yy306;
                                        goto yy140;
                                } else {
-                                       if(yych <= 'C') goto yy1398;
+                                       if(yych <= 'C') goto yy1415;
                                        if(yych <= 'Z') goto yy140;
                                        goto yy306;
                                }
@@ -21829,14 +22029,14 @@ yy1411:
                                        if(yych <= '`') goto yy306;
                                        goto yy149;
                                } else {
-                                       if(yych <= 'c') goto yy1413;
+                                       if(yych <= 'c') goto yy1430;
                                        if(yych <= 'z') goto yy149;
                                        goto yy306;
                                }
                        }
                }
-yy1412:
-               YYDEBUG(1412, *YYCURSOR);
+yy1429:
+               YYDEBUG(1429, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '.') {
@@ -21871,8 +22071,8 @@ yy1412:
                                }
                        }
                }
-yy1413:
-               YYDEBUG(1413, *YYCURSOR);
+yy1430:
+               YYDEBUG(1430, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -21896,8 +22096,8 @@ yy1413:
                                goto yy3;
                        }
                }
-yy1414:
-               YYDEBUG(1414, *YYCURSOR);
+yy1431:
+               YYDEBUG(1431, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'W') {
                        if(yych <= 'N') {
@@ -21905,30 +22105,30 @@ yy1414:
                                if(yych <= '@') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'O') goto yy1422;
+                               if(yych <= 'O') goto yy1439;
                                if(yych <= 'U') goto yy139;
-                               if(yych <= 'V') goto yy1423;
-                               goto yy1420;
+                               if(yych <= 'V') goto yy1440;
+                               goto yy1437;
                        }
                } else {
                        if(yych <= 'o') {
                                if(yych <= 'Z') goto yy139;
                                if(yych <= '`') goto yy3;
                                if(yych <= 'n') goto yy139;
-                               goto yy1422;
+                               goto yy1439;
                        } else {
                                if(yych <= 'v') {
                                        if(yych <= 'u') goto yy139;
-                                       goto yy1423;
+                                       goto yy1440;
                                } else {
-                                       if(yych <= 'w') goto yy1420;
+                                       if(yych <= 'w') goto yy1437;
                                        if(yych <= 'z') goto yy139;
                                        goto yy3;
                                }
                        }
                }
-yy1415:
-               YYDEBUG(1415, *YYCURSOR);
+yy1432:
+               YYDEBUG(1432, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'X') {
                        if(yych <= ')') {
@@ -21937,7 +22137,7 @@ yy1415:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'W') goto yy139;
-                               goto yy1419;
+                               goto yy1436;
                        }
                } else {
                        if(yych <= 'w') {
@@ -21945,13 +22145,13 @@ yy1415:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'x') goto yy1419;
+                               if(yych <= 'x') goto yy1436;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1416:
-               YYDEBUG(1416, *YYCURSOR);
+yy1433:
+               YYDEBUG(1433, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
                        if(yych <= ')') {
@@ -21967,13 +22167,13 @@ yy1416:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 'n') goto yy1417;
+                               if(yych <= 'n') goto yy1434;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1417:
-               YYDEBUG(1417, *YYCURSOR);
+yy1434:
+               YYDEBUG(1434, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -21989,13 +22189,13 @@ yy1417:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 't') goto yy1418;
+                               if(yych <= 't') goto yy1435;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1418:
-               YYDEBUG(1418, *YYCURSOR);
+yy1435:
+               YYDEBUG(1435, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'H') {
                        if(yych <= ')') {
@@ -22017,8 +22217,8 @@ yy1418:
                                goto yy3;
                        }
                }
-yy1419:
-               YYDEBUG(1419, *YYCURSOR);
+yy1436:
+               YYDEBUG(1436, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -22027,7 +22227,7 @@ yy1419:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1345;
+                               goto yy1362;
                        }
                } else {
                        if(yych <= 's') {
@@ -22035,24 +22235,24 @@ yy1419:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 't') goto yy1345;
+                               if(yych <= 't') goto yy1362;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1420:
-               YYDEBUG(1420, *YYCURSOR);
+yy1437:
+               YYDEBUG(1437, *YYCURSOR);
                ++YYCURSOR;
                if((yych = *YYCURSOR) <= '@') {
                        if(yych == ')') goto yy137;
                } else {
                        if(yych <= 'Z') goto yy140;
-                       if(yych <= '`') goto yy1421;
+                       if(yych <= '`') goto yy1438;
                        if(yych <= 'z') goto yy140;
                }
-yy1421:
-               YYDEBUG(1421, *YYCURSOR);
-#line 970 "ext/date/lib/parse_date.re"
+yy1438:
+               YYDEBUG(1438, *YYCURSOR);
+#line 974 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("now");
                TIMELIB_INIT;
@@ -22060,9 +22260,9 @@ yy1421:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 22064 "ext/date/lib/parse_date.c"
-yy1422:
-               YYDEBUG(1422, *YYCURSOR);
+#line 22264 "ext/date/lib/parse_date.c"
+yy1439:
+               YYDEBUG(1439, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'N') {
                        if(yych <= ')') {
@@ -22071,7 +22271,7 @@ yy1422:
                        } else {
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy140;
-                               goto yy1428;
+                               goto yy1445;
                        }
                } else {
                        if(yych <= 'm') {
@@ -22079,13 +22279,13 @@ yy1422:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 'n') goto yy1428;
+                               if(yych <= 'n') goto yy1445;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1423:
-               YYDEBUG(1423, *YYCURSOR);
+yy1440:
+               YYDEBUG(1440, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '/') {
@@ -22120,14 +22320,14 @@ yy1423:
                                        if(yych <= '`') goto yy306;
                                        goto yy140;
                                } else {
-                                       if(yych <= 'e') goto yy1424;
+                                       if(yych <= 'e') goto yy1441;
                                        if(yych <= 'z') goto yy140;
                                        goto yy306;
                                }
                        }
                }
-yy1424:
-               YYDEBUG(1424, *YYCURSOR);
+yy1441:
+               YYDEBUG(1441, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'M') {
                        if(yych <= ')') {
@@ -22143,13 +22343,13 @@ yy1424:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'm') goto yy1425;
+                               if(yych <= 'm') goto yy1442;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1425:
-               YYDEBUG(1425, *YYCURSOR);
+yy1442:
+               YYDEBUG(1442, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'B') {
                        if(yych <= ')') {
@@ -22165,41 +22365,41 @@ yy1425:
                                if(yych <= '`') goto yy3;
                                goto yy142;
                        } else {
-                               if(yych <= 'b') goto yy1426;
+                               if(yych <= 'b') goto yy1443;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1426:
-               YYDEBUG(1426, *YYCURSOR);
+yy1443:
+               YYDEBUG(1443, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
                        if(yych == ')') goto yy137;
                        goto yy3;
                } else {
-                       if(yych <= 'E') goto yy1427;
+                       if(yych <= 'E') goto yy1444;
                        if(yych != 'e') goto yy3;
                }
-yy1427:
-               YYDEBUG(1427, *YYCURSOR);
+yy1444:
+               YYDEBUG(1444, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'R') goto yy318;
                if(yych == 'r') goto yy318;
                goto yy54;
-yy1428:
-               YYDEBUG(1428, *YYCURSOR);
+yy1445:
+               YYDEBUG(1445, *YYCURSOR);
                ++YYCURSOR;
                if((yych = *YYCURSOR) <= '@') {
                        if(yych == ')') goto yy137;
                } else {
                        if(yych <= 'Z') goto yy141;
-                       if(yych <= '`') goto yy1429;
+                       if(yych <= '`') goto yy1446;
                        if(yych <= 'z') goto yy141;
                }
-yy1429:
-               YYDEBUG(1429, *YYCURSOR);
-#line 979 "ext/date/lib/parse_date.re"
+yy1446:
+               YYDEBUG(1446, *YYCURSOR);
+#line 983 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("noon");
                TIMELIB_INIT;
@@ -22210,9 +22410,9 @@ yy1429:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 22214 "ext/date/lib/parse_date.c"
-yy1430:
-               YYDEBUG(1430, *YYCURSOR);
+#line 22414 "ext/date/lib/parse_date.c"
+yy1447:
+               YYDEBUG(1447, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'W') {
@@ -22227,11 +22427,11 @@ yy1430:
                        } else {
                                if(yych <= 'O') {
                                        if(yych <= 'N') goto yy139;
-                                       goto yy1422;
+                                       goto yy1439;
                                } else {
                                        if(yych <= 'U') goto yy139;
-                                       if(yych <= 'V') goto yy1423;
-                                       goto yy1420;
+                                       if(yych <= 'V') goto yy1440;
+                                       goto yy1437;
                                }
                        }
                } else {
@@ -22246,18 +22446,18 @@ yy1430:
                                }
                        } else {
                                if(yych <= 'v') {
-                                       if(yych <= 'o') goto yy1437;
+                                       if(yych <= 'o') goto yy1454;
                                        if(yych <= 'u') goto yy144;
-                                       goto yy1438;
+                                       goto yy1455;
                                } else {
-                                       if(yych <= 'w') goto yy1436;
+                                       if(yych <= 'w') goto yy1453;
                                        if(yych <= 'z') goto yy144;
                                        goto yy3;
                                }
                        }
                }
-yy1431:
-               YYDEBUG(1431, *YYCURSOR);
+yy1448:
+               YYDEBUG(1448, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'X') {
@@ -22268,7 +22468,7 @@ yy1431:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'W') goto yy139;
-                               goto yy1419;
+                               goto yy1436;
                        }
                } else {
                        if(yych <= '`') {
@@ -22276,13 +22476,13 @@ yy1431:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'x') goto yy1435;
+                               if(yych == 'x') goto yy1452;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1432:
-               YYDEBUG(1432, *YYCURSOR);
+yy1449:
+               YYDEBUG(1449, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
@@ -22293,7 +22493,7 @@ yy1432:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy139;
-                               goto yy1417;
+                               goto yy1434;
                        }
                } else {
                        if(yych <= '`') {
@@ -22301,13 +22501,13 @@ yy1432:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'n') goto yy1433;
+                               if(yych == 'n') goto yy1450;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1433:
-               YYDEBUG(1433, *YYCURSOR);
+yy1450:
+               YYDEBUG(1450, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -22318,7 +22518,7 @@ yy1433:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1418;
+                               goto yy1435;
                        }
                } else {
                        if(yych <= '`') {
@@ -22326,13 +22526,13 @@ yy1433:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1434;
+                               if(yych == 't') goto yy1451;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1434:
-               YYDEBUG(1434, *YYCURSOR);
+yy1451:
+               YYDEBUG(1451, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'H') {
@@ -22356,8 +22556,8 @@ yy1434:
                                goto yy3;
                        }
                }
-yy1435:
-               YYDEBUG(1435, *YYCURSOR);
+yy1452:
+               YYDEBUG(1452, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -22368,7 +22568,7 @@ yy1435:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1345;
+                               goto yy1362;
                        }
                } else {
                        if(yych <= '`') {
@@ -22376,36 +22576,36 @@ yy1435:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1377;
+                               if(yych == 't') goto yy1394;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1436:
-               YYDEBUG(1436, *YYCURSOR);
+yy1453:
+               YYDEBUG(1453, *YYCURSOR);
                yyaccept = 30;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '@') {
                        if(yych <= ')') {
-                               if(yych <= '(') goto yy1421;
+                               if(yych <= '(') goto yy1438;
                                goto yy137;
                        } else {
                                if(yych == '/') goto yy145;
-                               goto yy1421;
+                               goto yy1438;
                        }
                } else {
                        if(yych <= '_') {
                                if(yych <= 'Z') goto yy140;
-                               if(yych <= '^') goto yy1421;
+                               if(yych <= '^') goto yy1438;
                                goto yy145;
                        } else {
-                               if(yych <= '`') goto yy1421;
+                               if(yych <= '`') goto yy1438;
                                if(yych <= 'z') goto yy149;
-                               goto yy1421;
+                               goto yy1438;
                        }
                }
-yy1437:
-               YYDEBUG(1437, *YYCURSOR);
+yy1454:
+               YYDEBUG(1454, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'N') {
@@ -22416,7 +22616,7 @@ yy1437:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'M') goto yy140;
-                               goto yy1428;
+                               goto yy1445;
                        }
                } else {
                        if(yych <= '`') {
@@ -22424,13 +22624,13 @@ yy1437:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'n') goto yy1443;
+                               if(yych == 'n') goto yy1460;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1438:
-               YYDEBUG(1438, *YYCURSOR);
+yy1455:
+               YYDEBUG(1455, *YYCURSOR);
                yyaccept = 6;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '9') {
@@ -22458,7 +22658,7 @@ yy1438:
                                        if(yych <= '@') goto yy306;
                                        goto yy140;
                                } else {
-                                       if(yych <= 'E') goto yy1424;
+                                       if(yych <= 'E') goto yy1441;
                                        if(yych <= 'Z') goto yy140;
                                        goto yy306;
                                }
@@ -22468,14 +22668,14 @@ yy1438:
                                        if(yych <= '`') goto yy306;
                                        goto yy149;
                                } else {
-                                       if(yych <= 'e') goto yy1439;
+                                       if(yych <= 'e') goto yy1456;
                                        if(yych <= 'z') goto yy149;
                                        goto yy306;
                                }
                        }
                }
-yy1439:
-               YYDEBUG(1439, *YYCURSOR);
+yy1456:
+               YYDEBUG(1456, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'M') {
@@ -22486,7 +22686,7 @@ yy1439:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'L') goto yy141;
-                               goto yy1425;
+                               goto yy1442;
                        }
                } else {
                        if(yych <= '`') {
@@ -22494,13 +22694,13 @@ yy1439:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'm') goto yy1440;
+                               if(yych == 'm') goto yy1457;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1440:
-               YYDEBUG(1440, *YYCURSOR);
+yy1457:
+               YYDEBUG(1457, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'B') {
@@ -22511,7 +22711,7 @@ yy1440:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'A') goto yy142;
-                               goto yy1426;
+                               goto yy1443;
                        }
                } else {
                        if(yych <= '`') {
@@ -22519,13 +22719,13 @@ yy1440:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'b') goto yy1441;
+                               if(yych == 'b') goto yy1458;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1441:
-               YYDEBUG(1441, *YYCURSOR);
+yy1458:
+               YYDEBUG(1458, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'E') {
@@ -22535,49 +22735,49 @@ yy1441:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= 'D') goto yy3;
-                               goto yy1427;
+                               goto yy1444;
                        }
                } else {
                        if(yych <= '`') {
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'e') goto yy1442;
+                               if(yych == 'e') goto yy1459;
                                if(yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
-yy1442:
-               YYDEBUG(1442, *YYCURSOR);
+yy1459:
+               YYDEBUG(1459, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych == 'R') goto yy318;
                if(yych == 'r') goto yy491;
                goto yy153;
-yy1443:
-               YYDEBUG(1443, *YYCURSOR);
+yy1460:
+               YYDEBUG(1460, *YYCURSOR);
                yyaccept = 31;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '@') {
                        if(yych <= ')') {
-                               if(yych <= '(') goto yy1429;
+                               if(yych <= '(') goto yy1446;
                                goto yy137;
                        } else {
                                if(yych == '/') goto yy145;
-                               goto yy1429;
+                               goto yy1446;
                        }
                } else {
                        if(yych <= '_') {
                                if(yych <= 'Z') goto yy141;
-                               if(yych <= '^') goto yy1429;
+                               if(yych <= '^') goto yy1446;
                                goto yy145;
                        } else {
-                               if(yych <= '`') goto yy1429;
+                               if(yych <= '`') goto yy1446;
                                if(yych <= 'z') goto yy150;
-                               goto yy1429;
+                               goto yy1446;
                        }
                }
-yy1444:
-               YYDEBUG(1444, *YYCURSOR);
+yy1461:
+               YYDEBUG(1461, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'S') {
                        if(yych <= ')') {
@@ -22593,13 +22793,13 @@ yy1444:
                                if(yych <= '`') goto yy3;
                                goto yy139;
                        } else {
-                               if(yych <= 's') goto yy1445;
+                               if(yych <= 's') goto yy1462;
                                if(yych <= 'z') goto yy139;
                                goto yy3;
                        }
                }
-yy1445:
-               YYDEBUG(1445, *YYCURSOR);
+yy1462:
+               YYDEBUG(1462, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'T') {
                        if(yych <= ')') {
@@ -22615,13 +22815,13 @@ yy1445:
                                if(yych <= '`') goto yy3;
                                goto yy140;
                        } else {
-                               if(yych <= 't') goto yy1446;
+                               if(yych <= 't') goto yy1463;
                                if(yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
-yy1446:
-               YYDEBUG(1446, *YYCURSOR);
+yy1463:
+               YYDEBUG(1463, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'E') {
                        if(yych <= ')') {
@@ -22637,13 +22837,13 @@ yy1446:
                                if(yych <= '`') goto yy3;
                                goto yy141;
                        } else {
-                               if(yych <= 'e') goto yy1447;
+                               if(yych <= 'e') goto yy1464;
                                if(yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
-yy1447:
-               YYDEBUG(1447, *YYCURSOR);
+yy1464:
+               YYDEBUG(1464, *YYCURSOR);
                yych = *++YYCURSOR;
                if(yych <= 'R') {
                        if(yych <= ')') {
@@ -22659,38 +22859,38 @@ yy1447:
                                if(yych <= '`') goto yy3;
                                goto yy142;
                        } else {
-                               if(yych <= 'r') goto yy1448;
+                               if(yych <= 'r') goto yy1465;
                                if(yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
-yy1448:
-               YYDEBUG(1448, *YYCURSOR);
+yy1465:
+               YYDEBUG(1465, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'C') {
                        if(yych == ')') goto yy137;
                        goto yy3;
                } else {
-                       if(yych <= 'D') goto yy1449;
+                       if(yych <= 'D') goto yy1466;
                        if(yych != 'd') goto yy3;
                }
-yy1449:
-               YYDEBUG(1449, *YYCURSOR);
+yy1466:
+               YYDEBUG(1466, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1450;
+               if(yych == 'A') goto yy1467;
                if(yych != 'a') goto yy54;
-yy1450:
-               YYDEBUG(1450, *YYCURSOR);
+yy1467:
+               YYDEBUG(1467, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1451;
+               if(yych == 'Y') goto yy1468;
                if(yych != 'y') goto yy54;
-yy1451:
-               YYDEBUG(1451, *YYCURSOR);
+yy1468:
+               YYDEBUG(1468, *YYCURSOR);
                ++YYCURSOR;
-yy1452:
-               YYDEBUG(1452, *YYCURSOR);
-#line 958 "ext/date/lib/parse_date.re"
+yy1469:
+               YYDEBUG(1469, *YYCURSOR);
+#line 962 "ext/date/lib/parse_date.re"
                {
                DEBUG_OUTPUT("yesterday");
                TIMELIB_INIT;
@@ -22701,9 +22901,9 @@ yy1452:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 22705 "ext/date/lib/parse_date.c"
-yy1453:
-               YYDEBUG(1453, *YYCURSOR);
+#line 22905 "ext/date/lib/parse_date.c"
+yy1470:
+               YYDEBUG(1470, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'S') {
@@ -22714,7 +22914,7 @@ yy1453:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'R') goto yy139;
-                               goto yy1445;
+                               goto yy1462;
                        }
                } else {
                        if(yych <= '`') {
@@ -22722,13 +22922,13 @@ yy1453:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 's') goto yy1454;
+                               if(yych == 's') goto yy1471;
                                if(yych <= 'z') goto yy144;
                                goto yy3;
                        }
                }
-yy1454:
-               YYDEBUG(1454, *YYCURSOR);
+yy1471:
+               YYDEBUG(1471, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'T') {
@@ -22739,7 +22939,7 @@ yy1454:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'S') goto yy140;
-                               goto yy1446;
+                               goto yy1463;
                        }
                } else {
                        if(yych <= '`') {
@@ -22747,13 +22947,13 @@ yy1454:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 't') goto yy1455;
+                               if(yych == 't') goto yy1472;
                                if(yych <= 'z') goto yy149;
                                goto yy3;
                        }
                }
-yy1455:
-               YYDEBUG(1455, *YYCURSOR);
+yy1472:
+               YYDEBUG(1472, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'E') {
@@ -22764,7 +22964,7 @@ yy1455:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'D') goto yy141;
-                               goto yy1447;
+                               goto yy1464;
                        }
                } else {
                        if(yych <= '`') {
@@ -22772,13 +22972,13 @@ yy1455:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'e') goto yy1456;
+                               if(yych == 'e') goto yy1473;
                                if(yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
-yy1456:
-               YYDEBUG(1456, *YYCURSOR);
+yy1473:
+               YYDEBUG(1473, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'R') {
@@ -22789,7 +22989,7 @@ yy1456:
                                if(yych <= '/') goto yy145;
                                if(yych <= '@') goto yy3;
                                if(yych <= 'Q') goto yy142;
-                               goto yy1448;
+                               goto yy1465;
                        }
                } else {
                        if(yych <= '`') {
@@ -22797,13 +22997,13 @@ yy1456:
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'r') goto yy1457;
+                               if(yych == 'r') goto yy1474;
                                if(yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
-yy1457:
-               YYDEBUG(1457, *YYCURSOR);
+yy1474:
+               YYDEBUG(1474, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= 'D') {
@@ -22813,42 +23013,42 @@ yy1457:
                        } else {
                                if(yych <= '/') goto yy145;
                                if(yych <= 'C') goto yy3;
-                               goto yy1449;
+                               goto yy1466;
                        }
                } else {
                        if(yych <= '`') {
                                if(yych == '_') goto yy145;
                                goto yy3;
                        } else {
-                               if(yych == 'd') goto yy1458;
+                               if(yych == 'd') goto yy1475;
                                if(yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
-yy1458:
-               YYDEBUG(1458, *YYCURSOR);
+yy1475:
+               YYDEBUG(1475, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'A') goto yy1450;
+               if(yych == 'A') goto yy1467;
                if(yych != 'a') goto yy153;
-               YYDEBUG(1459, *YYCURSOR);
+               YYDEBUG(1476, *YYCURSOR);
                yych = *++YYCURSOR;
-               if(yych == 'Y') goto yy1451;
+               if(yych == 'Y') goto yy1468;
                if(yych != 'y') goto yy153;
-               YYDEBUG(1460, *YYCURSOR);
+               YYDEBUG(1477, *YYCURSOR);
                yyaccept = 32;
                yych = *(YYMARKER = ++YYCURSOR);
                if(yych <= '^') {
                        if(yych == '/') goto yy145;
-                       goto yy1452;
+                       goto yy1469;
                } else {
                        if(yych <= '_') goto yy145;
-                       if(yych <= '`') goto yy1452;
+                       if(yych <= '`') goto yy1469;
                        if(yych <= 'z') goto yy152;
-                       goto yy1452;
+                       goto yy1469;
                }
        }
 }
-#line 1624 "ext/date/lib/parse_date.re"
+#line 1649 "ext/date/lib/parse_date.re"
 
 }
 
index ccc8df63221eae9f79ce6176bc8dd1d20696fbfb..7d8df1b6ffccc4fe78bcfbdef60c36168316cc05 100644 (file)
@@ -473,20 +473,23 @@ static double timelib_get_frac_nr(char **ptr, int max_length)
        double tmp_nr = TIMELIB_UNSET;
        int len = 0;
 
-       while ((**ptr != '.') && ((**ptr < '0') || (**ptr > '9'))) {
+       while ((**ptr != '.') && (**ptr != ':') && ((**ptr < '0') || (**ptr > '9'))) {
                if (**ptr == '\0') {
                        return TIMELIB_UNSET;
                }
                ++*ptr;
        }
        begin = *ptr;
-       while (((**ptr == '.') || ((**ptr >= '0') && (**ptr <= '9'))) && len < max_length) {
+       while (((**ptr == '.') || (**ptr == ':') || ((**ptr >= '0') && (**ptr <= '9'))) && len < max_length) {
                ++*ptr;
                ++len;
        }
        end = *ptr;
        str = calloc(1, end - begin + 1);
        memcpy(str, begin, end - begin);
+       if (str[0] == ':') {
+               str[0] = '.';
+       }
        tmp_nr = strtod(str, NULL);
        free(str);
        return tmp_nr;
@@ -921,6 +924,7 @@ wddx             = year4 "-" month "-" day "T" hour24 ":" minute ":" second;
 pgydotd          = year4 "."? dayofyear;
 pgtextshort      = monthabbr "-" daylz "-" year;
 pgtextreverse    = year "-" monthabbr "-" daylz;
+mssqltime        = hour12 ":" minutelz ":" secondlz [:.] [0-9]+ meridian;
 isoweekday       = year4 "-"? "W" weekofyear "-"? [0-7];
 isoweek          = year4 "-"? "W" weekofyear;
 exif             = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
@@ -1068,6 +1072,27 @@ relativetext = reltextnumber space reltextunit;
                return TIMELIB_TIME12;
        }
 
+       mssqltime
+       {
+               int tz_not_found;
+               DEBUG_OUTPUT("mssqltime");
+               TIMELIB_INIT;
+               TIMELIB_HAVE_TIME();
+               s->time->h = timelib_get_nr((char **) &ptr, 2);
+               s->time->i = timelib_get_nr((char **) &ptr, 2);
+               if (*ptr == ':' || *ptr == '.') {
+                       s->time->s = timelib_get_nr((char **) &ptr, 2);
+
+                       if (*ptr == ':' || *ptr == '.') {
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
+                       }
+               }
+               timelib_eat_spaces((char **) &ptr);
+               s->time->h += timelib_meridian((char **) &ptr, s->time->h);
+               TIMELIB_DEINIT;
+               return TIMELIB_TIME24_WITH_ZONE;
+       }
+
        timeshort24 | timelong24 /* | iso8601short | iso8601norm */ | iso8601long /*| iso8601shorttz | iso8601normtz | iso8601longtz*/
        {
                int tz_not_found;