]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Implement max-udp-size config option, default 4096 (thanks
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 25 Apr 2013 11:55:46 +0000 (11:55 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 25 Apr 2013 11:55:46 +0000 (11:55 +0000)
  Daisuke Higashi).

git-svn-id: file:///svn/unbound/trunk@2893 be551aaa-1e26-0410-a405-d3ace91eadb9

12 files changed:
daemon/worker.c
doc/Changelog
doc/example.conf.in
doc/unbound-control.8.in
doc/unbound.conf.5.in
util/config_file.c
util/config_file.h
util/configlexer.c
util/configlexer.lex
util/configparser.c
util/configparser.h
util/configparser.y

index eeb323c8426afe7fc440fc93e026601ffce8b38c..6680aa323b1efcaf2b1bfef1759c2d53f9291492 100644 (file)
@@ -830,6 +830,13 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
                        (int)edns.udp_size);
                log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
                edns.udp_size = NORMAL_UDP_SIZE;
+       } else if(edns.edns_present &&
+               edns.udp_size > worker->daemon->cfg->max_udp_size &&
+               c->type == comm_udp) {
+               verbose(VERB_QUERY, "worker request: EDNS bufsize %d exceeds "
+                       "max-udp-size, fixed", (int)edns.udp_size);
+               log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               edns.udp_size = worker->daemon->cfg->max_udp_size;
        }
        if(edns.edns_present && edns.udp_size < LDNS_HEADER_SIZE) {
                verbose(VERB_ALGO, "worker request: edns is too small.");
index f42e9338d0d62f3bc495c1683b46c9c4ad616bbe..9f2854e5b31fc8b1be6c09321f78c587aca04b08 100644 (file)
@@ -1,4 +1,6 @@
 25 April 2013: Wouter
+       - Implement max-udp-size config option, default 4096 (thanks
+         Daisuke Higashi).
        - Robust checks on dname validity from rdata for dname compare.
 
 19 April 2013: Wouter
index be7cb5e28dd638f00fcccda92c3597821047dd0d..81e1876185a54306694afd7f16963a91844657bb 100644 (file)
@@ -89,6 +89,10 @@ server:
        # is set with msg-buffer-size). 1480 can solve fragmentation (timeouts).
        # edns-buffer-size: 4096
 
+       # Maximum UDP response size (not applied to TCP response).
+       # Suggested values are 512 to 4096. Default is 4096. 65536 disables it.
+       # max-udp-size: 4096
+
        # buffer size for handling DNS data. No messages larger than this
        # size can be sent or received, by UDP or TCP. In bytes.
        # msg-buffer-size: 65552
index 620fd321140f7b38278151ef8093c9d78cc24eea..299e0d4fdf4f916cc323b36be459cf09d6c8da04 100644 (file)
@@ -170,7 +170,7 @@ harden\-glue, harden\-dnssec\-stripped, harden\-below\-nxdomain,
 harden\-referral\-path, prefetch, prefetch\-key, log\-queries,
 hide\-identity, hide\-version, identity, version, val\-log\-level,
 val\-log\-squelch, ignore\-cd\-flag, add\-holddown, del\-holddown,
-keep\-missing, tcp\-upstream, ssl\-upstream.
+keep\-missing, tcp\-upstream, ssl\-upstream, max\-udp\-size.
 .TP
 .B get_option \fIopt
 Get the value of the option.  Give the option name without a trailing ':'.
index cf04e4bd024f7535ddce40096dfa4f76fa448ee8..888d34f6e52ea6900a0508c6c20feca4dbdc3f2a 100644 (file)
@@ -183,6 +183,11 @@ stringent path MTU problems, but is seen as extreme, since the amount
 of TCP fallback generated is excessive (probably also for this resolver,
 consider tuning the outgoing tcp number).
 .TP
+.B max\-udp\-size: \fI<number>
+Maximum UDP response size (not applied to TCP response).  65536 disables the
+udp response size maximum, and uses the choice from the client, always.
+Suggested values are 512 to 4096. Default is 4096. 
+.TP
 .B msg\-buffer\-size: \fI<number>
 Number of bytes size of the message buffers. Default is 65552 bytes, enough
 for 64 Kb packets, the maximum DNS message size. No message larger than this
index 32c86a84179aa8e71885f2bc6f6483f03030308b..188bb6d0a34c0fe5886bd94a9ff824deae93292b 100644 (file)
@@ -201,6 +201,7 @@ config_create(void)
        cfg->control_port = UNBOUND_CONTROL_PORT;
        cfg->minimal_responses = 0;
        cfg->rrset_roundrobin = 0;
+       cfg->max_udp_size = 4096;
        if(!(cfg->server_key_file = strdup(RUN_DIR"/unbound_server.key"))) 
                goto error_exit;
        if(!(cfg->server_cert_file = strdup(RUN_DIR"/unbound_server.pem"))) 
@@ -327,7 +328,8 @@ int config_set_option(struct config_file* cfg, const char* opt,
                cfg->use_syslog = 0;
                free(cfg->logfile);
                return (cfg->logfile = strdup(val)) != NULL;
-       } 
+       }
+       else S_NUMBER_NONZERO("max-udp-size:", max_udp_size)
        else S_YNO("use-syslog:", use_syslog)
        else S_YNO("extended-statistics:", stat_extended)
        else S_YNO("statistics-cumulative:", stat_cumulative)
@@ -662,6 +664,7 @@ config_get_option(struct config_file* cfg, const char* opt,
        else O_UNS(opt, "val-override-date", val_date_override)
        else O_YNO(opt, "minimal-responses", minimal_responses)
        else O_YNO(opt, "rrset-roundrobin", rrset_roundrobin)
+       else O_DEC(opt, "max-udp-size", max_udp_size)
        /* not here:
         * outgoing-permit, outgoing-avoid - have list of ports
         * local-zone - zones and nodefault variables
index 69595cb50f2e01c08c7fc30f30e16d95bfe6d233..742e1814ad020e191196d2c704a61ec855c3cade 100644 (file)
@@ -296,6 +296,9 @@ struct config_file {
 
        /* RRSet roundrobin */
        int rrset_roundrobin;
+
+       /* maximum UDP response size */
+       size_t max_udp_size;
 };
 
 /**
index 45058af66e61652438888f8d527c31f04230d13e..70619ea318a71dd64379cd4d5ac840c7a3127bd2 100644 (file)
@@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 142
-#define YY_END_OF_BUFFER 143
+#define YY_NUM_RULES 143
+#define YY_END_OF_BUFFER 144
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -372,156 +372,157 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[1343] =
+static yyconst flex_int16_t yy_accept[1355] =
     {   0,
-        1,    1,  124,  124,  128,  128,  132,  132,  136,  136,
-        1,    1,  143,  140,    1,  122,  122,  141,    2,  141,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  124,
-      125,  125,  126,  141,  128,  129,  129,  130,  141,  135,
-      132,  133,  133,  134,  141,  136,  137,  137,  138,  141,
-      139,  123,    2,  127,  141,  139,  140,    0,    1,    2,
-        2,    2,    2,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  124,
-        0,  128,    0,  135,    0,  132,  136,    0,  139,    0,
-        2,    2,  139,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  139,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  139,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,   62,  140,  140,
-      140,  140,  140,    6,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  139,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  139,  140,  140,  140,  140,   27,
-      140,  140,  140,  140,  140,   12,   13,  140,   15,   14,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  118,  140,  140,  140,  140,
-      140,    3,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      139,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  131,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,   30,
-      140,  140,  140,  140,  140,  140,  140,  140,   31,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,   77,  131,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  140,  140,  140,   76,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-       60,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,   20,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,   28,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,   29,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,   22,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,   25,   26,  140,  140,  140,   63,  140,   64,
-      140,   61,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,    5,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,   79,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  104,  103,  140,
-
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,   32,  140,  140,
-      140,  140,  140,  140,  140,   66,   65,  140,  140,  140,
-      140,  140,  140,  100,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,   51,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  102,  140,  140,  140,  140,  140,  140,  140,  140,
-        4,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,   97,  140,  140,  140,  140,  140,  140,  140,
-      112,   98,  140,   21,  140,  140,  140,  140,   68,  140,
-       69,   67,  140,  140,  140,  140,  140,  140,   75,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,   99,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,   59,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,   17,  140,  140,  140,   16,
-      140,   84,  140,  140,  140,  140,  140,  140,  140,  140,
-
-      140,  140,  140,  140,   39,   40,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,   70,  140,  140,  140,
-      140,  140,   74,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,   78,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  117,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,   88,  140,   92,  140,  140,
-      140,  140,   73,  140,  140,  110,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,   91,
-      140,  140,  140,  140,   41,   42,  140,   47,   93,  140,
-
-      105,  101,  140,  140,   35,  140,   95,  140,  140,  140,
-      140,  140,    7,  140,   58,  109,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-       80,  140,  140,  119,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,   94,  140,   34,   36,
-      140,  140,  140,  140,  140,   57,  140,  140,  140,  140,
-      113,   18,   19,  140,  140,  140,  140,  140,  140,   55,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  115,
-      140,  140,   33,  140,  140,  140,  140,  140,  140,   11,
-
-      140,  140,  140,  140,  140,  140,  140,   10,  140,  140,
-       37,  140,  121,  114,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  140,   87,   86,  140,  116,  111,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,   43,
-      140,  120,  140,  140,  140,  140,   38,  140,  140,  140,
-       81,   83,  140,  140,  140,   85,  140,  140,  140,  140,
-      140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-       23,  140,  140,  140,  140,  140,  140,  140,  140,  140,
-      140,  140,  140,  108,  140,  140,  140,  140,  140,  140,
-      140,   24,  140,    9,  140,  140,  106,   48,  140,  140,
-
-      140,   90,  140,   71,  140,  140,  140,   50,   54,   49,
-      140,   44,  140,    8,  140,  140,   89,  140,  140,  140,
-       53,  140,   45,  140,  107,  140,  140,   82,   72,   52,
-       46,  140,  140,  140,  140,   56,  140,  140,  140,  140,
-       96,    0
+        1,    1,  125,  125,  129,  129,  133,  133,  137,  137,
+        1,    1,  144,  141,    1,  123,  123,  142,    2,  142,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  125,
+      126,  126,  127,  142,  129,  130,  130,  131,  142,  136,
+      133,  134,  134,  135,  142,  137,  138,  138,  139,  142,
+      140,  124,    2,  128,  142,  140,  141,    0,    1,    2,
+        2,    2,    2,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      125,    0,  129,    0,  136,    0,  133,  137,    0,  140,
+        0,    2,    2,  140,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  140,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  140,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,   62,  141,  141,  141,  141,  141,    6,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  140,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  140,
+      141,  141,  141,  141,   27,  141,  141,  141,  141,  141,
+       12,   13,  141,   15,   14,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  118,  141,  141,  141,  141,  141,    3,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  140,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  132,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,   30,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,   31,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,   77,  132,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,   76,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,   60,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+       20,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,   28,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,   29,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,   22,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,   25,   26,  141,  141,  141,   63,  141,   64,  141,
+       61,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,    5,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,   79,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  104,  103,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,   32,  141,  141,
+      141,  141,  141,  141,  141,   66,   65,  141,  141,  141,
+      141,  141,  141,  100,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,   51,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  102,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,    4,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,   97,  141,  141,  141,  141,  141,  141,
+      141,  112,   98,  141,   21,  141,  141,  141,  141,   68,
+      141,   69,   67,  141,  141,  141,  141,  141,  141,   75,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,   99,
+      141,  141,  141,  141,  122,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,   59,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,   17,  141,  141,
+
+      141,   16,  141,   84,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,   39,   40,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,   70,  141,
+      141,  141,  141,  141,   74,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,   78,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  117,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,   88,  141,   92,
+      141,  141,  141,  141,   73,  141,  141,  110,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,   91,  141,  141,  141,  141,   41,   42,  141,   47,
+       93,  141,  105,  101,  141,  141,   35,  141,   95,  141,
+      141,  141,  141,  141,    7,  141,   58,  109,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,   80,  141,  141,  119,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,   94,  141,
+       34,   36,  141,  141,  141,  141,  141,   57,  141,  141,
+      141,  141,  113,   18,   19,  141,  141,  141,  141,  141,
+      141,   55,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  115,  141,  141,   33,  141,  141,  141,  141,  141,
+      141,   11,  141,  141,  141,  141,  141,  141,  141,   10,
+      141,  141,   37,  141,  121,  114,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,   87,   86,  141,  116,
+      111,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,   43,  141,  120,  141,  141,  141,  141,   38,  141,
+      141,  141,   81,   83,  141,  141,  141,   85,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,   23,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  108,  141,  141,  141,  141,
+
+      141,  141,  141,   24,  141,    9,  141,  141,  106,   48,
+      141,  141,  141,   90,  141,   71,  141,  141,  141,   50,
+       54,   49,  141,   44,  141,    8,  141,  141,   89,  141,
+      141,  141,   53,  141,   45,  141,  107,  141,  141,   82,
+       72,   52,   46,  141,  141,  141,  141,   56,  141,  141,
+      141,  141,   96,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -564,617 +565,621 @@ static yyconst flex_int32_t yy_meta[40] =
         1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1357] =
+static yyconst flex_int16_t yy_base[1369] =
     {   0,
         0,    0,   37,   40,   44,   51,   63,   75,   56,   68,
-       87,  108, 2577, 2563,   50, 2683, 2683, 2683,  129,   94,
+       87,  108, 2103, 2040,   50, 2711, 2711, 2711,  129,   94,
        70,  104,  122,   90,   92,  115,  126,   95,   84,  132,
-      135,  138,   50,  142,  148,  156,  169,  164,  179, 2493,
-     2683, 2683, 2683,   70, 2371, 2683, 2683, 2683,   42, 2326,
-     1987, 2683, 2683, 2683,  197, 1681, 2683, 2683, 2683,  154,
-     1191, 2683,  201, 2683,  205,  111, 1082,  211,  120,    0,
+      135,  138,   50,  142,  148,  156,  169,  164,  179, 2006,
+     2711, 2711, 2711,   70, 1888, 2711, 2711, 2711,   42, 1877,
+     1853, 2711, 2711, 2711,  197, 1667, 2711, 2711, 2711,  154,
+     1249, 2711,  201, 2711,  205,  111, 1027,  211,  120,    0,
       222,    0,    0,  103,  158,  165,  149,  155,  168,  206,
-      207,  198,  217,  209,  204,  208,  215,  177,  136,  227,
-      228,  219,  232,  236,  235,  240,  245,  229,  246,  247,
-
-      250,  251,  254,  256,  258,  262,  259,  263,  266,  269,
-      267,  276,  268,  271,  273,   49,  280,  281,  283,  853,
-      297,  751,  301,  603,  311,  572,  360,  299,  298,  315,
-      319,    0,  296,  312,  320,  314,  316,  318,  321,  327,
-      323,  330,  342,  331,  326,  334,  335,  336,  338,  347,
-      337,  353,  348,  344,  350,  355,  359,  372,  369,  367,
-      357,  379,  377,  385,  386,  383,  387,  384,  388,  389,
-      391,  392,  395,  396,  397,  398,  405,  402,  406,  403,
-      414,  412,  420,  418,  428,  424,  425,  427,  430,  434,
-      435,  432,  433,  441,  439,  444,  452,  448,  450,  454,
-
-      455,  458,  461,  460,  462,  466,  473,  469,  470,  472,
-      477,  475,  478,  479,  485,  481,  482,  483,  486,  492,
-      487,  504,  498,  508,  501,  502,  510,  513,  509,  515,
-      520,  522,  528,  524,  525,  526,  527,  531,  534,  537,
-      533,  536,  539,  540,  545,  546,  565,  551,  549,  553,
-      556,  555,  562,  576,  563,  572,  573,  569,  578,  585,
-      596,  586,  591,  595,  598,  597,  600,  601,  602,  605,
-      608,  610,  609,  620,  623,  622,  621,  624,  630,  638,
-      625,  632,  635,  639,  643,  634,  644, 2683,  649,  636,
-      651,  652,  642, 2683,  653,  656,  658,  660,  662,  668,
-
-      664,  666,  667,  669,  674,  675,  677,  697,  680,  678,
-      690,  681,  686,  683,  692,  689,  699,  702,  706,  707,
-      709,  710,  712,  715,  716,  726,  722,  718,  724,  728,
-      732,  733,  735,  738,  739,  743,  747,  753,  755,  757,
-      763,  740,  759,  762,  765,  767,  768,  749,  775,  772,
-      774,  778,  779,  787,  776,  789,  791,  793,  783,  794,
-      797,  805,  801,  803,  808,  810,  784,  804,  814,  813,
-      820,  827,  828,  812,  829,  835,  831,  836,  824,  837,
-      839,  840,  841,  843,  844,  846,  848,  854,  850,  856,
-      861,  862,  866,  851,  868,  871,  872,  873,  874,  883,
-
-      875,  884,  876,  886,  887,  894,  895,  889,  902, 2683,
-      901,  904,  898,  905,  906, 2683, 2683,  890, 2683, 2683,
-      909,  914,  915,  917,  922,  923,  925,  927,  930,  932,
-      935,  936,  938,  944,  946,  939,  947,  948,  950,  954,
-      955,  957,  961,  963,  964,  965,  968,  970,  972,  974,
-      975,  981,  977,  988,  984, 2683,  986,  987,  991,  993,
-      994, 2683,  995,  996,  998,  999, 1000, 1002, 1006, 1004,
-     1007, 1014, 1013, 1009, 1012, 1019, 1029, 1030, 1025, 1028,
-     1031, 1035, 1037, 1046, 1039, 1043, 1045, 1052, 1048, 1050,
-     1054, 1051, 1055, 1057, 1060, 1063, 1085, 1065, 1062, 1064,
-
-     1067, 1070, 1072, 1074, 1078, 1092, 1097, 1075, 1071, 1103,
-     1105, 1099, 1095, 1106, 1112, 1113, 2683, 1119, 1120, 1108,
-     1115, 1116, 1122, 1124, 1129, 1126, 1130, 1132, 1138, 2683,
-     1135, 1136, 1137, 1140, 1147, 1139, 1149, 1159, 2683, 1161,
-     1162, 1155, 1157, 1164, 1165, 1167, 1169, 1170, 1171, 1173,
-     1181, 1176, 1178, 1183, 1182, 1187, 1189, 1190, 1192, 1193,
-     1194, 1199, 1204, 1210, 1213, 1201, 1218, 1195, 1207, 1211,
-     1224, 1219, 1222, 1225, 1226, 2683,  174, 1227, 1228, 1229,
-     1235, 1238, 1234, 1232, 1236, 1240, 1242, 1247, 1253, 1248,
-     1254, 1255, 1256, 1259, 1258, 1261, 1267, 1268, 1269, 1270,
-
-     1271, 1272, 1273, 1274, 1279, 1278, 1286, 2683, 1292, 1285,
-     1281, 1288, 1296, 1305, 1297, 1302, 1312, 1313, 1315, 1316,
-     1317, 1319, 1309, 1322, 1330, 1331, 1327, 1329, 1328, 1334,
-     2683, 1335, 1336, 1338, 1341, 1343, 1349, 1347, 1348, 1350,
-     1353, 1359, 2683, 1303, 1360, 1354, 1364, 1367, 1369, 1371,
-     1378, 1370, 1374, 1372, 1381, 1382, 1383, 1384, 2683, 1393,
-     1397, 1394, 1401, 1395, 1398, 1402, 1406, 1403, 1385, 1412,
-     1409, 1410, 1414, 1415, 1411, 1418, 1419, 1421, 2683, 1425,
-     1422, 1427, 1428, 1434, 1426, 1435, 1436, 1438, 1441, 1447,
-     1440, 1451, 1442, 1453, 1450, 1460, 1461, 1464, 1463, 1466,
-
-     1472, 1478, 1474, 2683, 1477, 1465, 1480, 1486, 1488, 1483,
-     1489, 1490, 1491, 1498, 1492, 1494, 1495, 1496, 1503, 1500,
-     1501, 1504, 1507, 1506, 1518, 1519, 1520, 1523, 1524, 1526,
-     1525, 1532, 2683, 2683, 1533, 1534, 1541, 2683, 1543, 2683,
-     1547, 2683, 1548, 1549, 1537, 1539, 1553, 1544, 1555, 1556,
-     1560, 1557, 1562, 1563, 1565, 1566, 2683, 1568, 1569, 1574,
-     1570, 1572, 1577, 1578, 1582, 1593, 1581, 1585, 1589, 2683,
-     1591, 1594, 1600, 1607, 1604, 1598, 1606, 1608, 1609, 1610,
-     1612, 1621, 1613, 1611, 1615, 1622, 1623, 1624, 1626, 1632,
-     1630, 1631, 1634, 1638, 1640, 1645, 1643, 2683, 2683, 1649,
-
-     1641, 1646, 1652, 1656, 1658, 1660, 1668, 1665, 1666, 1671,
-     1672, 1673, 1674, 1676, 1677, 1679, 1680, 2683, 1688, 1682,
-     1696, 1697, 1706, 1689, 1704, 2683, 2683, 1685, 1692, 1708,
-     1709, 1711, 1712, 2683, 1714, 1715, 1716, 1717, 1718, 1720,
-     1710, 1724, 1732, 1735, 1725, 1736, 1743, 1740, 1741, 1744,
-     1746, 1754, 1742, 1756, 1762, 1747, 1758, 1760, 1764, 1761,
-     1766, 1770, 1772, 1771, 2683, 1778, 1775, 1784, 1776, 1783,
-     1785, 1792, 1788, 1789, 1790, 1791, 1794, 1796, 1797, 1798,
-     1804, 2683, 1803, 1805, 1806, 1808, 1814, 1818, 1816, 1821,
-     2683, 1822, 1830, 1826, 1828, 1832, 1829, 1836, 1833, 1839,
-
-     1838, 1841, 1843, 1850, 1844, 1848, 1851, 1852, 1863, 1862,
-     1869, 1870, 1867, 1876, 1873, 1874, 1875, 1877, 1886, 1882,
-     1888, 1880, 2683, 1890, 1895, 1897, 1899, 1884, 1900, 1898,
-     2683, 2683, 1891, 2683, 1908, 1901, 1912, 1913, 2683, 1911,
-     2683, 2683, 1914, 1923, 1915, 1916, 1924, 1930, 2683, 1927,
-     1925, 1935, 1931, 1937, 1938, 1939, 1933, 1940, 2683, 1941,
-     1942, 1943, 1947, 1953, 1955, 1957, 1958, 1962, 1965, 1966,
-     1959, 1968, 1974, 1973, 2683, 1972, 1975, 1980, 1981, 1985,
-     1982, 1986, 1987, 1996, 1998, 2683, 1992, 1990, 2000, 2683,
-     2002, 2683, 2006, 2004, 2009, 2014, 2011, 2022, 2007, 2015,
-
-     2023, 2017, 2025, 2027, 2683, 2683, 2031, 2033, 2036, 2034,
-     2038, 2041, 2039, 2042, 2044, 2048, 2683, 2049, 2050, 2051,
-     2052, 2053, 2683, 2056, 2057, 2058, 2062, 2065, 2077, 2079,
-     2068, 2083, 2085, 2061, 2087, 2089, 2090, 2683, 2091, 2093,
-     2094, 2098, 2099, 2095, 2100, 2104, 2107, 2102, 2111, 2683,
-     2115, 2108, 2118, 2116, 2112, 2122, 2123, 2126, 2128, 2130,
-     2129, 2131, 2132, 2138, 2059, 2683, 2136, 2683, 2137, 2142,
-     2150, 2151, 2683, 2147, 2153, 2683, 2154, 2158, 2167, 2155,
-     2161, 2169, 2170, 2171, 2172, 2173, 2174, 2182, 2178, 2683,
-     2180, 2181, 2187, 2183, 2683, 2683, 2188, 2683, 2683, 2198,
-
-     2683, 2683, 2194, 2201, 2683, 2203, 2683, 2209, 2205, 2192,
-     2190, 2210, 2683, 2214, 2683, 2683, 2211, 2217, 2207, 2218,
-     2225, 2227, 2229, 2220, 2222, 2230, 2231, 2233, 2234, 2236,
-     2237, 2238, 2239, 2244, 2241, 2247, 2248, 2250, 2251, 2253,
-     2683, 2249, 2262, 2683, 2269, 2270, 2258, 2260, 2271, 2272,
-     2274, 2276, 2282, 2280, 2281, 2283, 2683, 2285, 2683, 2683,
-     2286, 2284, 2291, 2292, 2294, 2683, 2297, 2298, 2302, 2309,
-     2683, 2683, 2683, 2310, 2299, 2305, 2313, 2315, 2316, 2683,
-     2319, 2322, 2323, 2325, 2330, 2332, 2338, 2336, 2342, 2683,
-     2339, 2337, 2683, 2343, 2345, 2347, 2348, 2350, 2352, 2683,
-
-     2353, 2354, 2360, 2355, 2363, 2366, 2365, 2683, 2367, 2368,
-     2683, 2378, 2683, 2683, 2369, 2379, 2382, 2384, 2387, 2375,
-     2388, 2395, 2392, 2394, 2683, 2683, 2397, 2683, 2683, 2396,
-     2399, 2400, 2404, 2401, 2406, 2408, 2409, 2412, 2410, 2683,
-     2413, 2683, 2414, 2423, 2420, 2418, 2683, 2425, 2426, 2429,
-     2683, 2683, 2431, 2439, 2433, 2683, 2441, 2443, 2437, 2444,
-     2448, 2449, 2445, 2450, 2455, 2457, 2451, 2453, 2465, 2466,
-     2683, 2468, 2460, 2470, 2474, 2476, 2478, 2479, 2481, 2483,
-     2484, 2486, 2487, 2683, 2488, 2489, 2499, 2504, 2508, 2490,
-     2510, 2683, 2511, 2683, 2514, 2500, 2683, 2683, 2515, 2517,
-
-     2519, 2683, 2520, 2683, 2518, 2522, 2526, 2683, 2683, 2683,
-     2528, 2683, 2529, 2683, 2532, 2534, 2683, 2535, 2537, 2540,
-     2683, 2542, 2683, 2544, 2683, 2545, 2546, 2683, 2683, 2683,
-     2683, 2548, 2550, 2555, 2551, 2683, 2556, 2558, 2559, 2562,
-     2683, 2683, 2591, 2598, 2605, 2612, 2619,   94, 2626, 2633,
-     2640, 2647, 2654, 2661, 2668, 2675
+      207,  198,  217,  209,  204,  208,  215,  177,  227,  228,
+      231,  219,  235,  236,  229,  241,  244,  245,  246,  247,
+
+      249,  250,  257,  256,  258,  264,  265,  266,  268,  271,
+      277,  273,  275,  279,  282,  269,   49,  283,  280,  286,
+      974,  302,  784,  308,  697,  314,  632,  362,  309,  174,
+      318,  322,    0,  315,  319,  325,  317,  321,  323,  326,
+      333,  330,  336,  347,  339,  334,  337,  327,  291,  343,
+      341,  344,  345,  352,  349,  358,  363,  369,  365,  376,
+      377,  374,  373,  380,  381,  389,  390,  388,  387,  391,
+      392,  396,  397,  399,  400,  401,  402,  403,  409,  407,
+      408,  412,  428,  413,  415,  430,  431,  433,  417,  434,
+      436,  442,  438,  439,  440,  441,  447,  445,  455,  451,
+
+      457,  459,  460,  461,  468,  465,  473,  466,  480,  469,
+      476,  477,  478,  481,  483,  484,  490,  492,  487,  486,
+      488,  493,  500,  504,  505,  510,  512,  502,  511,  518,
+      521,  523,  524,  517,  529,  535,  531,  533,  534,  536,
+      539,  543,  545,  541,  542,  544,  547,  553,  548,  573,
+      554,  557,  559,  565,  567,  570,  579,  571,  568,  578,
+      577,  581,  594,  603,  586,  596,  598,  602,  605,  604,
+      609,  610,  611,  613,  618,  615,  617,  630,  628,  631,
+      629,  637,  640,  632,  639,  643,  641,  646,  644,  650,
+      651, 2711,  656,  654,  658,  659,  660, 2711,  661,  662,
+
+      663,  664,  665,  679,  667,  670,  676,  678,  683,  684,
+      686,  706,  689,  687,  696,  690,  694,  698,  715,  702,
+      699,  704,  708,  713,  720,  721,  718,  724,  729,  731,
+      728,  734,  736,  742,  738,  743,  744,  745,  747,  754,
+      757,  751,  762,  764,  770,  758,  766,  768,  774,  773,
+      775,  767,  781,  778,  782,  785,  789,  791,  792,  795,
+      799,  800,  794,  804,  802,  808,  811,  810,  812,  814,
+      819,  813,  821,  822,  823,  828,  837,  834,  830,  838,
+      845,  846,  847,  842,  843,  850,  851,  853,  854,  852,
+      855,  859,  870,  858,  875,  862,  878,  864,  868,  872,
+
+      879,  884,  881,  890,  891,  882,  892,  893,  894,  898,
+      901,  905,  897,  906, 2711,  916,  910,  912,  913,  917,
+     2711, 2711,  919, 2711, 2711,  920,  922,  923,  931,  937,
+      933,  924,  925,  940,  935,  945,  946,  948,  953,  957,
+      951,  958,  959,  961,  964,  965,  968,  970,  980,  981,
+      982,  966,  978,  984,  987,  988,  989,  991,  994, 1000,
+      997, 2711,  998,  999, 1003, 1006, 1007, 2711, 1008, 1009,
+     1011, 1012, 1015, 1014, 1020, 1019, 1017, 1032, 1025, 1022,
+     1026, 1033, 1043, 1040, 1042, 1045, 1048, 1049, 1050, 1059,
+     1052, 1056, 1058, 1065, 1062, 1064, 1067, 1068, 1069, 1072,
+
+     1075, 1076, 1100, 1077, 1079, 1078, 1080, 1085, 1084, 1086,
+     1101, 1107, 1097, 1110, 1114, 1087, 1112, 1119, 1118, 1120,
+     1122, 1125, 2711, 1128, 1131, 1130, 1135, 1136, 1137, 1138,
+     1140, 1142, 1144, 1143, 1155, 2711, 1147, 1151, 1153, 1154,
+     1156, 1160, 1163, 1170, 1178, 2711, 1180, 1181, 1164, 1174,
+     1176, 1183, 1177, 1187, 1188, 1089, 1184, 1195, 1191, 1197,
+     1199, 1201, 1203, 1204, 1205, 1206, 1207, 1208, 1210, 1209,
+     1221, 1228, 1214, 1231, 1217, 1225, 1232, 1237, 1227, 1234,
+     1235, 1238, 2711,  141, 1241, 1242, 1240, 1251, 1252, 1248,
+     1250, 1256, 1261, 1258, 1259, 1268, 1262, 1269, 1271, 1265,
+
+     1272, 1275, 1279, 1281, 1282, 1285, 1286, 1287, 1288, 1289,
+     1293, 1295, 1291, 1292, 2711, 1308, 1302, 1296, 1305, 1312,
+     1319, 1313, 1315, 1327, 1320, 1323, 1329, 1330, 1332, 1333,
+     1335, 1336, 1342, 1344, 1340, 1343, 1346, 1348, 2711, 1352,
+     1350, 1351, 1353, 1357, 1358, 1361, 1363, 1368, 1371, 1373,
+     2711, 1374, 1378, 1379, 1385, 1380, 1387, 1389, 1391, 1382,
+     1392, 1388, 1399, 1395, 1401, 1403, 2711, 1411, 1414, 1412,
+     1420, 1416, 1405, 1408, 1422, 1418, 1423, 1431, 1427, 1428,
+     1432, 1429, 1433, 1434, 1436, 1435, 2711, 1442, 1439, 1443,
+     1440, 1444, 1449, 1451, 1452, 1456, 1457, 1463, 1460, 1467,
+
+     1466, 1476, 1464, 1468, 1474, 1480, 1483, 1485, 1492, 1493,
+     1494, 2711, 1491, 1484, 1497, 1506, 1500, 1502, 1503, 1507,
+     1508, 1509, 1517, 1510, 1511, 1513, 1518, 1514, 1519, 1520,
+     1523, 1526, 1534, 1536, 1539, 1525, 1542, 1546, 1543, 1544,
+     1555, 2711, 2711, 1552, 1553, 1561, 2711, 1559, 2711, 1563,
+     2711, 1565, 1566, 1560, 1569, 1571, 1570, 1573, 1577, 1578,
+     1574, 1580, 1582, 1581, 1583, 2711, 1584, 1587, 1589, 1592,
+     1593, 1595, 1603, 1599, 1611, 1598, 1607, 1608, 2711, 1617,
+     1609, 1616, 1625, 1623, 1610, 1626, 1627, 1630, 1629, 1631,
+     1633, 1637, 1638, 1639, 1640, 1641, 1646, 1644, 1648, 1649,
+
+     1650, 1651, 1653, 1654, 1662, 1663, 2711, 2711, 1665, 1673,
+     1675, 1666, 1677, 1678, 1681, 1683, 1689, 1688, 1685, 1691,
+     1694, 1695, 1696, 1698, 1699, 1701, 1702, 2711, 1708, 1706,
+     1715, 1707, 1719, 1718, 1723, 2711, 2711, 1722, 1725, 1711,
+     1727, 1728, 1733, 2711, 1734, 1735, 1736, 1737, 1740, 1743,
+     1747, 1748, 1750, 1753, 1756, 1757, 1760, 1759, 1758, 1766,
+     1762, 1765, 1773, 1775, 1783, 1777, 1780, 1781, 1785, 1786,
+     1788, 1790, 1796, 1792, 2711, 1802, 1793, 1805, 1779, 1808,
+     1809, 1817, 1813, 1794, 1803, 1815, 1816, 1819, 1820, 1821,
+     1824, 2711, 1829, 1831, 1826, 1833, 1834, 1828, 1847, 1836,
+
+     1839, 2711, 1845, 1856, 1849, 1852, 1858, 1860, 1861, 1853,
+     1863, 1864, 1866, 1868, 1867, 1871, 1880, 1872, 1875, 1890,
+     1892, 1899, 1900, 1884, 1902, 1901, 1903, 1904, 1886, 1910,
+     1906, 1914, 1908, 2711, 1912, 1918, 1922, 1919, 1924, 1926,
+     1927, 2711, 2711, 1923, 2711, 1930, 1933, 1934, 1937, 2711,
+     1939, 2711, 2711, 1940, 1949, 1941, 1947, 1950, 1956, 2711,
+     1953, 1945, 1961, 1957, 1959, 1963, 1964, 1966, 1967, 2711,
+     1968, 1970, 1974, 1977, 2711, 1969, 1980, 1982, 1984, 1988,
+     1991, 1993, 1985, 1994, 2000, 1997, 2711, 1999, 2001, 2005,
+     2007, 2011, 2010, 2013, 2009, 2024, 2025, 2711, 2026, 2016,
+
+     2017, 2711, 2028, 2711, 2031, 2027, 2032, 2043, 2035, 2046,
+     2038, 2047, 2048, 2049, 2055, 2050, 2711, 2711, 2056, 2060,
+     2063, 2061, 2066, 2068, 2067, 2069, 2070, 2075, 2711, 2076,
+     2078, 2077, 2079, 2080, 2711, 2084, 2085, 2086, 2089, 2092,
+     2104, 2106, 2095, 2110, 2112, 2107, 2114, 2116, 2117, 2711,
+     2118, 2120, 2121, 2125, 2127, 2081, 2128, 2132, 2130, 2122,
+     2135, 2711, 2138, 2139, 2142, 2144, 2146, 2147, 2149, 2150,
+     2151, 2154, 2155, 2157, 2160, 2161, 2164, 2711, 2162, 2711,
+     2167, 2177, 2180, 2183, 2711, 2171, 2173, 2711, 2187, 2188,
+     2195, 2196, 2198, 2203, 2199, 2189, 2206, 2191, 2207, 2213,
+
+     2214, 2711, 2181, 2216, 2215, 2217, 2711, 2711, 2224, 2711,
+     2711, 2227, 2711, 2711, 2228, 2230, 2711, 2232, 2711, 2239,
+     2235, 2222, 2218, 2237, 2711, 2244, 2711, 2711, 2241, 2245,
+     2248, 2249, 2251, 2253, 2256, 2257, 2258, 2259, 2260, 2261,
+     2263, 2265, 2266, 2179, 2267, 2268, 2270, 2274, 2277, 2279,
+     2280, 2290, 2711, 2278, 2291, 2711, 2298, 2293, 2286, 2282,
+     2299, 2303, 2304, 2306, 2312, 2309, 2308, 2310, 2711, 2313,
+     2711, 2711, 2311, 2315, 2321, 2314, 2316, 2711, 2326, 2322,
+     2336, 2338, 2711, 2711, 2711, 2339, 2328, 2333, 2343, 2344,
+     2345, 2711, 2346, 2347, 2351, 2354, 2358, 2360, 2367, 2364,
+
+     2366, 2711, 2368, 2370, 2711, 2371, 2372, 2375, 2377, 2378,
+     2380, 2711, 2376, 2381, 2388, 2383, 2391, 2393, 2394, 2711,
+     2396, 2397, 2711, 2403, 2711, 2711, 2398, 2406, 2408, 2413,
+     2415, 2404, 2409, 2421, 2420, 2424, 2711, 2711, 2425, 2711,
+     2711, 2417, 2426, 2427, 2429, 2432, 2433, 2435, 2437, 2440,
+     2439, 2711, 2441, 2711, 2442, 2451, 2443, 2445, 2711, 2452,
+     2453, 2456, 2711, 2711, 2457, 2466, 2464, 2711, 2469, 2468,
+     2470, 2471, 2476, 2478, 2472, 2479, 2482, 2480, 2458, 2483,
+     2492, 2494, 2711, 2496, 2493, 2497, 2501, 2504, 2505, 2506,
+     2507, 2509, 2510, 2512, 2514, 2711, 2515, 2516, 2526, 2531,
+
+     2535, 2523, 2537, 2711, 2538, 2711, 2541, 2542, 2711, 2711,
+     2543, 2545, 2548, 2711, 2549, 2711, 2532, 2556, 2546, 2711,
+     2711, 2711, 2558, 2711, 2559, 2711, 2561, 2562, 2711, 2564,
+     2566, 2568, 2711, 2570, 2711, 2572, 2711, 2573, 2574, 2711,
+     2711, 2711, 2711, 2576, 2578, 2584, 2579, 2711, 2581, 2586,
+     2587, 2590, 2711, 2711, 2619, 2626, 2633, 2640, 2647,   94,
+     2654, 2661, 2668, 2675, 2682, 2689, 2696, 2703
     } ;
 
-static yyconst flex_int16_t yy_def[1357] =
+static yyconst flex_int16_t yy_def[1369] =
     {   0,
-     1342,    1, 1343, 1343, 1344, 1344, 1345, 1345, 1346, 1346,
-     1347, 1347, 1342, 1348, 1342, 1342, 1342, 1342, 1349, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1350,
-     1342, 1342, 1342, 1350, 1351, 1342, 1342, 1342, 1351, 1352,
-     1342, 1342, 1342, 1342, 1352, 1353, 1342, 1342, 1342, 1353,
-     1354, 1342, 1355, 1342, 1354, 1354, 1348, 1348, 1342, 1356,
-     1349, 1356, 1349, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1350,
-     1350, 1351, 1351, 1352, 1352, 1342, 1353, 1353, 1354, 1354,
-     1355, 1355, 1354, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1354, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1354,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348,
-     1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1354, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1354, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1348, 1348, 1348, 1342, 1342, 1348, 1342, 1342,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348,
-     1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1354, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1342, 1354, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1342, 1342, 1348, 1348, 1348, 1342, 1348, 1342,
-     1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1342, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1342, 1342, 1348, 1348, 1348,
-     1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1342, 1342, 1348, 1342, 1348, 1348, 1348, 1348, 1342, 1348,
-     1342, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1342,
-     1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-
-     1348, 1348, 1348, 1348, 1342, 1342, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348,
-     1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1342, 1348, 1342, 1348, 1348,
-     1348, 1348, 1342, 1348, 1348, 1342, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1348, 1348, 1342, 1342, 1348, 1342, 1342, 1348,
-
-     1342, 1342, 1348, 1348, 1342, 1348, 1342, 1348, 1348, 1348,
-     1348, 1348, 1342, 1348, 1342, 1342, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1342, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1342, 1342,
-     1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348,
-     1342, 1342, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342, 1348, 1348,
-     1342, 1348, 1342, 1342, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1342, 1342, 1348, 1342, 1342, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1342,
-     1348, 1342, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348,
-     1342, 1342, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348, 1348, 1348,
-     1348, 1342, 1348, 1342, 1348, 1348, 1342, 1342, 1348, 1348,
-
-     1348, 1342, 1348, 1342, 1348, 1348, 1348, 1342, 1342, 1342,
-     1348, 1342, 1348, 1342, 1348, 1348, 1342, 1348, 1348, 1348,
-     1342, 1348, 1342, 1348, 1342, 1348, 1348, 1342, 1342, 1342,
-     1342, 1348, 1348, 1348, 1348, 1342, 1348, 1348, 1348, 1348,
-     1342,    0, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342, 1342, 1342, 1342, 1342
+     1354,    1, 1355, 1355, 1356, 1356, 1357, 1357, 1358, 1358,
+     1359, 1359, 1354, 1360, 1354, 1354, 1354, 1354, 1361, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1362,
+     1354, 1354, 1354, 1362, 1363, 1354, 1354, 1354, 1363, 1364,
+     1354, 1354, 1354, 1354, 1364, 1365, 1354, 1354, 1354, 1365,
+     1366, 1354, 1367, 1354, 1366, 1366, 1360, 1360, 1354, 1368,
+     1361, 1368, 1361, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1362, 1362, 1363, 1363, 1364, 1364, 1354, 1365, 1365, 1366,
+     1366, 1367, 1367, 1366, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1366, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1366, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1366, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1366,
+     1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360,
+     1354, 1354, 1360, 1354, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1366, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1354, 1366, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1354, 1360, 1360, 1360, 1354, 1360, 1354, 1360,
+     1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1360, 1360,
+     1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1354, 1360, 1354, 1360, 1360, 1360, 1360, 1354,
+     1360, 1354, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1354,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354,
+     1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360,
+
+     1360, 1354, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360,
+     1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1354,
+     1360, 1360, 1360, 1360, 1354, 1360, 1360, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1354, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1354,
+     1354, 1360, 1354, 1354, 1360, 1360, 1354, 1360, 1354, 1360,
+     1360, 1360, 1360, 1360, 1354, 1360, 1354, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1354, 1360, 1360, 1354, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360,
+     1354, 1354, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360,
+     1360, 1360, 1354, 1354, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+
+     1360, 1354, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354,
+     1360, 1360, 1354, 1360, 1354, 1354, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1354,
+     1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1354, 1360, 1354, 1360, 1360, 1360, 1360, 1354, 1360,
+     1360, 1360, 1354, 1354, 1360, 1360, 1360, 1354, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+     1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360,
+
+     1360, 1360, 1360, 1354, 1360, 1354, 1360, 1360, 1354, 1354,
+     1360, 1360, 1360, 1354, 1360, 1354, 1360, 1360, 1360, 1354,
+     1354, 1354, 1360, 1354, 1360, 1354, 1360, 1360, 1354, 1360,
+     1360, 1360, 1354, 1360, 1354, 1360, 1354, 1360, 1360, 1354,
+     1354, 1354, 1354, 1360, 1360, 1360, 1360, 1354, 1360, 1360,
+     1360, 1360, 1354,    0, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354
     } ;
 
-static yyconst flex_int16_t yy_nxt[2723] =
+static yyconst flex_int16_t yy_nxt[2751] =
     {   0,
        14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
        14,   18,   20,   21,   14,   22,   23,   24,   25,   14,
        26,   27,   28,   29,   30,   31,   32,   33,   34,   14,
        35,   36,   37,   38,   39,   14,   14,   14,   14,   41,
-       42,   43,   41,   42,   43,  122,   46,   47,  122,   44,
+       42,   43,   41,   42,   43,  123,   46,   47,  123,   44,
        48,   69,   44,   46,   47,   70,   49,   48,   57,   58,
        59,   68,   68,   49,   51,   52,   53,   54,   60,   18,
-       57,   58,   59,  120,  120,   55,   51,   52,   53,   54,
-       60,   18,   68,  101,  183,   74,   75,   55,   15,   16,
+       57,   58,   59,  121,  121,   55,   51,   52,   53,   54,
+       60,   18,   68,  102,  185,   74,   75,   55,   15,   16,
        17,   62,   63,   64,   67,   67,   68,   67,   67,   65,
 
        67,   93,   68,   76,   68,   67,   84,   68,   66,   15,
-       16,   17,   62,   63,   64,   68,   68,   77,  134,   86,
-       65,   69,   92,  130,   78,   70,   85,   68,   87,   66,
-       72,   79,   72,   72,   68,   72,   88,  133,   68,   80,
-       72,   73,   89,   81,   68,   90,   82,   68,   68,   83,
-       68,   98,   91,  150,   68,   99,   95,  127,  127,   94,
-       68,   68,   96,  102,  137,  106,   97,   68,   68,  103,
-       68,  100,  104,  109,  135,  107,   68,   68,  108,  105,
-       68,   68,  113,  110,  114,  138,  130,  111,  112,   68,
-      116,   68,  118,  149,  139,  117,  119,  136,  124,  115,
-
-      124,  124,   72,  124,   72,   72,  129,   72,  129,  129,
-       68,  129,   67,  132,   67,   67,   68,   67,   68,   68,
-       68,   68,   67,   72,  143,   72,   72,   68,   72,   68,
-      140,   68,  142,   72,   73,  145,  146,  141,  147,   68,
-       68,   68,  144,  152,   68,  148,  153,   68,   68,  156,
-      155,  158,   68,  151,  163,  159,  161,   68,   68,   68,
-      154,  160,   68,   68,  162,  164,   68,  167,   68,  157,
-       68,   68,  165,  169,   68,   68,  176,  170,   68,   68,
-       68,   68,  166,   68,  168,   68,  173,  172,   68,  178,
-      171,  177,   68,   68,  174,   68,  175,  184,  180,  181,
-
-      120,  120,  127,  127,  122,  185,  182,  122,  130,  179,
-      130,  187,  124,  186,  124,  124,  129,  124,  129,  129,
-       72,  129,   72,   72,   68,   72,   68,  189,   68,  188,
-       68,  132,   68,   68,  194,   68,  191,  196,   68,   68,
-      195,  190,   68,   68,  202,  192,   68,   68,   68,   68,
-       68,  204,  206,  193,   68,  207,   68,  203,  197,   68,
-       68,  213,   68,  198,  209,   68,  216,   68,  199,   68,
-      205,   68,  128,  208,  200,  201,  218,  210,  212,   68,
-      211,   68,  214,  215,   68,  217,  222,  219,  220,   68,
-      221,   68,  224,  225,  223,   68,   68,   68,   68,   68,
-
-       68,   68,  226,   68,   68,  227,  229,   68,   68,   68,
-       68,  231,  238,  234,   68,   68,  228,   68,   68,  232,
-      240,  242,  241,  230,   68,  245,   68,  233,  236,  237,
-       68,  235,   68,  244,  239,  247,   68,  130,  248,   68,
-       68,  253,   68,  243,   68,   68,   68,   68,  246,  250,
-      252,   68,  254,   68,  258,  249,   68,  259,  251,  255,
-       68,  257,   68,  256,   68,  260,   68,   68,  266,  263,
-       68,  264,   68,   68,   68,  268,  261,  262,   68,  265,
-      270,   68,   68,  269,   68,   68,  267,   68,  275,   68,
-       68,   68,  278,   68,   68,   68,  279,   68,   68,   68,
-
-      272,  271,  274,  277,   68,  273,  280,  283,  276,  288,
-       68,  285,  281,   68,   68,  282,   68,  284,  286,  287,
-       68,   68,   68,  289,  294,   68,  295,   68,  296,  292,
-      290,  293,   68,  291,   68,  299,   68,   68,   68,   68,
-       68,  302,  301,   68,  308,   68,   68,  297,   68,   68,
-      309,   68,   68,  303,  298,  307,  300,   68,   68,  304,
-      313,   68,  305,   68,  306,  130,  312,   68,   68,  310,
-      324,  311,  315,  126,   68,   68,  314,   68,  323,  316,
-      317,   68,  327,  329,   68,   68,  325,  326,   68,  318,
-       68,  319,  320,  321,  328,  330,  322,   68,   68,  331,
-
-      332,  333,  335,   68,  334,  336,  337,   68,   68,   68,
-       68,  342,   68,   68,   68,  125,  343,   68,  338,  339,
-       68,   68,   68,  340,  341,  350,  346,  349,  345,  348,
-      352,  344,   68,   68,   68,   68,   68,   68,  354,  347,
-      353,  351,   68,  356,   68,  357,   68,   68,   68,  355,
-       68,   68,  361,  359,   68,   68,   68,  364,  358,  360,
-      362,   68,  365,   68,   68,   68,  369,  363,   68,  366,
-       68,  367,   68,  368,   68,  375,   68,  373,   68,   68,
-       68,   68,  374,  378,  372,  370,   68,   68,  371,   68,
-       68,  380,   68,   68,  376,   68,  379,  390,   68,  393,
-
-      377,   68,   68,  381,   68,  395,  389,  391,  382,   68,
-      383,   68,  388,  392,   68,  384,  396,  385,   68,   68,
-      394,   68,   68,  397,   68,  386,  401,   68,  130,  398,
-       68,  402,  405,  406,   68,  387,   68,  399,   68,  410,
-       68,  400,  404,  403,   68,   68,  407,   68,  408,  409,
-       68,   68,   68,  414,  416,   68,  411,  412,  417,   68,
-      418,   68,  413,  123,  415,   68,  419,   68,  420,   68,
-      421,   68,  425,  422,   68,   68,  423,   68,  424,   68,
-       68,  428,  429,  426,   68,  427,   68,   68,   68,  430,
-       68,   68,  435,  432,  436,   68,   68,  437,  433,   68,
-
-      431,   68,  434,   68,  438,   68,   68,  439,  442,   68,
-      441,  443,  445,   68,  450,   68,   68,   68,  447,  446,
-       68,  444,   68,  448,   68,   68,   68,  449,  453,  440,
-      451,  452,   68,  458,  455,  457,   68,  454,  456,   68,
-       68,   68,  461,   68,  459,  463,  462,   68,   68,   68,
-      464,   68,   68,   68,  465,   68,   68,  469,   68,  460,
-       68,  474,   68,   68,  470,  121,   68,  466,   68,  476,
-      467,  471,  468,   68,   68,  473,  472,  477,   68,  478,
-       68,  475,  480,   68,   68,   68,   68,   68,   68,  483,
-      482,  485,  484,  481,  479,   68,   68,  489,   68,  130,
-
-      486,   68,   68,  488,  491,  487,   68,   68,  497,  492,
-       68,  493,  490,   68,   68,  495,   68,   68,   68,  502,
-      498,   68,  494,  496,  506,  500,   68,   68,  499,   68,
-      503,  505,  504,  501,   68,   68,  507,   68,  508,   68,
-      513,  509,   68,  517,   68,  516,  510,   68,   68,  519,
-       68,   68,  511,  512,  518,  514,   68,  521,   68,   68,
-       68,  522,   68,  526,  515,  520,   68,   68,  525,   68,
-      531,  523,  530,   68,  529,   68,   68,   68,  524,  532,
-       68,  527,   68,  533,   68,  528,   68,   68,  534,   68,
-      535,  537,  539,   68,  538,  541,   68,  540,   68,   68,
-
-       68,  543,  536,   68,  545,   68,   68,   68,   68,  547,
-       68,   68,   68,  544,   68,  542,   68,  548,   68,   68,
-      546,   68,  555,  554,   68,   68,   68,  560,  549,  550,
-      551,   68,  553,  552,  556,  558,  563,   68,  557,  559,
-       68,   68,   68,   68,  561,  562,  564,   68,  567,   68,
-      569,   68,  566,  570,  571,   68,  565,   68,   68,  574,
-       68,  576,   68,   68,   68,  577,  130,   68,  568,   68,
-      573,  579,   68,  572,   68,   68,   68,   68,  578,   68,
-      575,  588,   68,   68,   68,  595,   68,   68,  580,  582,
-       68,  590,  594,  591,   68,  602,  581,   68,  593,  589,
-
-      583,  601,  584,  592,   68,  596,  585,   68,  586,   68,
-      597,   68,  598,  587,  600,   68,  603,   68,   68,  605,
-       68,  606,  604,  608,   68,   68,  610,   68,   68,  609,
-      599,   68,   68,  614,   68,  611,   68,  607,   68,  612,
-      613,   68,   68,  615,   68,  621,  617,   68,   68,   68,
-       68,   68,   68,  620,  624,  616,  619,  625,  618,   68,
-      627,   68,  628,  623,  626,  622,  629,   68,  630,   68,
-      634,   68,  631,   68,   68,  632,   68,   68,  633,   68,
-      637,   68,   68,   68,  635,   68,  639,  640,   68,  641,
-       68,  642,  643,   68,   68,   68,  636,  644,  646,   68,
-
-      638,   68,   68,  130,   68,   68,   68,   68,  645,  651,
-      652,   68,  647,   68,  654,  650,   68,  656,  648,   68,
-      657,  649,   68,   68,  653,   68,  660,  655,  658,  659,
-       68,   68,  663,  661,   68,  662,   68,   68,   68,   68,
-       68,   68,  671,  665,   68,  672,   68,   68,   68,  664,
-       68,  673,   68,  668,   68,  669,  666,  676,  674,   68,
-       68,  670,  675,  667,  679,   68,   68,   68,   68,  677,
-       68,   68,  682,   68,  678,  681,  684,  686,  680,   68,
-       68,   68,   68,   68,   68,   68,   68,  683,  687,  685,
-       68,   68,  694,   68,  690,  688,  689,   68,   68,  698,
-
-       68,  700,  691,  693,   68,  692,  695,  697,   68,   68,
-      696,  699,  703,  702,   68,   68,  704,   68,  735,  707,
-      701,   68,  705,  706,   68,   68,  708,   68,   68,   68,
-      711,   68,  709,  710,   68,  713,  712,  715,  716,   68,
-       68,   68,   68,   68,  717,  718,   68,   68,   68,  719,
-       68,  724,  714,   68,  720,   68,  721,  723,  722,   68,
-       68,   68,   68,  725,  733,   68,   68,  727,  726,  729,
-      734,   68,   68,  730,  728,  738,   68,  736,  731,   68,
-      740,   68,   68,   68,   68,  737,   68,  732,  741,  742,
-       68,  744,  745,   68,   68,   68,   68,   68,  746,  739,
-
-      750,  748,  743,  749,  751,   68,   68,   68,  753,   68,
-       68,  752,  747,   68,   68,   68,  754,  757,   68,  760,
-      759,   68,   68,   68,   68,  756,   68,   68,  764,  755,
-       68,   68,  769,   68,   68,  758,  770,   68,   68,   68,
-       68,  761,  762,  765,  763,  773,   68,   68,   68,  767,
-       68,  776,   68,   68,   68,  766,  768,  772,  775,   68,
-      771,  783,   68,   68,  774,   68,  777,  779,  782,  778,
-      784,  781,   68,   68,  780,   68,   68,   68,   68,  791,
-      785,  786,  788,  790,   68,  792,   68,  793,  787,   68,
-       68,  795,   68,  797,  794,   68,  789,  798,   68,  799,
-
-       68,   68,   68,   68,   68,  804,   68,   68,   68,  803,
-       68,  796,   68,   68,  800,   68,   68,  812,   68,   68,
-      801,  802,  814,  805,  813,  806,  807,  808,  811,  809,
-       68,   68,   68,  810,  818,   68,   68,   68,   68,  822,
-      816,  819,  820,  815,   68,   68,   68,  824,  825,   68,
-      823,   68,  817,   68,  826,   68,   68,  821,  827,   68,
-       68,   68,  829,  828,  830,   68,  834,   68,   68,   68,
-      832,  833,   68,  836,   68,   68,  831,   68,   68,  839,
-       68,   68,   68,  841,   68,  838,   68,  844,  835,   68,
-       68,  837,  848,   68,   68,  843,  840,   68,  842,  849,
-
-      850,   68,  845,   68,  846,   68,   68,  853,  854,  847,
-       68,  852,   68,  851,  857,  856,   68,  858,   68,   68,
-       68,   68,   68,   68,   68,   68,  862,   68,  859,  864,
-      866,  855,  865,   68,   68,   68,   68,  860,   68,  873,
-      861,  867,   68,   68,   68,  863,   68,  868,  871,  870,
-       68,  872,   68,   68,  869,   68,  883,   68,   68,  878,
-      882,   68,  874,  875,   68,  877,  879,  876,   68,  880,
-       68,  881,   68,  885,  884,  890,  891,   68,   68,  887,
-       68,  889,  888,   68,   68,   68,   68,  886,   68,   68,
-      898,   68,   68,  128,   68,  901,  893,   68,  892,  895,
-
-       68,   68,  894,  903,   68,  909,  897,  899,   68,   68,
-      900,  896,  902,  905,  906,  904,   68,  910,   68,  907,
-       68,   68,   68,   68,   68,  908,   68,   68,   68,   68,
-       68,  916,   68,  917,  918,  919,   68,   68,  911,  913,
-      912,  920,  914,  923,   68,  921,  915,   68,   68,  925,
-      927,  922,   68,   68,   68,   68,   68,  931,   68,   68,
-      926,  924,  930,  933,  928,  932,   68,  934,   68,  935,
-       68,  929,   68,   68,   68,  939,   68,  941,   68,  943,
-      936,  942,   68,   68,   68,  945,  944,   68,   68,  937,
-       68,  947,  938,  940,  949,   68,   68,   68,  950,  951,
-
-       68,   68,   68,   68,   68,  946,   68,  959,   68,   68,
-       68,  961,  952,  948,  953,   68,   68,   68,   68,  954,
-       68,  955,  956,  957,  963,  965,   68,  958,   68,  966,
-       68,  968,  964,   68,   68,  960,  962,  972,   68,  971,
-       68,   68,   68,  975,   68,   68,  976,  974,   68,  970,
-       68,   68,  967,   68,  969,   68,   68,  977,  973,  986,
-       68,  982,   68,   68,   68,  978,  979,  984,  981,  980,
-      989,  983,  985,  990,   68,   68,  991,  993,  988,   68,
-      992,   68,   68,  995,  987,   68,   68,   68,   68,   68,
-      997,  994,   68, 1000,   68, 1002,   68,  996,   68,  998,
-
-       68, 1008,   68,   68, 1003, 1004, 1005,   68, 1006,   68,
-       68,   68,   68,   68,  999, 1011, 1001, 1007, 1009, 1010,
-       68, 1012, 1017,   68,   68,   68,   68,   68,   68, 1021,
-     1019, 1014, 1013, 1015, 1016,   68,   68,   68, 1022,   68,
-     1018, 1023,   68,   68, 1020,   68, 1024,   68, 1026,   68,
-       68,   68,   68,   68,   68,   68, 1034, 1025, 1033,   68,
-     1031, 1028, 1029, 1030, 1027,   68, 1038,   68, 1036,   68,
-       68,   68, 1032, 1035,   68, 1040, 1041,   68,   68, 1037,
-       68, 1046, 1042, 1043,   68,   68,   68,   68,  126, 1044,
-     1047, 1050,   68,   68,   68, 1039, 1054,   68,   68,   68,
-
-     1045, 1049,   68, 1048,   68, 1051, 1052, 1055,   68, 1053,
-       68, 1056,   68, 1057,   68, 1058,   68, 1059,   68,   68,
-     1062,   68, 1060,   68, 1063, 1066,   68,   68, 1061,   68,
-     1065, 1070, 1067, 1068,   68,   68, 1073,   68, 1069,   68,
-     1071, 1064, 1072,   68, 1076,   68,   68, 1074,   68, 1077,
-       68,   68, 1075,   68,   68, 1079,   68, 1080, 1078, 1082,
-       68,   68,   68,   68,   68,   68, 1081, 1090,   68,   68,
-       68,   68, 1091,   68,   68, 1130, 1088,   68, 1094, 1084,
-       68, 1086, 1083, 1092, 1087, 1085, 1089, 1093, 1095,   68,
-     1096,   68, 1100, 1097, 1098,   68, 1099,   68, 1101,   68,
-
-     1102,   68,   68,   68, 1105,   68,   68,   68, 1104, 1107,
-       68,   68,   68, 1109,   68, 1110,   68, 1111, 1113,   68,
-       68, 1103, 1115,   68,   68, 1106, 1116,   68,   68, 1108,
-       68, 1118, 1112, 1114,   68,   68, 1120, 1119,   68, 1121,
-       68,   68,   68,   68,   68, 1129, 1117, 1125,   68,   68,
-       68, 1123, 1127, 1128,   68, 1133, 1126, 1134, 1132,   68,
-     1122, 1124,   68,   68, 1135,   68,   68,   68, 1131, 1139,
-       68, 1142, 1136,   68, 1137, 1140, 1143, 1138, 1141,   68,
-     1144,   68,   68,   68,   68,   68,   68, 1145, 1147, 1150,
-       68, 1149,   68,   68,   68,   68, 1151, 1155, 1153,   68,
-
-       68, 1156,   68, 1146,   68, 1148,   68, 1154, 1152, 1157,
-       68, 1158, 1159,   68, 1160,   68, 1161,   68, 1162,   68,
-     1163,   68,   68,   68, 1164, 1166,   68, 1165, 1167,   68,
-       68, 1168,   68, 1169,   68, 1170, 1171,   68, 1172,   68,
-     1173,   68,   68,   68, 1174,   68,   68, 1180,   68,   68,
-       68,   68, 1175,   68, 1176, 1177,   68, 1178, 1181,   68,
-       68,   68,   68,   68, 1190,   68, 1179, 1188, 1189, 1184,
-       68, 1183,   68, 1186,   68, 1192, 1182, 1185, 1187, 1191,
-     1193,   68,   68,   68,   68, 1195,   68, 1200,   68, 1201,
-     1196, 1194,   68,   68,   68,   68,   68,   68,   68, 1207,
-
-     1198, 1197, 1208,   68,   68, 1199,   68, 1202, 1211,   68,
-       68,   68, 1203, 1213,   68, 1204, 1205,   68, 1206, 1209,
-     1214,   68,   68, 1215, 1210,   68, 1217,   68,   68, 1212,
-     1218,   68, 1219, 1216,   68,   68, 1220,   68,  125, 1222,
-     1223, 1225,   68, 1226,   68, 1227, 1221, 1228,   68,   68,
-       68,   68, 1224, 1229,   68,   68, 1230,   68, 1232,   68,
-       68, 1231,   68, 1236,   68,   68,   68,   68, 1234, 1235,
-     1233, 1240,   68, 1237, 1242,   68, 1241,   68,   68,   68,
-       68,   68, 1244,  123, 1238, 1239, 1243,   68, 1245, 1247,
-       68,   68, 1249, 1246,   68, 1251,   68, 1250, 1252,   68,
-
-       68, 1248, 1255, 1256,   68, 1253,   68,   68,   68,   68,
-     1257,   68,   68,   68, 1254, 1258,   68, 1262,   68, 1260,
-       68,   68,   68, 1264,   68,   68,   68, 1259, 1269, 1263,
-       68, 1261,   68, 1267, 1271,   68, 1272,   68,   68, 1273,
-     1265,   68, 1268,   68, 1270,   68, 1274, 1266, 1277,   68,
-     1275,   68, 1278,   68, 1279,   68,   68,   68, 1280, 1284,
-       68,   68,   68,   68, 1281,   68, 1276,   68, 1282,   68,
-     1285, 1283,   68, 1286, 1289, 1288, 1292,   68,   68, 1294,
-       68, 1287,   68, 1293, 1291, 1297,   68, 1298,   68, 1290,
-       68,   68, 1295,   68, 1302,   68,   68, 1304,   68,   68,
-
-       68,   68,   68, 1300, 1296,  121, 1307, 1311, 1303, 1299,
-     1308,   68,   68, 1301, 1306, 1309,   68, 1315, 1305, 1310,
-       68, 1312,   68,   68, 1313, 1314,   68,   68, 1317,   68,
-       68,   68,   68, 1321,   68, 1316, 1318, 1319,   68, 1323,
-       68,   68, 1322, 1325,   68, 1324,   68,   68, 1328,   68,
-     1320, 1329,   68, 1330,   68, 1331,   68,   68,   68, 1333,
-       68, 1326,   68,   68, 1334, 1327, 1336,   68,   68, 1332,
-       68,   68, 1337, 1341,   68,   68, 1342, 1342, 1342, 1342,
-     1342, 1342, 1335, 1338, 1339, 1342, 1342, 1342, 1342, 1342,
-     1340,   40,   40,   40,   40,   40,   40,   40,   45,   45,
-
-       45,   45,   45,   45,   45,   50,   50,   50,   50,   50,
-       50,   50,   56,   56,   56,   56,   56,   56,   56,   61,
-       61,   61,   61,   61,   61,   61,   71,   71, 1342,   71,
-       71,   71,   71,  120,  120, 1342, 1342, 1342,  120,  120,
-      122,  122, 1342, 1342,  122, 1342,  122,  124, 1342, 1342,
-     1342, 1342, 1342,  124,  127,  127, 1342, 1342, 1342,  127,
-      127,  129, 1342, 1342, 1342, 1342, 1342,  129,  131,  131,
-     1342,  131,  131,  131,  131,   72,   72, 1342,   72,   72,
-       72,   72,   13, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-
-     1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342
+       16,   17,   62,   63,   64,   68,   68,   77,  135,   86,
+       65,   69,   92,  131,   78,   70,   85,   68,   87,   66,
+       72,   79,   72,   72,   68,   72,   88,  134,   68,   80,
+       72,   73,   89,   81,   68,   90,   82,   68,   95,   83,
+       68,   99,   91,  131,   68,  100,   96,  128,  128,   94,
+       68,   68,   97,  103,  138,  107,   98,   68,   68,  104,
+       68,  101,  105,  110,  136,  108,   68,   68,  109,  106,
+       68,   68,  114,  111,  115,  139,  131,  112,  113,   68,
+      117,   68,  119,  150,  140,  118,  120,  137,  125,  116,
+
+      125,  125,   72,  125,   72,   72,  130,   72,  130,  130,
+       68,  130,   67,  133,   67,   67,   68,   67,   68,   68,
+       68,   68,   67,   72,  144,   72,   72,   68,   72,   68,
+      141,   68,  143,   72,   73,  146,  147,  142,  148,   68,
+       68,   68,  145,   68,  151,  149,  153,   68,   68,  154,
+      156,  159,  157,   68,  152,  160,   68,   68,   68,   68,
+      163,   68,   68,  155,  164,  161,  166,  162,   68,   68,
+       68,  165,  158,  169,  167,  171,   68,   68,   68,  172,
+       68,   68,  168,   68,  178,   68,  170,   68,  180,   68,
+      174,   68,   68,  175,   68,   68,  173,  179,   68,  176,
+
+      186,  177,  184,   68,  187,  121,  121,  208,  181,  182,
+      183,  123,  128,  128,  123,  125,  188,  125,  125,  130,
+      125,  130,  130,   72,  130,   72,   72,  131,   72,   68,
+      189,   68,  191,   68,  133,   68,  190,   68,   68,   68,
+      196,  193,   68,  198,  192,   68,   68,  197,   68,   68,
+      194,   68,  204,   68,  206,   68,   68,   68,  195,   68,
+      209,   68,  207,  199,   68,  205,  215,  210,  200,  212,
+       68,  211,  213,  201,  129,   68,  218,   68,  219,  202,
+      203,   68,  214,  220,  222,   68,   68,  225,   68,   68,
+      216,  217,   68,   68,  221,  223,  227,  228,  226,   68,
+
+       68,   68,   68,   68,   68,  230,  224,  229,   68,   68,
+      232,   68,   68,   68,   68,   68,  241,  234,  237,   68,
+       68,   68,  243,  231,   68,   68,  235,   68,  247,  131,
+      233,  244,  236,  239,  240,  245,  238,  248,  250,  242,
+       68,  253,   68,   68,  246,   68,   68,  251,   68,  256,
+       68,   68,   68,   68,   68,  257,  255,   68,  262,   68,
+      249,  260,  261,   68,  252,  254,  258,   68,  263,   68,
+      259,   68,   68,   68,  266,  269,  267,   68,   68,  264,
+       68,   68,  268,  272,  265,   68,  271,  273,   68,   68,
+       68,  270,   68,   68,  278,   68,   68,  281,   68,   68,
+
+       68,  274,   68,  277,   68,   68,  275,  282,  280,  286,
+      276,  283,   68,  279,   68,  284,   68,   68,  285,  290,
+      291,  292,   68,   68,   68,  288,  287,  293,  289,   68,
+       68,  294,  298,   68,  295,   68,   68,  300,  296,  297,
+      299,   68,  303,   68,  301,   68,   68,   68,   68,  306,
+      305,   68,  312,   68,   68,   68,   68,   68,  313,   68,
+       68,  302,  307,  304,  311,   68,   68,  308,  317,   68,
+      309,  131,  310,  316,  319,  314,  315,   68,  328,   68,
+       68,  327,   68,   68,  318,   68,  333,  320,  321,   68,
+       68,   68,  329,   68,  331,  335,  330,  322,   68,  323,
+
+      324,  325,  332,  334,  326,  336,   68,  338,   68,  337,
+       68,  339,  340,  341,   68,   68,   68,   68,  342,  346,
+      347,   68,   68,   68,  343,   68,  344,   68,  345,   68,
+       68,  354,  350,  127,  352,  353,  349,  356,  355,  348,
+       68,   68,   68,   68,   68,  351,  357,  361,  358,   68,
+      360,   68,   68,   68,  359,   68,   68,  365,   68,  366,
+      363,  367,   68,   68,  369,  362,   68,  364,   68,  370,
+       68,   68,   68,   68,   68,   68,   68,   68,  372,   68,
+      373,  378,   68,  368,  374,  379,  380,  371,   68,  377,
+       68,   68,  383,  375,  376,   68,   68,  381,   68,   68,
+
+      385,   68,   68,  395,  382,  384,   68,  398,   68,  126,
+       68,   68,  386,  396,   68,  394,   68,  387,   68,  388,
+       68,  393,  397,  402,  389,   68,  390,   68,  400,  401,
+       68,  403,   68,   68,  391,  399,   68,  406,  411,  404,
+       68,  131,  407,   68,  392,  410,   68,  405,   68,  408,
+       68,  409,  412,  415,   68,   68,   68,   68,  423,   68,
+      419,  414,  416,   68,  413,  421,   68,  417,  422,   68,
+       68,  418,  420,  424,   68,  425,   68,  426,   68,   68,
+       68,  430,   68,  428,  429,   68,   68,   68,  434,  431,
+       68,  427,  432,   68,   68,  435,  124,   68,  441,  433,
+
+      437,   68,  440,   68,   68,  438,   68,   68,  436,  439,
+      443,   68,   68,  442,   68,  444,   68,  446,  451,  447,
+       68,  448,   68,   68,   68,   68,   68,  453,  452,  454,
+      449,   68,  450,   68,   68,   68,  455,  445,  459,  458,
+       68,  463,   68,  456,  461,  460,   68,  457,  462,   68,
+       68,  464,  467,  465,   68,   68,  468,   68,   68,   68,
+      469,  470,   68,   68,   68,   68,   68,   68,  466,  475,
+       68,   68,  471,  472,   68,  476,   68,  480,  483,  477,
+       68,  473,   68,  474,   68,  478,  479,   68,  482,  481,
+       68,   68,  485,   68,   68,  484,   68,  487,  488,  486,
+
+      490,  489,   68,   68,   68,   68,   68,  491,  492,   68,
+      131,  494,  493,   68,  495,  497,  498,   68,   68,  501,
+      496,  499,   68,  503,   68,   68,  504,  502,   68,   68,
+      500,   68,   68,  506,   68,   68,   68,   68,  512,  511,
+      510,  509,  505,   68,  507,   68,  523,   68,  508,   68,
+      519,  513,   68,  514,  520,  522,  515,   68,   68,  525,
+       68,  516,  521,   68,  524,   68,  527,  517,  518,   68,
+       68,   68,  528,   68,  532,  526,   68,   68,   68,  531,
+       68,  536,   68,  529,  540,  535,  122,  537,  538,  530,
+       68,  533,   68,   68,   68,  534,   68,  539,  541,   68,
+
+       68,   68,  546,   68,  542,  544,   68,  548,  545,   68,
+       68,   68,   68,  550,  547,   68,  552,  543,   68,   68,
+       68,   68,  554,   68,   68,  551,   68,   68,  549,   68,
+      555,   68,   68,  553,   68,  561,  562,   68,   68,   68,
+      567,  556,  557,  558,   68,   68,  559,  560,  564,  563,
+      570,  566,   68,  565,   68,   68,  571,   68,  568,  569,
+       68,   68,   68,  576,   68,  574,  577,  578,   68,  573,
+       68,   68,  581,  572,   68,  583,   68,   68,  584,  131,
+       68,   68,  575,  580,   68,  586,  579,   68,   68,   68,
+       68,   68,   68,  595,  582,  585,   68,   68,   68,   68,
+
+      610,   68,  589,  587,  601,  597,  598,  649,  602,   68,
+      600,  588,   68,   68,  607,  590,  596,  591,  599,   68,
+      603,  592,   68,  593,   68,  604,   68,  605,  594,  611,
+       68,   68,   68,  615,   68,  617,  608,   68,  609,  612,
+       68,  616,   68,   68,  613,  606,  618,   68,   68,   68,
+       68,  614,   68,  621,   68,   68,   68,  624,  622,   68,
+      620,  619,  628,   68,  627,   68,   68,   68,   68,  623,
+      626,  632,   68,  633,  625,   68,   68,  634,  629,  642,
+      631,  630,   68,  636,  635,  637,   68,  638,   68,   68,
+       68,  639,   68,   68,  640,   68,   68,  641,  645,   68,
+
+       68,  643,  650,   68,  647,  648,  651,   68,  644,   68,
+      646,   68,  652,   68,  654,   68,   68,   68,   68,   68,
+       68,   68,   68,  659,  660,  662,   68,  653,  664,   68,
+      658,  655,  663,   68,  656,  665,  657,   68,  661,   68,
+       68,  666,  667,   68,   68,  671,   68,   68,  668,   68,
+       68,  669,   68,   68,   68,  673,  670,  672,  679,  680,
+       68,  131,   68,   68,   68,  681,  674,  676,   68,  677,
+       68,   68,  678,   68,   68,  675,  682,   68,  684,  687,
+       68,   68,  683,   68,   68,  685,  686,   68,  690,  692,
+      689,   68,  688,   68,   68,  694,  691,   68,   68,   68,
+
+       68,   68,  695,   68,   68,   68,  693,   68,   68,  696,
+      698,  702,  697,  705,   68,  706,  708,   68,  699,  701,
+       68,  700,  703,  704,   68,   68,  711,   68,  707,  710,
+      712,   68,   68,  716,  715,   68,  714,  709,  713,   68,
+      717,   68,   68,  719,   68,   68,  718,   68,   68,  724,
+      721,  725,   68,  720,   68,   68,   68,  726,   68,  727,
+       68,  722,   68,   68,   68,   68,  723,  728,  733,   68,
+       68,  732,  729,   68,  730,   68,  731,  734,  738,  736,
+       68,  735,  742,   68,  743,   68,   68,  739,  737,  744,
+       68,   68,   68,  740,   68,  745,  747,   68,  749,   68,
+
+       68,   68,  751,   68,   68,  741,  750,   68,  754,  753,
+      746,   68,  748,   68,  752,   68,  755,   68,  759,  757,
+       68,  760,  758,   68,   68,  756,   68,  762,   68,  761,
+       68,  765,   68,  766,   68,   68,  764,  763,  769,   68,
+       68,   68,  773,   68,   68,   68,   68,   68,   68,  778,
+      767,   68,   68,  779,   68,   68,   68,  782,  768,  770,
+      771,   68,  772,   68,   68,  774,  776,  785,   68,   68,
+      777,  775,   68,  781,  783,   68,   68,  780,   68,   68,
+       68,  784,  786,  788,  791,  792,   68,  787,   68,  795,
+      789,  790,   68,  793,  794,   68,   68,   68,  797,  800,
+
+      801,  796,  799,   68,   68,   68,   68,  802,  803,   68,
+      804,  808,   68,  806,   68,   68,  798,  807,   68,   68,
+       68,   68,   68,   68,  814,   68,   68,  813,  805,   68,
+       68,   68,   68,  809,  810,   68,  822,   68,   68,  812,
+      819,  815,  816,  823,  817,  811,   68,  821,   68,  818,
+      824,   68,  820,  828,   68,   68,   68,  827,   68,  830,
+      826,  825,  832,  829,   68,   68,  834,   68,  835,  833,
+      836,   68,   68,   68,  837,   68,  831,   68,   68,  839,
+      838,   68,   68,   68,  844,   68,   68,  840,  842,   68,
+       68,  846,   68,   68,   68,   68,   68,  843,  849,   68,
+
+      851,   68,  854,  848,   68,   68,  841,   68,  847,  845,
+       68,   68,  850,  853,  852,   68,  859,  858,  860,   68,
+       68,   68,   68,   68,  855,  856,  863,  857,   68,   68,
+      861,  866,  867,  862,  864,   68,  868,   68,   68,   68,
+      869,   68,   68,   68,  875,   68,  865,  872,  874,   68,
+       68,   68,   68,   68,  876,  883,   68,  870,   68,  871,
+       68,   68,   68,   68,  873,   68,   68,  880,  877,  882,
+      881,  878,  879,  888,   68,   68,  892,   68,   68,  129,
+      887,  884,  885,  889,  886,   68,  890,   68,  893,   68,
+       68,  891,  894,   68,  895,   68,  901,   68,  896,  902,
+
+       68,   68,  898,   68,  900,  899,   68,   68,   68,  897,
+       68,   68,  909,   68,   68,  912,  904,  903,   68,   68,
+       68,  906,  914,   68,  905,  915,  916,   68,  908,  910,
+       68,   68,  911,  907,   68,   68,  913,   68,  918,   68,
+       68,  922,  920,  917,  919,   68,   68,   68,   68,   68,
+      921,  927,   68,  928,  929,   68,  924,  930,  923,   68,
+       68,  934,   68,  925,  931,   68,  926,  938,   68,   68,
+       68,   68,   68,  942,   68,  933,  943,   68,   68,  935,
+      936,  937,  932,  939,  941,   68,  945,   68,  940,   68,
+      946,   68,   68,   68,  944,   68,  950,   68,   68,  952,
+
+       68,  953,   68,  954,   68,   68,   68,  955,   68,  956,
+      947,  948,  958,  949,   68,   68,  959,   68,  951,  960,
+       68,   68,  961,  957,  962,   68,  966,   68,   68,   68,
+      970,   68,   68,   68,  972,  967,   68,  963,   68,  964,
+       68,   68,  975,   68,  965,   68,   68,  968,   68,  969,
+      974,   68,  977,  976,  127,  978,  973,   68,  971,   68,
+      980,   68,  983,  984,   68,   68,  979,  982,   68,  987,
+       68,  986,   68,   68,  981,   68,   68,  988,   68,   68,
+       68,  985,  989,   68,   68,  990,  994,   68,  995,  126,
+      991,  998,   68,  993,  996,  992,   68, 1001,   68,  997,
+
+      124, 1000,   68, 1002,   68,  999, 1003, 1005, 1006, 1007,
+     1004,   68,   68,   68,   68,   68,   68, 1012,   68, 1009,
+       68, 1014,   68, 1011,   68, 1008,   68, 1016, 1010, 1017,
+       68,   68, 1015, 1018,   68,   68,   68, 1019,   68,   68,
+     1013, 1020,   68, 1024, 1021,   68,   68, 1023, 1022,   68,
+     1029,   68,   68,   68, 1025, 1027, 1031,   68, 1028,   68,
+     1033,   68,   68, 1026, 1034,   68, 1030, 1035,   68,   68,
+     1032,   68, 1036,   68, 1038,   68,   68, 1037,   68,   68,
+       68,   68,   68, 1040, 1046, 1045,   68, 1041, 1042,   68,
+     1039, 1050,   68, 1043,   68, 1049,   68,   68, 1048, 1044,
+
+       68, 1052, 1053,   68, 1047,   68,   68, 1058, 1054,   68,
+     1055,   68,   68,   68, 1059, 1056, 1062,   68,  122,   68,
+     1051,   68,   68,   68, 1066,   68, 1057, 1061,   68,   68,
+     1060, 1063, 1064, 1068, 1067, 1065,   68,   68,   68,   68,
+       68, 1069, 1070,   68,   68, 1073, 1074,   68, 1072, 1075,
+       68, 1071,   68, 1077, 1078,   68, 1079, 1080,   68,   68,
+       68,   68,   68, 1082, 1076, 1083, 1085,   68,   68, 1081,
+     1086, 1088,   68,   68, 1084,   68, 1089, 1087,   68,   68,
+       68,   68,   68, 1091, 1092, 1090, 1094,   68,   68,   68,
+       68,   68,   68,   68, 1093, 1102,   68,   68,   68, 1121,
+
+     1103,   68, 1354, 1100,   68, 1106, 1096,   68, 1095, 1098,
+     1099, 1104, 1097, 1101, 1105, 1107,   68, 1108,   68,   68,
+     1109, 1110,   68, 1111,   68, 1113,   68, 1114,   68,   68,
+       68, 1117,   68,   68,   68, 1116, 1119,   68, 1112,   68,
+       68, 1125,   68, 1122,   68, 1123, 1127,   68, 1115, 1128,
+       68,   68, 1118, 1126,   68, 1130,   68, 1120,   68,   68,
+     1124,   68,   68,   68, 1133, 1131,   68,   68, 1141,   68,
+     1132, 1137,   68,   68,   68, 1135,   68, 1129, 1139,   68,
+     1142, 1140, 1138,   68, 1136,   68, 1134, 1146, 1144,   68,
+     1145,   68,   68,   68, 1143,   68, 1147, 1150, 1149,   68,
+
+       68,   68, 1151,   68, 1148, 1152, 1153,   68,   68, 1164,
+       68,   68, 1154, 1155, 1156,   68, 1157, 1194,   68,   68,
+     1162, 1158, 1159, 1160, 1161,   68,   68,   68,   68,   68,
+       68, 1167, 1163, 1165,   68, 1166,   68, 1168, 1169,   68,
+       68, 1171,   68, 1172,   68, 1170, 1173,   68, 1174,   68,
+     1175,   68, 1176,   68, 1177, 1178,   68,   68, 1179, 1180,
+       68,   68, 1183,   68, 1184,   68, 1182, 1185,   68,   68,
+       68,   68,   68,   68, 1181,   68, 1192,   68,   68,   68,
+       68, 1186,   68, 1188, 1189, 1190,   68, 1193, 1187,   68,
+       68,   68,   68, 1196,   68, 1191, 1200, 1201,   68, 1195,
+
+     1198, 1202,   68,   68, 1204,   68, 1197, 1199, 1203, 1205,
+       68,   68, 1208, 1207, 1206,   68,   68, 1212,   68, 1213,
+       68,   68,   68,   68,   68,   68,   68,   68,   68, 1209,
+     1219, 1210, 1220,   68,   68, 1211, 1214, 1223,   68, 1215,
+       68, 1221, 1216, 1218, 1217,   68, 1222, 1225,   68, 1226,
+       68,   68, 1227, 1224, 1229,   68,   68,   68,   68,   68,
+     1230, 1231, 1228,   68, 1234, 1232,   68, 1354, 1235, 1237,
+       68, 1238,   68, 1233, 1239, 1240,   68, 1241,   68,   68,
+       68, 1236,   68,   68,   68, 1242, 1244,   68,   68,   68,
+       68, 1248,   68,   68, 1243,   68, 1246, 1245, 1247, 1252,
+
+       68, 1249, 1254,   68, 1253,   68,   68, 1250,   68,   68,
+       68, 1256, 1251, 1255, 1259,   68,   68, 1257,   68, 1261,
+       68,   68, 1258, 1262, 1263,   68, 1264,   68, 1267,   68,
+     1260, 1268,   68,   68, 1265, 1266,   68,   68,   68,   68,
+     1269,   68, 1274, 1270,   68,   68, 1272,   68, 1271,   68,
+     1276,   68,   68,   68,   68,   68, 1281,   68, 1273, 1284,
+     1275, 1279, 1283,   68,   68,   68, 1285, 1277,   68,   68,
+       68, 1280, 1282, 1286, 1289, 1278,   68, 1287,   68, 1290,
+       68,   68,   68,   68,   68, 1291, 1292, 1296,   68, 1293,
+       68,   68,   68, 1288,   68,   68, 1302, 1301, 1295, 1297,
+
+     1298, 1294, 1300, 1304,   68,   68,   68, 1306,   68,   68,
+     1299, 1305, 1309,   68, 1303, 1310,   68,   68,   68,   68,
+     1314,   68,   68, 1316,   68, 1307,   68,   68,   68, 1354,
+     1312, 1308, 1354, 1319, 1315,   68, 1311, 1320,   68, 1313,
+     1323, 1318, 1321,   68,   68, 1317, 1322,   68, 1324,   68,
+       68, 1325, 1326,   68,   68,   68, 1329,   68,   68, 1327,
+       68,   68, 1334, 1328, 1332, 1330, 1331, 1333,   68, 1335,
+       68,   68, 1337,   68,   68, 1336,   68, 1340,   68, 1341,
+       68, 1342,   68, 1343,   68,   68,   68, 1345,   68, 1338,
+       68,   68, 1346,   68, 1339, 1348,   68, 1344,   68,   68,
+
+     1349, 1353,   68, 1354, 1354, 1354, 1354, 1354, 1350, 1354,
+     1347, 1354, 1351, 1354, 1354, 1354, 1354, 1354, 1352,   40,
+       40,   40,   40,   40,   40,   40,   45,   45,   45,   45,
+       45,   45,   45,   50,   50,   50,   50,   50,   50,   50,
+       56,   56,   56,   56,   56,   56,   56,   61,   61,   61,
+       61,   61,   61,   61,   71,   71, 1354,   71,   71,   71,
+       71,  121,  121, 1354, 1354, 1354,  121,  121,  123,  123,
+     1354, 1354,  123, 1354,  123,  125, 1354, 1354, 1354, 1354,
+     1354,  125,  128,  128, 1354, 1354, 1354,  128,  128,  130,
+     1354, 1354, 1354, 1354, 1354,  130,  132,  132, 1354,  132,
+
+      132,  132,  132,   72,   72, 1354,   72,   72,   72,   72,
+       13, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354
     } ;
 
-static yyconst flex_int16_t yy_chk[2723] =
+static yyconst flex_int16_t yy_chk[2751] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1182,300 +1187,302 @@ static yyconst flex_int16_t yy_chk[2723] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
         3,    3,    4,    4,    4,   49,    5,    5,   49,    3,
         5,   15,    4,    6,    6,   15,    5,    6,    9,    9,
-        9,  116,   33,    6,    7,    7,    7,    7,    9,    7,
+        9,  117,   33,    6,    7,    7,    7,    7,    9,    7,
        10,   10,   10,   44,   44,    7,    8,    8,    8,    8,
-       10,    8,   21,   33,  116,   21,   21,    8,   11,   11,
-       11,   11,   11,   11, 1348,   20,   29,   20,   20,   11,
+       10,    8,   21,   33,  117,   21,   21,    8,   11,   11,
+       11,   11,   11,   11, 1360,   20,   29,   20,   20,   11,
 
        20,   29,   24,   21,   25,   20,   24,   28,   11,   12,
        12,   12,   12,   12,   12,   74,   22,   22,   74,   25,
        12,   69,   28,   66,   22,   69,   24,   26,   26,   12,
        19,   22,   19,   19,   23,   19,   26,   66,   27,   23,
-       19,   19,   27,   23,   30,   27,   23,   31,   89,   23,
-       32,   32,   27,   89,   34,   32,   31,   60,   60,   30,
+       19,   19,   27,   23,   30,   27,   23,   31,   31,   23,
+       32,   32,   27,  584,   34,   32,   31,   60,   60,   30,
        35,   77,   31,   34,   77,   35,   31,   78,   36,   34,
        75,   32,   34,   36,   75,   35,   38,   76,   35,   34,
-       79,   37,   37,   36,   37,   78,  577,   36,   36,   88,
+       79,   37,   37,   36,   37,   78,  130,   36,   36,   88,
        38,   39,   39,   88,   79,   38,   39,   76,   55,   37,
 
        55,   55,   63,   55,   63,   63,   65,   63,   65,   65,
        82,   65,   68,   63,   68,   68,   85,   68,   80,   81,
        86,   84,   68,   71,   83,   71,   71,   87,   71,   83,
-       80,   92,   82,   71,   71,   84,   85,   81,   86,   90,
-       91,   98,   83,   91,   93,   87,   91,   95,   94,   93,
-       92,   94,   96,   90,   98,   94,   96,   97,   99,  100,
-       91,   95,  101,  102,   97,   99,  103,  102,  104,   93,
-      105,  107,  100,  104,  106,  108,  110,  104,  109,  111,
-      113,  110,  101,  114,  103,  115,  107,  106,  112,  112,
-      105,  111,  117,  118,  108,  119,  109,  117,  113,  114,
-
-      121,  121,  128,  128,  123,  118,  115,  123,  133,  112,
-      129,  133,  125,  119,  125,  125,  130,  125,  130,  130,
-      131,  130,  131,  131,  134,  131,  136,  135,  137,  134,
-      138,  131,  135,  139,  140,  141,  137,  142,  145,  140,
-      141,  136,  142,  144,  144,  138,  146,  147,  148,  151,
-      149,  146,  148,  139,  143,  149,  154,  145,  143,  150,
-      153,  154,  155,  143,  151,  152,  157,  156,  143,  161,
-      147,  157,  127,  150,  143,  143,  159,  152,  153,  160,
-      152,  159,  155,  156,  158,  158,  162,  159,  160,  163,
-      161,  162,  164,  165,  163,  166,  168,  164,  165,  167,
-
-      169,  170,  166,  171,  172,  167,  169,  173,  174,  175,
-      176,  171,  177,  174,  178,  180,  168,  177,  179,  172,
-      179,  181,  180,  170,  182,  184,  181,  173,  176,  176,
-      184,  175,  183,  183,  178,  185,  186,  187,  186,  188,
-      185,  190,  189,  182,  192,  193,  190,  191,  184,  187,
-      189,  195,  191,  194,  195,  186,  196,  196,  188,  192,
-      198,  194,  199,  193,  197,  197,  200,  201,  203,  200,
-      202,  201,  204,  203,  205,  205,  198,  199,  206,  202,
-      207,  208,  209,  206,  210,  207,  204,  212,  212,  211,
-      213,  214,  215,  216,  217,  218,  216,  215,  219,  221,
-
-      209,  208,  211,  214,  220,  210,  217,  219,  213,  223,
-      223,  221,  218,  225,  226,  218,  222,  220,  222,  222,
-      224,  229,  227,  224,  228,  228,  229,  230,  230,  226,
-      225,  227,  231,  225,  232,  233,  234,  235,  236,  237,
-      233,  236,  235,  238,  240,  241,  239,  231,  242,  240,
-      241,  243,  244,  237,  232,  239,  234,  245,  246,  238,
-      245,  249,  238,  248,  238,  250,  244,  252,  251,  242,
-      249,  243,  246,  126,  253,  255,  245,  247,  248,  247,
-      247,  258,  252,  254,  256,  257,  250,  251,  254,  247,
-      259,  247,  247,  247,  253,  255,  247,  260,  262,  256,
-
-      257,  258,  260,  263,  259,  261,  261,  264,  261,  266,
-      265,  266,  267,  268,  269,  124,  267,  270,  262,  263,
-      271,  273,  272,  264,  265,  273,  270,  272,  269,  271,
-      275,  268,  274,  277,  276,  275,  278,  281,  277,  270,
-      276,  274,  279,  279,  282,  280,  286,  283,  290,  278,
-      280,  284,  284,  282,  293,  285,  287,  287,  281,  283,
-      285,  289,  289,  291,  292,  295,  293,  286,  296,  290,
-      297,  291,  298,  292,  299,  300,  301,  298,  302,  303,
-      300,  304,  299,  303,  297,  295,  305,  306,  296,  307,
-      310,  305,  309,  312,  301,  314,  304,  311,  313,  313,
-
-      302,  316,  311,  306,  315,  315,  310,  311,  307,  308,
-      308,  317,  309,  312,  318,  308,  316,  308,  319,  320,
-      314,  321,  322,  317,  323,  308,  321,  324,  325,  318,
-      328,  322,  325,  326,  327,  308,  329,  319,  326,  330,
-      330,  320,  324,  323,  331,  332,  327,  333,  328,  329,
-      334,  335,  342,  334,  336,  336,  331,  332,  337,  337,
-      338,  348,  333,  122,  335,  338,  339,  339,  340,  340,
-      341,  343,  345,  342,  344,  341,  343,  345,  344,  346,
-      347,  348,  349,  346,  350,  347,  351,  349,  355,  350,
-      352,  353,  353,  352,  354,  359,  367,  355,  352,  354,
-
-      351,  356,  352,  357,  356,  358,  360,  357,  359,  361,
-      358,  360,  362,  363,  367,  364,  368,  362,  364,  363,
-      365,  361,  366,  365,  374,  370,  369,  366,  370,  357,
-      368,  369,  371,  374,  372,  373,  379,  371,  372,  372,
-      373,  375,  376,  377,  375,  377,  376,  376,  378,  380,
-      378,  381,  382,  383,  379,  384,  385,  383,  386,  375,
-      387,  388,  389,  394,  384,  120,  388,  380,  390,  390,
-      381,  385,  382,  391,  392,  387,  386,  391,  393,  392,
-      395,  389,  394,  396,  397,  398,  399,  401,  403,  397,
-      396,  399,  398,  395,  393,  400,  402,  403,  404,  405,
-
-      400,  408,  418,  402,  405,  401,  406,  407,  411,  406,
-      413,  407,  404,  411,  409,  409,  412,  414,  415,  418,
-      412,  421,  408,  409,  424,  414,  422,  423,  413,  424,
-      421,  423,  422,  415,  425,  426,  425,  427,  425,  428,
-      426,  425,  429,  430,  430,  429,  425,  431,  432,  432,
-      433,  436,  425,  425,  431,  427,  434,  434,  435,  437,
-      438,  435,  439,  439,  428,  433,  440,  441,  438,  442,
-      444,  436,  443,  443,  442,  444,  445,  446,  437,  445,
-      447,  440,  448,  446,  449,  441,  450,  451,  447,  453,
-      448,  450,  452,  452,  451,  454,  455,  453,  457,  458,
-
-      454,  457,  449,  459,  459,  460,  461,  463,  464,  461,
-      465,  466,  467,  458,  468,  455,  470,  461,  469,  471,
-      460,  474,  469,  468,  475,  473,  472,  474,  463,  464,
-      465,  476,  467,  466,  470,  472,  477,  479,  471,  473,
-      480,  477,  478,  481,  475,  476,  478,  482,  481,  483,
-      483,  485,  480,  484,  485,  486,  479,  487,  484,  488,
-      489,  490,  490,  492,  488,  491,  491,  493,  482,  494,
-      487,  493,  495,  486,  499,  496,  500,  498,  492,  501,
-      489,  498,  502,  509,  503,  505,  504,  508,  494,  496,
-      505,  500,  504,  501,   67,  509,  495,  497,  503,  499,
-
-      497,  508,  497,  502,  506,  506,  497,  513,  497,  507,
-      506,  512,  506,  497,  507,  510,  510,  511,  514,  512,
-      520,  513,  511,  515,  515,  516,  518,  521,  522,  516,
-      506,  518,  519,  522,  523,  519,  524,  514,  526,  520,
-      521,  525,  527,  523,  528,  529,  525,  531,  532,  533,
-      529,  536,  534,  528,  533,  524,  527,  534,  526,  535,
-      536,  537,  537,  532,  535,  531,  538,  542,  540,  543,
-      542,  538,  540,  540,  541,  541,  544,  545,  541,  546,
-      545,  547,  548,  549,  543,  550,  547,  548,  552,  549,
-      553,  550,  551,  551,  555,  554,  544,  552,  554,  556,
-
-      546,  557,  558,   61,  559,  560,  561,  568,  553,  559,
-      560,  562,  555,  566,  562,  558,  563,  564,  556,  569,
-      565,  557,  564,  570,  561,  565,  568,  563,  566,  567,
-      567,  572,  571,  569,  573,  570,  571,  574,  575,  578,
-      579,  580,  581,  573,  584,  582,  583,  581,  585,  572,
-      582,  583,  586,  578,  587,  579,  574,  586,  584,  588,
-      590,  580,  585,  575,  589,  589,  591,  592,  593,  587,
-      595,  594,  592,  596,  588,  591,  594,  596,  590,  597,
-      598,  599,  600,  601,  602,  603,  604,  593,  597,  595,
-      606,  605,  604,  611,  600,  598,  599,  610,  607,  609,
-
-      612,  611,  601,  603,  609,  602,  605,  607,  613,  615,
-      606,  610,  614,  613,  616,  644,  614,  614,  644,  617,
-      612,  623,  615,  616,  617,  618,  618,  619,  620,  621,
-      621,  622,  619,  620,  624,  623,  622,  625,  626,  627,
-      629,  628,  625,  626,  627,  628,  630,  632,  633,  629,
-      634,  632,  624,  635,  629,  636,  629,  630,  629,  638,
-      639,  637,  640,  633,  641,  641,  646,  635,  634,  637,
-      642,  642,  645,  638,  636,  647,  647,  645,  639,  648,
-      649,  649,  652,  650,  654,  646,  653,  640,  650,  651,
-      651,  653,  654,  655,  656,  657,  658,  669,  655,  648,
-
-      660,  657,  652,  658,  661,  660,  662,  664,  663,  661,
-      665,  662,  656,  663,  666,  668,  664,  667,  667,  670,
-      669,  671,  672,  675,  670,  666,  673,  674,  674,  665,
-      676,  677,  680,  678,  681,  668,  680,  680,  685,  682,
-      683,  671,  672,  675,  673,  683,  684,  686,  687,  677,
-      688,  686,  691,  689,  693,  676,  678,  682,  685,  690,
-      681,  693,  695,  692,  684,  694,  687,  689,  692,  688,
-      694,  691,  696,  697,  690,  699,  698,  706,  700,  701,
-      695,  696,  698,  700,  701,  702,  703,  703,  697,  705,
-      702,  706,  707,  708,  705,  710,  699,  708,  708,  709,
-
-      709,  711,  712,  713,  715,  714,  716,  717,  718,  713,
-      714,  707,  720,  721,  710,  719,  722,  722,  724,  723,
-      711,  712,  724,  715,  723,  716,  717,  718,  721,  719,
-      725,  726,  727,  720,  728,  728,  729,  731,  730,  732,
-      726,  729,  730,  725,  732,  735,  736,  736,  737,  745,
-      735,  746,  727,  737,  739,  739,  748,  731,  741,  741,
-      743,  744,  744,  743,  745,  747,  749,  749,  750,  752,
-      747,  748,  751,  751,  753,  754,  746,  755,  756,  754,
-      758,  759,  761,  756,  762,  753,  760,  760,  750,  763,
-      764,  752,  764,  767,  765,  759,  755,  768,  758,  765,
-
-      766,  769,  761,  771,  762,  766,  772,  769,  771,  763,
-      776,  768,  773,  767,  774,  773,  775,  775,  777,  774,
-      778,  779,  780,  784,  781,  783,  779,  785,  776,  781,
-      783,  772,  782,  782,  786,  787,  788,  777,  789,  790,
-      778,  784,  791,  792,  790,  780,  793,  785,  788,  787,
-      794,  789,  795,  801,  786,  797,  801,  796,  802,  795,
-      800,  800,  791,  792,  803,  794,  796,  793,  804,  796,
-      805,  797,  806,  803,  802,  807,  808,  808,  809,  805,
-      807,  806,  805,  810,  811,  812,  813,  804,  814,  815,
-      815,  816,  817,   56,  820,  819,  810,  828,  809,  812,
-
-      819,  824,  811,  821,  829,  828,  814,  816,  821,  822,
-      817,  813,  820,  823,  824,  822,  825,  829,  823,  825,
-      830,  831,  841,  832,  833,  825,  835,  836,  837,  838,
-      839,  836,  840,  837,  838,  839,  842,  845,  830,  832,
-      831,  840,  833,  843,  843,  841,  835,  844,  846,  845,
-      847,  842,  848,  849,  853,  847,  850,  851,  851,  856,
-      846,  844,  850,  853,  848,  852,  852,  854,  854,  855,
-      857,  849,  858,  860,  855,  859,  859,  861,  861,  863,
-      856,  862,  862,  864,  863,  866,  864,  867,  869,  857,
-      866,  868,  858,  860,  870,  870,  868,  871,  871,  872,
-
-      873,  874,  875,  876,  872,  867,  877,  878,  878,  879,
-      880,  880,  873,  869,  873,  883,  881,  884,  885,  873,
-      886,  874,  875,  876,  883,  885,  887,  877,  889,  886,
-      888,  888,  884,  890,  892,  879,  881,  893,  894,  892,
-      895,  897,  893,  896,  896,  899,  897,  895,  898,  890,
-      901,  900,  887,  902,  889,  903,  905,  898,  894,  906,
-      906,  903,  904,  907,  908,  899,  900,  905,  902,  901,
-      909,  904,  905,  910,  910,  909,  911,  912,  908,  913,
-      911,  911,  912,  914,  907,  915,  916,  917,  914,  918,
-      916,  913,  922,  919,  920,  921,  928,  915,  919,  917,
-
-      921,  928,  924,  933,  922,  924,  925,  925,  926,  926,
-      930,  927,  929,  936,  918,  933,  920,  927,  929,  930,
-      935,  935,  940,  940,  937,  938,  943,  945,  946,  946,
-      944,  936,  935,  937,  938,  944,  947,  951,  947,  950,
-      943,  948,  948,  953,  945,  957,  950,  952,  952,  954,
-      955,  956,  958,  960,  961,  962,  961,  951,  960,  963,
-      957,  954,  955,  956,  953,  964,  965,  965,  963,  966,
-      967,  971,  958,  962,  968,  967,  968,  969,  970,  964,
-      972,  973,  969,  970,  976,  974,  973,  977,   51,  971,
-      974,  978,  978,  979,  981,  966,  981,  980,  982,  983,
-
-      972,  977,  988,  976,  987,  979,  980,  982,  984,  980,
-      985,  983,  989,  984,  991,  985,  994,  987,  993,  999,
-      991,  995,  988,  997,  993,  996,  996, 1000,  989, 1002,
-      995, 1000,  997,  998,  998, 1001, 1003, 1003,  999, 1004,
-     1001,  994, 1002, 1007, 1008, 1008, 1010, 1004, 1009, 1009,
-     1011, 1013, 1007, 1012, 1014, 1011, 1015, 1012, 1010, 1014,
-     1016, 1018, 1019, 1020, 1021, 1022, 1013, 1024, 1024, 1025,
-     1026, 1065, 1025, 1034, 1027, 1065, 1021, 1028, 1028, 1016,
-     1031, 1019, 1015, 1026, 1020, 1018, 1022, 1027, 1029, 1029,
-     1030, 1030, 1034, 1031, 1032, 1032, 1033, 1033, 1035, 1035,
-
-     1036, 1036, 1037, 1039, 1040, 1040, 1041, 1044, 1039, 1042,
-     1042, 1043, 1045, 1044, 1048, 1045, 1046, 1046, 1047, 1047,
-     1052, 1037, 1049, 1049, 1055, 1041, 1051, 1051, 1054, 1043,
-     1053, 1053, 1046, 1048, 1056, 1057, 1055, 1054, 1058, 1056,
-     1059, 1061, 1060, 1062, 1063, 1064, 1052, 1060, 1067, 1069,
-     1064, 1058, 1062, 1063, 1070, 1070, 1061, 1071, 1069, 1074,
-     1057, 1059, 1071, 1072, 1072, 1075, 1077, 1080, 1067, 1077,
-     1078, 1080, 1072, 1081, 1074, 1078, 1081, 1075, 1079, 1079,
-     1082, 1082, 1083, 1084, 1085, 1086, 1087, 1083, 1085, 1088,
-     1089, 1087, 1091, 1092, 1088, 1094, 1089, 1094, 1092, 1093,
-
-     1097, 1097, 1111, 1084, 1110, 1086, 1103, 1093, 1091, 1100,
-     1100, 1103, 1104, 1104, 1106, 1106, 1108, 1109, 1109, 1119,
-     1110, 1108, 1112, 1117, 1111, 1114, 1114, 1112, 1117, 1118,
-     1120, 1118, 1124, 1119, 1125, 1120, 1121, 1121, 1122, 1122,
-     1123, 1123, 1126, 1127, 1124, 1128, 1129, 1130, 1130, 1131,
-     1132, 1133, 1125, 1135, 1126, 1127, 1134, 1128, 1131, 1136,
-     1137, 1142, 1138, 1139, 1140, 1140, 1129, 1138, 1139, 1134,
-     1147, 1133, 1148, 1136, 1143, 1143, 1132, 1135, 1137, 1142,
-     1145, 1145, 1146, 1149, 1150, 1147, 1151, 1152, 1152, 1153,
-     1148, 1146, 1154, 1155, 1153, 1156, 1162, 1158, 1161, 1162,
-
-     1150, 1149, 1163, 1163, 1164, 1151, 1165, 1154, 1167, 1167,
-     1168, 1175, 1155, 1169, 1169, 1156, 1158, 1176, 1161, 1164,
-     1170, 1170, 1174, 1174, 1165, 1177, 1176, 1178, 1179, 1168,
-     1177, 1181, 1178, 1175, 1182, 1183, 1179, 1184,   50, 1182,
-     1183, 1185, 1185, 1186, 1186, 1187, 1181, 1188, 1188, 1192,
-     1187, 1191, 1184, 1189, 1189, 1194, 1191, 1195, 1194, 1196,
-     1197, 1192, 1198, 1198, 1199, 1201, 1202, 1204, 1196, 1197,
-     1195, 1203, 1203, 1199, 1205, 1205, 1204, 1207, 1206, 1209,
-     1210, 1215, 1207,   45, 1201, 1202, 1206, 1220, 1209, 1212,
-     1212, 1216, 1216, 1210, 1217, 1218, 1218, 1217, 1219, 1219,
-
-     1221, 1215, 1222, 1223, 1223, 1220, 1224, 1222, 1230, 1227,
-     1224, 1231, 1232, 1234, 1221, 1227, 1233, 1233, 1235, 1231,
-     1236, 1237, 1239, 1235, 1238, 1241, 1243, 1230, 1241, 1234,
-     1246, 1232, 1245, 1238, 1244, 1244, 1245, 1248, 1249, 1246,
-     1236, 1250, 1239, 1253, 1243, 1255, 1248, 1237, 1253, 1259,
-     1249, 1254, 1254, 1257, 1255, 1258, 1260, 1263, 1257, 1261,
-     1261, 1262, 1264, 1267, 1258, 1268, 1250, 1265, 1259, 1266,
-     1262, 1260, 1273, 1263, 1266, 1265, 1269, 1269, 1270, 1272,
-     1272, 1264, 1274, 1270, 1268, 1275, 1275, 1276, 1276, 1267,
-     1277, 1278, 1273, 1279, 1280, 1280, 1281, 1282, 1282, 1283,
-
-     1285, 1286, 1290, 1278, 1274,   40, 1286, 1290, 1281, 1277,
-     1287, 1287, 1296, 1279, 1285, 1288, 1288, 1296, 1283, 1289,
-     1289, 1291, 1291, 1293, 1293, 1295, 1295, 1299, 1300, 1300,
-     1305, 1301, 1303, 1306, 1306, 1299, 1301, 1303, 1307, 1311,
-     1311, 1313, 1307, 1315, 1315, 1313, 1316, 1318, 1319, 1319,
-     1305, 1320, 1320, 1322, 1322, 1324, 1324, 1326, 1327, 1327,
-     1332, 1316, 1333, 1335, 1332, 1318, 1334, 1334, 1337, 1326,
-     1338, 1339, 1335, 1340, 1340,   14,   13,    0,    0,    0,
-        0,    0, 1333, 1337, 1338,    0,    0,    0,    0,    0,
-     1339, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1344, 1344,
-
-     1344, 1344, 1344, 1344, 1344, 1345, 1345, 1345, 1345, 1345,
-     1345, 1345, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347,
-     1347, 1347, 1347, 1347, 1347, 1347, 1349, 1349,    0, 1349,
-     1349, 1349, 1349, 1350, 1350,    0,    0,    0, 1350, 1350,
-     1351, 1351,    0,    0, 1351,    0, 1351, 1352,    0,    0,
-        0,    0,    0, 1352, 1353, 1353,    0,    0,    0, 1353,
-     1353, 1354,    0,    0,    0,    0,    0, 1354, 1355, 1355,
-        0, 1355, 1355, 1355, 1355, 1356, 1356,    0, 1356, 1356,
-     1356, 1356, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-
-     1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
-     1342, 1342
+       80,   92,   82,   71,   71,   84,   85,   81,   86,   89,
+       90,   95,   83,   91,   89,   87,   91,   93,   94,   91,
+       92,   94,   93,   96,   90,   94,   97,   98,   99,  100,
+       97,  101,  102,   91,   98,   95,  100,   96,  104,  103,
+      105,   99,   93,  103,  101,  105,  106,  107,  108,  105,
+      109,  116,  102,  110,  111,  112,  104,  113,  113,  111,
+      107,  114,  119,  108,  115,  118,  106,  112,  120,  109,
+
+      118,  110,  116,  149,  119,  122,  122,  149,  113,  114,
+      115,  124,  129,  129,  124,  126,  120,  126,  126,  131,
+      126,  131,  131,  132,  131,  132,  132,  134,  132,  137,
+      134,  135,  136,  138,  132,  139,  135,  136,  140,  148,
+      141,  138,  142,  143,  137,  141,  146,  142,  143,  147,
+      139,  145,  145,  151,  147,  150,  152,  153,  140,  144,
+      150,  155,  148,  144,  154,  146,  155,  151,  144,  153,
+      156,  152,  153,  144,  128,  157,  158,  159,  159,  144,
+      144,  158,  154,  160,  161,  163,  162,  164,  160,  161,
+      156,  157,  164,  165,  160,  162,  166,  167,  165,  169,
+
+      168,  166,  167,  170,  171,  169,  163,  168,  172,  173,
+      171,  174,  175,  176,  177,  178,  179,  173,  176,  180,
+      181,  179,  181,  170,  182,  184,  174,  185,  185,  189,
+      172,  182,  175,  178,  178,  183,  177,  186,  187,  180,
+      183,  189,  186,  187,  184,  188,  190,  188,  191,  192,
+      193,  194,  195,  196,  192,  193,  191,  198,  198,  197,
+      186,  196,  197,  200,  188,  190,  194,  199,  199,  201,
+      195,  202,  203,  204,  202,  205,  203,  206,  208,  200,
+      205,  210,  204,  208,  201,  207,  207,  209,  211,  212,
+      213,  206,  209,  214,  214,  215,  216,  217,  220,  219,
+
+      221,  210,  217,  213,  218,  222,  211,  218,  216,  221,
+      212,  219,  223,  215,  228,  220,  224,  225,  220,  225,
+      225,  226,  226,  229,  227,  223,  222,  227,  224,  234,
+      230,  228,  231,  231,  228,  232,  233,  233,  229,  230,
+      232,  235,  236,  237,  234,  238,  239,  236,  240,  239,
+      238,  241,  243,  244,  245,  242,  246,  243,  244,  247,
+      249,  235,  240,  237,  242,  248,  251,  241,  248,  252,
+      241,  253,  241,  247,  249,  245,  246,  254,  252,  255,
+      259,  251,  256,  258,  248,  250,  257,  250,  250,  261,
+      260,  257,  253,  262,  255,  259,  254,  250,  265,  250,
+
+      250,  250,  256,  258,  250,  260,  263,  262,  266,  261,
+      267,  263,  264,  264,  268,  264,  270,  269,  265,  269,
+      270,  271,  272,  273,  266,  274,  267,  276,  268,  277,
+      275,  276,  273,  127,  274,  275,  272,  278,  277,  271,
+      279,  281,  278,  280,  284,  273,  279,  283,  280,  282,
+      282,  285,  283,  287,  281,  286,  289,  287,  288,  288,
+      285,  289,  290,  291,  291,  284,  294,  286,  293,  293,
+      295,  296,  297,  299,  300,  301,  302,  303,  295,  305,
+      296,  302,  306,  290,  297,  303,  304,  294,  307,  301,
+      308,  304,  307,  299,  300,  309,  310,  305,  311,  314,
+
+      309,  313,  316,  315,  306,  308,  317,  317,  315,  125,
+      318,  321,  310,  315,  320,  314,  322,  311,  312,  312,
+      323,  313,  316,  321,  312,  324,  312,  319,  319,  320,
+      327,  322,  325,  326,  312,  318,  328,  325,  330,  323,
+      331,  329,  326,  330,  312,  329,  332,  324,  333,  327,
+      335,  328,  331,  334,  334,  336,  337,  338,  342,  339,
+      338,  333,  335,  342,  332,  340,  340,  336,  341,  341,
+      346,  337,  339,  343,  343,  344,  344,  345,  347,  352,
+      348,  349,  345,  347,  348,  350,  349,  351,  353,  350,
+      354,  346,  351,  353,  355,  354,  123,  356,  358,  352,
+
+      356,  357,  357,  358,  359,  356,  363,  360,  355,  356,
+      360,  361,  362,  359,  365,  361,  364,  362,  367,  363,
+      366,  364,  368,  367,  369,  372,  370,  369,  368,  370,
+      365,  371,  366,  373,  374,  375,  371,  361,  375,  374,
+      376,  378,  379,  372,  377,  376,  378,  373,  377,  377,
+      380,  379,  381,  380,  384,  385,  381,  381,  382,  383,
+      382,  383,  386,  387,  390,  388,  389,  391,  380,  388,
+      394,  392,  384,  385,  396,  389,  398,  393,  396,  390,
+      399,  386,  393,  387,  400,  391,  392,  395,  395,  394,
+      397,  401,  398,  403,  406,  397,  402,  400,  401,  399,
+
+      403,  402,  404,  405,  407,  408,  409,  404,  405,  413,
+      410,  407,  406,  411,  408,  410,  411,  412,  414,  414,
+      409,  412,  417,  416,  418,  419,  417,  414,  416,  420,
+      413,  423,  426,  419,  427,  428,  432,  433,  429,  428,
+      427,  426,  418,  429,  420,  431,  435,  435,  423,  430,
+      431,  430,  434,  430,  432,  434,  430,  436,  437,  437,
+      438,  430,  433,  441,  436,  439,  439,  430,  430,  440,
+      442,  443,  440,  444,  444,  438,  445,  446,  452,  443,
+      447,  448,  448,  441,  452,  447,  121,  449,  450,  442,
+      453,  445,  449,  450,  451,  446,  454,  451,  453,  455,
+
+      456,  457,  458,  458,  454,  456,  459,  460,  457,  461,
+      463,  464,  460,  463,  459,  465,  465,  455,  466,  467,
+      469,  470,  467,  471,  472,  464,  474,  473,  461,  477,
+      467,  476,  475,  466,  480,  474,  475,  479,  481,   67,
+      480,  469,  470,  471,  478,  482,  472,  473,  477,  476,
+      483,  479,  484,  478,  485,  483,  484,  486,  481,  482,
+      487,  488,  489,  489,  491,  487,  490,  491,  492,  486,
+      493,  490,  494,  485,  495,  496,  496,  494,  497,  497,
+      498,  499,  488,  493,  500,  499,  492,  501,  502,  504,
+      506,  505,  507,  504,  495,  498,  509,  508,  510,  516,
+
+      516,  556,  502,  500,  510,  506,  507,  556,  511,  513,
+      509,  501,  503,  511,  513,  503,  505,  503,  508,  512,
+      512,  503,  514,  503,  517,  512,  515,  512,  503,  517,
+      519,  518,  520,  521,  521,  524,  514,  522,  515,  518,
+      524,  522,  526,  525,  519,  512,  525,  527,  528,  529,
+      530,  520,  531,  528,  532,  534,  533,  531,  529,  537,
+      527,  526,  535,  538,  534,  539,  540,  535,  541,  530,
+      533,  540,  542,  541,  532,  543,  549,  542,  537,  549,
+      539,  538,  544,  544,  543,  545,  550,  547,  551,  553,
+      545,  547,  547,  548,  548,  552,  557,  548,  552,  554,
+
+      555,  550,  557,  559,  554,  555,  558,  558,  551,  560,
+      553,  561,  559,  562,  561,  563,  564,  565,  566,  567,
+      568,  570,  569,  566,  567,  569,  573,  560,  571,  575,
+      565,  562,  570,  571,  563,  572,  564,  576,  568,  579,
+      572,  573,  574,  574,  577,  578,  580,  581,  575,  578,
+      582,  576,  587,  585,  586,  580,  577,  579,  588,  589,
+      590,   61,  591,  588,  589,  590,  581,  585,  592,  586,
+      594,  595,  587,  593,  597,  582,  591,  600,  593,  596,
+      596,  598,  592,  599,  601,  594,  595,  602,  599,  601,
+      598,  603,  597,  604,  605,  603,  600,  606,  607,  608,
+
+      609,  610,  604,  613,  614,  611,  602,  612,  618,  605,
+      607,  611,  606,  614,  617,  616,  618,  619,  608,  610,
+      616,  609,  612,  613,  620,  622,  621,  623,  617,  620,
+      621,  621,  625,  625,  624,  626,  623,  619,  622,  624,
+      626,  627,  628,  628,  629,  630,  627,  631,  632,  633,
+      630,  634,  635,  629,  633,  636,  634,  635,  637,  636,
+      638,  631,  641,  642,  640,  643,  632,  637,  640,  644,
+      645,  638,  637,  646,  637,  647,  637,  641,  645,  643,
+      648,  642,  649,  649,  650,  650,  652,  646,  644,  652,
+      653,  654,  656,  647,  660,  653,  655,  655,  657,  657,
+
+      662,  658,  659,  659,  661,  648,  658,  664,  662,  661,
+      654,  663,  656,  665,  660,  666,  663,  673,  668,  665,
+      674,  669,  666,  668,  670,  664,  669,  671,  672,  670,
+      676,  674,  671,  675,  675,  677,  673,  672,  678,  679,
+      680,  682,  682,  678,  681,  683,  684,  686,  685,  688,
+      676,  689,  691,  688,  688,  690,  692,  691,  677,  679,
+      680,  693,  681,  694,  695,  683,  685,  694,  696,  697,
+      686,  684,  699,  690,  692,  698,  703,  689,  701,  700,
+      704,  693,  695,  697,  700,  701,  705,  696,  702,  704,
+      698,  699,  706,  702,  703,  707,  714,  708,  706,  709,
+
+      710,  705,  708,  713,  709,  710,  711,  711,  713,  715,
+      714,  717,  717,  716,  718,  719,  707,  716,  716,  720,
+      721,  722,  724,  725,  723,  726,  728,  722,  715,  723,
+      727,  729,  730,  718,  719,  731,  731,  736,  732,  721,
+      728,  724,  725,  732,  726,  720,  733,  730,  734,  727,
+      733,  735,  729,  737,  737,  739,  740,  736,  738,  739,
+      735,  734,  741,  738,  744,  745,  745,  741,  746,  744,
+      748,  748,  754,  746,  750,  750,  740,  752,  753,  753,
+      752,  755,  757,  756,  758,  758,  761,  754,  756,  759,
+      760,  760,  762,  764,  763,  765,  767,  757,  763,  768,
+
+      765,  769,  769,  762,  770,  771,  755,  772,  761,  759,
+      776,  774,  764,  768,  767,  773,  774,  773,  775,  777,
+      778,  781,  785,  775,  770,  771,  778,  772,  782,  780,
+      776,  782,  783,  777,  780,  784,  784,  783,  786,  787,
+      785,  789,  788,  790,  791,  791,  781,  788,  790,  792,
+      793,  794,  795,  796,  792,  799,  798,  786,  797,  787,
+      799,  800,  801,  802,  789,  803,  804,  796,  793,  798,
+      797,  794,  795,  804,  805,  806,  809,  809,  812,   56,
+      803,  800,  801,  805,  802,  810,  805,  811,  810,  813,
+      814,  806,  811,  815,  812,  816,  817,  819,  813,  818,
+
+      818,  817,  815,  820,  816,  815,  821,  822,  823,  814,
+      824,  825,  825,  826,  827,  829,  820,  819,  830,  832,
+      829,  822,  831,  840,  821,  832,  833,  831,  824,  826,
+      834,  833,  827,  823,  838,  835,  830,  839,  835,  841,
+      842,  840,  838,  834,  835,  843,  845,  846,  847,  848,
+      839,  846,  849,  847,  848,  850,  842,  849,  841,  851,
+      852,  853,  853,  843,  850,  854,  845,  857,  855,  856,
+      859,  858,  857,  861,  861,  852,  862,  862,  860,  854,
+      855,  856,  851,  858,  860,  863,  864,  864,  859,  866,
+      865,  879,  867,  868,  863,  865,  869,  869,  870,  871,
+
+      871,  872,  872,  873,  874,  877,  884,  874,  873,  876,
+      866,  867,  878,  868,  876,  885,  879,  878,  870,  880,
+      880,  881,  881,  877,  882,  883,  884,  886,  887,  882,
+      888,  888,  889,  890,  890,  885,  891,  883,  895,  883,
+      898,  893,  894,  894,  883,  896,  897,  886,  900,  887,
+      893,  901,  896,  895,   51,  897,  891,  903,  889,  899,
+      899,  905,  903,  904,  906,  910,  898,  901,  904,  907,
+      907,  906,  908,  909,  900,  911,  912,  908,  913,  915,
+      914,  905,  909,  916,  918,  910,  914,  919,  915,   50,
+      911,  917,  917,  913,  916,  912,  924,  920,  929,  916,
+
+       45,  919,  920,  921,  921,  918,  922,  923,  924,  925,
+      922,  922,  923,  926,  925,  927,  928,  930,  931,  927,
+      933,  932,  930,  929,  935,  926,  932,  935,  928,  936,
+      936,  938,  933,  937,  937,  944,  939,  938,  940,  941,
+      931,  939,  946,  946,  940,  947,  948,  944,  941,  949,
+      951,  951,  954,  956,  946,  948,  955,  962,  949,  957,
+      957,  955,  958,  947,  958,  961,  954,  959,  959,  964,
+      956,  965,  961,  963,  963,  966,  967,  962,  968,  969,
+      971,  976,  972,  965,  972,  971,  973,  966,  967,  974,
+      964,  977,  977,  968,  978,  976,  979,  983,  974,  969,
+
+      980,  979,  980,  981,  973,  982,  984,  985,  981,  986,
+      982,  988,  985,  989,  986,  983,  990,  990,   40,  991,
+      978,  995,  993,  992,  993,  994,  984,  989, 1000, 1001,
+      988,  991,  992,  995,  994,  992,  996,  997,  999, 1006,
+     1003,  996,  997, 1005, 1007, 1001, 1003, 1009, 1000, 1005,
+     1011,  999,   14, 1007, 1008, 1008, 1009, 1010, 1010, 1012,
+     1013, 1014, 1016, 1012, 1006, 1013, 1015, 1015, 1019, 1011,
+     1016, 1020, 1020, 1022, 1014, 1021, 1021, 1019, 1023, 1025,
+     1024, 1026, 1027, 1023, 1024, 1022, 1026, 1028, 1030, 1032,
+     1031, 1033, 1034, 1056, 1025, 1036, 1036, 1037, 1038, 1056,
+
+     1037, 1039,   13, 1033, 1040, 1040, 1028, 1043, 1027, 1031,
+     1032, 1038, 1030, 1034, 1039, 1041, 1041, 1042, 1042, 1046,
+     1043, 1044, 1044, 1045, 1045, 1047, 1047, 1048, 1048, 1049,
+     1051, 1052, 1052, 1053, 1060, 1051, 1054, 1054, 1046, 1055,
+     1057, 1059, 1059, 1057, 1058, 1058, 1061, 1061, 1049, 1063,
+     1063, 1064, 1053, 1060, 1065, 1065, 1066, 1055, 1067, 1068,
+     1058, 1069, 1070, 1071, 1068, 1066, 1072, 1073, 1076, 1074,
+     1067, 1072, 1075, 1076, 1079, 1070, 1077, 1064, 1074, 1081,
+     1077, 1075, 1073, 1086, 1071, 1087, 1069, 1083, 1081, 1082,
+     1082, 1144, 1083, 1103, 1079, 1084, 1084, 1087, 1086, 1089,
+
+     1090, 1096, 1089, 1098, 1084, 1090, 1091, 1091, 1092, 1103,
+     1093, 1095, 1092, 1093, 1094, 1094, 1095, 1144, 1097, 1099,
+     1100, 1096, 1097, 1098, 1099, 1100, 1101, 1105, 1104, 1106,
+     1123, 1106, 1101, 1104, 1122, 1105, 1109, 1109, 1112, 1112,
+     1115, 1116, 1116, 1118, 1118, 1115, 1120, 1121, 1121, 1124,
+     1122, 1120, 1123, 1129, 1124, 1126, 1126, 1130, 1129, 1130,
+     1131, 1132, 1133, 1133, 1134, 1134, 1132, 1135, 1135, 1136,
+     1137, 1138, 1139, 1140, 1131, 1141, 1142, 1142, 1143, 1145,
+     1146, 1136, 1147, 1138, 1139, 1140, 1148, 1143, 1137, 1149,
+     1154, 1150, 1151, 1146, 1160, 1141, 1150, 1151, 1159, 1145,
+
+     1148, 1152, 1152, 1155, 1155, 1158, 1147, 1149, 1154, 1157,
+     1157, 1161, 1160, 1159, 1158, 1162, 1163, 1164, 1164, 1165,
+     1167, 1166, 1168, 1173, 1165, 1170, 1176, 1174, 1177, 1161,
+     1174, 1162, 1175, 1175, 1180, 1163, 1166, 1179, 1179, 1167,
+     1187, 1176, 1168, 1173, 1170, 1188, 1177, 1181, 1181, 1182,
+     1182, 1186, 1186, 1180, 1188, 1189, 1190, 1191, 1193, 1194,
+     1189, 1190, 1187, 1195, 1194, 1191, 1196,    0, 1195, 1197,
+     1197, 1198, 1198, 1193, 1199, 1200, 1200, 1201, 1201, 1199,
+     1203, 1196, 1204, 1206, 1207, 1203, 1206, 1208, 1213, 1209,
+     1210, 1210, 1211, 1214, 1204, 1216, 1208, 1207, 1209, 1215,
+
+     1215, 1211, 1217, 1217, 1216, 1218, 1219, 1213, 1221, 1222,
+     1227, 1219, 1214, 1218, 1224, 1224, 1232, 1221, 1228, 1228,
+     1229, 1233, 1222, 1229, 1230, 1230, 1231, 1231, 1234, 1242,
+     1227, 1235, 1235, 1234, 1232, 1233, 1236, 1239, 1243, 1244,
+     1236, 1245, 1245, 1239, 1246, 1247, 1243, 1248, 1242, 1249,
+     1247, 1251, 1250, 1253, 1255, 1257, 1253, 1258, 1244, 1257,
+     1246, 1250, 1256, 1256, 1260, 1261, 1258, 1248, 1262, 1265,
+     1279, 1251, 1255, 1260, 1265, 1249, 1267, 1261, 1266, 1266,
+     1270, 1269, 1271, 1272, 1275, 1267, 1269, 1273, 1273, 1270,
+     1274, 1276, 1278, 1262, 1277, 1280, 1279, 1278, 1272, 1274,
+
+     1275, 1271, 1277, 1281, 1281, 1285, 1282, 1284, 1284, 1286,
+     1276, 1282, 1287, 1287, 1280, 1288, 1288, 1289, 1290, 1291,
+     1292, 1292, 1293, 1294, 1294, 1285, 1295, 1297, 1298,    0,
+     1290, 1286,    0, 1298, 1293, 1302, 1289, 1299, 1299, 1291,
+     1302, 1297, 1300, 1300, 1317, 1295, 1301, 1301, 1303, 1303,
+     1305, 1305, 1307, 1307, 1308, 1311, 1312, 1312, 1319, 1308,
+     1313, 1315, 1319, 1311, 1317, 1313, 1315, 1318, 1318, 1323,
+     1323, 1325, 1327, 1327, 1328, 1325, 1330, 1331, 1331, 1332,
+     1332, 1334, 1334, 1336, 1336, 1338, 1339, 1339, 1344, 1328,
+     1345, 1347, 1344, 1349, 1330, 1346, 1346, 1338, 1350, 1351,
+
+     1347, 1352, 1352,    0,    0,    0,    0,    0, 1349,    0,
+     1345,    0, 1350,    0,    0,    0,    0,    0, 1351, 1355,
+     1355, 1355, 1355, 1355, 1355, 1355, 1356, 1356, 1356, 1356,
+     1356, 1356, 1356, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
+     1358, 1358, 1358, 1358, 1358, 1358, 1358, 1359, 1359, 1359,
+     1359, 1359, 1359, 1359, 1361, 1361,    0, 1361, 1361, 1361,
+     1361, 1362, 1362,    0,    0,    0, 1362, 1362, 1363, 1363,
+        0,    0, 1363,    0, 1363, 1364,    0,    0,    0,    0,
+        0, 1364, 1365, 1365,    0,    0,    0, 1365, 1365, 1366,
+        0,    0,    0,    0,    0, 1366, 1367, 1367,    0, 1367,
+
+     1367, 1367, 1367, 1368, 1368,    0, 1368, 1368, 1368, 1368,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+     1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1649,7 +1656,7 @@ static void config_end_include(void)
 #define YY_NO_INPUT 1
 #endif
 
-#line 1651 "<stdout>"
+#line 1658 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -1836,7 +1843,7 @@ YY_DECL
     
 #line 170 "./util/configlexer.lex"
 
-#line 1838 "<stdout>"
+#line 1845 "<stdout>"
 
        if ( !(yy_init) )
                {
@@ -1895,13 +1902,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 1343 )
+                               if ( yy_current_state >= 1355 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 2683 );
+               while ( yy_base[yy_current_state] != 2711 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -2535,40 +2542,45 @@ YY_RULE_SETUP
 { YDVAR(1, VAR_RRSET_ROUNDROBIN) }
        YY_BREAK
 case 122:
-/* rule 122 can match eol */
 YY_RULE_SETUP
 #line 296 "./util/configlexer.lex"
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+       YY_BREAK
+case 123:
+/* rule 123 can match eol */
+YY_RULE_SETUP
+#line 297 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 299 "./util/configlexer.lex"
+#line 300 "./util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 300 "./util/configlexer.lex"
+#line 301 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 305 "./util/configlexer.lex"
+#line 306 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 125:
-/* rule 125 can match eol */
+case 126:
+/* rule 126 can match eol */
 YY_RULE_SETUP
-#line 306 "./util/configlexer.lex"
+#line 307 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end \""); 
                          cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 308 "./util/configlexer.lex"
+#line 309 "./util/configlexer.lex"
 {
         LEXOUT(("QE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -2581,34 +2593,34 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 320 "./util/configlexer.lex"
+#line 321 "./util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 321 "./util/configlexer.lex"
+#line 322 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 326 "./util/configlexer.lex"
+#line 327 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 129:
-/* rule 129 can match eol */
+case 130:
+/* rule 130 can match eol */
 YY_RULE_SETUP
-#line 327 "./util/configlexer.lex"
+#line 328 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end '"); 
                             cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 329 "./util/configlexer.lex"
+#line 330 "./util/configlexer.lex"
 {
         LEXOUT(("SQE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -2621,38 +2633,38 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 341 "./util/configlexer.lex"
+#line 342 "./util/configlexer.lex"
 { 
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 343 "./util/configlexer.lex"
+#line 344 "./util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 347 "./util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
-       YY_BREAK
 case 133:
-/* rule 133 can match eol */
 YY_RULE_SETUP
 #line 348 "./util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
 case 134:
+/* rule 134 can match eol */
 YY_RULE_SETUP
 #line 349 "./util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 350 "./util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+       YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 351 "./util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext);
@@ -2660,27 +2672,27 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 355 "./util/configlexer.lex"
+#line 356 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 359 "./util/configlexer.lex"
+#line 360 "./util/configlexer.lex"
 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 137:
-/* rule 137 can match eol */
+case 138:
+/* rule 138 can match eol */
 YY_RULE_SETUP
-#line 360 "./util/configlexer.lex"
+#line 361 "./util/configlexer.lex"
 { yyerror("newline before \" in include name"); 
                                  cfg_parser->line++; BEGIN(inc_prev); }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 362 "./util/configlexer.lex"
+#line 363 "./util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -2690,7 +2702,7 @@ YY_RULE_SETUP
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(val):
-#line 368 "./util/configlexer.lex"
+#line 369 "./util/configlexer.lex"
 {
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
        if (config_include_stack_ptr == 0) {
@@ -2701,33 +2713,33 @@ case YY_STATE_EOF(val):
        }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 378 "./util/configlexer.lex"
+#line 379 "./util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        if(--num_args == 0) { BEGIN(INITIAL); }
                        yylval.str = strdup(yytext); return STRING_ARG; }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 382 "./util/configlexer.lex"
+#line 383 "./util/configlexer.lex"
 {
        ub_c_error_msg("unknown keyword '%s'", yytext);
        }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 386 "./util/configlexer.lex"
+#line 387 "./util/configlexer.lex"
 {
        ub_c_error_msg("stray '%s'", yytext);
        }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 390 "./util/configlexer.lex"
+#line 391 "./util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 2729 "<stdout>"
+#line 2741 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -3017,7 +3029,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 1343 )
+                       if ( yy_current_state >= 1355 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3045,11 +3057,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 1343 )
+               if ( yy_current_state >= 1355 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 1342);
+       yy_is_jam = (yy_current_state == 1354);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3682,7 +3694,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 390 "./util/configlexer.lex"
+#line 391 "./util/configlexer.lex"
 
 
 
index d2eaf66be6f77b535507004e63b7ebde84a48a9a..97deab189e1377d8f91d262bdcf8cae3d7edb617 100644 (file)
@@ -293,6 +293,7 @@ python{COLON}                       { YDVAR(0, VAR_PYTHON) }
 domain-insecure{COLON}         { YDVAR(1, VAR_DOMAIN_INSECURE) }
 minimal-responses{COLON}       { YDVAR(1, VAR_MINIMAL_RESPONSES) }
 rrset-roundrobin{COLON}                { YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+max-udp-size{COLON}            { YDVAR(1, VAR_MAX_UDP_SIZE) }
 <INITIAL,val>{NEWLINE}         { LEXOUT(("NL\n")); cfg_parser->line++; }
 
        /* Quoted strings. Strip leading and ending quotes */
index e700487d7afe6bdd670165df44f66c4e4c5920df..0161aa1b06be9f3d9ed62e13c428d835cd55bbb7 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 2.6.1.  */
 
 /* Bison implementation for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.5"
+#define YYBISON_VERSION "2.6.1"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 /* Pull parsers.  */
 #define YYPULL 1
 
-/* Using locations.  */
-#define YYLSP_NEEDED 0
 
 
 
 /* Copy the first part of user declarations.  */
-
-/* Line 268 of yacc.c  */
+/* Line 336 of yacc.c  */
 #line 38 "./util/configparser.y"
 
 #include "config.h"
@@ -93,14 +90,16 @@ extern struct config_parser_state* cfg_parser;
 #endif
 
 
+/* Line 336 of yacc.c  */
+#line 95 "util/configparser.c"
 
-/* Line 268 of yacc.c  */
-#line 99 "util/configparser.c"
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
+# ifndef YY_NULL
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULL nullptr
+#  else
+#   define YY_NULL 0
+#  endif
+# endif
 
 /* Enabling verbose error messages.  */
 #ifdef YYERROR_VERBOSE
@@ -110,11 +109,17 @@ extern struct config_parser_state* cfg_parser;
 # define YYERROR_VERBOSE 0
 #endif
 
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
+/* In a future release of Bison, this section will be replaced
+   by #include "configparser.h".  */
+#ifndef YY_UTIL_CONFIGPARSER_H
+# define YY_UTIL_CONFIGPARSER_H
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
 #endif
-
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
@@ -248,7 +253,8 @@ extern struct config_parser_state* cfg_parser;
      VAR_FORWARD_FIRST = 381,
      VAR_STUB_FIRST = 382,
      VAR_MINIMAL_RESPONSES = 383,
-     VAR_RRSET_ROUNDROBIN = 384
+     VAR_RRSET_ROUNDROBIN = 384,
+     VAR_MAX_UDP_SIZE = 385
    };
 #endif
 /* Tokens.  */
@@ -379,35 +385,49 @@ extern struct config_parser_state* cfg_parser;
 #define VAR_STUB_FIRST 382
 #define VAR_MINIMAL_RESPONSES 383
 #define VAR_RRSET_ROUNDROBIN 384
-
+#define VAR_MAX_UDP_SIZE 385
 
 
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-
-/* Line 293 of yacc.c  */
+/* Line 350 of yacc.c  */
 #line 64 "./util/configparser.y"
 
        char*   str;
 
 
-
-/* Line 293 of yacc.c  */
-#line 399 "util/configparser.c"
+/* Line 350 of yacc.c  */
+#line 403 "util/configparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
+extern YYSTYPE yylval;
 
-/* Copy the second part of user declarations.  */
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
+#endif /* !YY_UTIL_CONFIGPARSER_H  */
 
-/* Line 343 of yacc.c  */
-#line 411 "util/configparser.c"
+/* Copy the second part of user declarations.  */
+
+/* Line 353 of yacc.c  */
+#line 431 "util/configparser.c"
 
 #ifdef short
 # undef short
@@ -513,6 +533,7 @@ YYID (yyi)
 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
 #      define EXIT_SUCCESS 0
 #     endif
@@ -604,20 +625,20 @@ union yyalloc
 #endif
 
 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from FROM to TO.  The source and destination do
+/* Copy COUNT objects from SRC to DST.  The source and destination do
    not overlap.  */
 # ifndef YYCOPY
 #  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
 #  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         YYSIZE_T yyi;                         \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYSIZE_T yyi;                         \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
       while (YYID (0))
 #  endif
 # endif
@@ -626,20 +647,20 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   237
+#define YYLAST   239
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  130
+#define YYNTOKENS  131
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  133
+#define YYNNTS  134
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  253
+#define YYNRULES  255
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  371
+#define YYNSTATES  374
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   384
+#define YYMAXUTOK   385
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -685,7 +706,7 @@ static const yytype_uint8 yytranslate[] =
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129
+     125,   126,   127,   128,   129,   130
 };
 
 #if YYDEBUG
@@ -704,124 +725,125 @@ static const yytype_uint16 yyprhs[] =
      164,   166,   168,   170,   172,   174,   176,   178,   180,   182,
      184,   186,   188,   190,   192,   194,   196,   198,   200,   202,
      204,   206,   208,   210,   212,   214,   216,   218,   220,   222,
-     224,   226,   229,   230,   232,   234,   236,   238,   240,   242,
-     245,   246,   248,   250,   252,   254,   257,   260,   263,   266,
-     269,   272,   275,   278,   281,   284,   287,   290,   293,   296,
-     299,   302,   305,   308,   311,   314,   317,   320,   323,   326,
-     329,   332,   335,   338,   341,   344,   347,   350,   353,   356,
-     359,   362,   365,   368,   371,   374,   377,   380,   383,   386,
-     389,   392,   395,   398,   401,   404,   407,   410,   413,   416,
-     419,   422,   425,   428,   431,   434,   437,   440,   443,   446,
-     449,   452,   455,   458,   461,   464,   467,   470,   473,   476,
-     480,   483,   486,   489,   492,   495,   498,   501,   504,   507,
-     510,   513,   516,   519,   522,   525,   528,   531,   534,   538,
-     541,   544,   547,   550,   553,   556,   559,   562,   565,   568,
-     571,   574,   577,   579,   582,   583,   585,   587,   589,   591,
-     593,   595,   597,   600,   603,   606,   609,   612,   615,   618,
-     620,   623,   624,   626
+     224,   226,   228,   231,   232,   234,   236,   238,   240,   242,
+     244,   247,   248,   250,   252,   254,   256,   259,   262,   265,
+     268,   271,   274,   277,   280,   283,   286,   289,   292,   295,
+     298,   301,   304,   307,   310,   313,   316,   319,   322,   325,
+     328,   331,   334,   337,   340,   343,   346,   349,   352,   355,
+     358,   361,   364,   367,   370,   373,   376,   379,   382,   385,
+     388,   391,   394,   397,   400,   403,   406,   409,   412,   415,
+     418,   421,   424,   427,   430,   433,   436,   439,   442,   445,
+     448,   451,   454,   457,   460,   463,   466,   469,   472,   475,
+     478,   482,   485,   488,   491,   494,   497,   500,   503,   506,
+     509,   512,   515,   518,   521,   524,   527,   530,   533,   536,
+     540,   543,   546,   549,   552,   555,   558,   561,   564,   567,
+     570,   573,   576,   579,   582,   584,   587,   588,   590,   592,
+     594,   596,   598,   600,   602,   605,   608,   611,   614,   617,
+     620,   623,   625,   628,   629,   631
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     131,     0,    -1,    -1,   131,   132,    -1,   133,   134,    -1,
-     136,   137,    -1,   139,   140,    -1,   259,   260,    -1,   249,
-     250,    -1,    11,    -1,   134,   135,    -1,    -1,   142,    -1,
-     143,    -1,   147,    -1,   150,    -1,   156,    -1,   157,    -1,
-     158,    -1,   159,    -1,   148,    -1,   169,    -1,   170,    -1,
-     171,    -1,   172,    -1,   173,    -1,   190,    -1,   191,    -1,
-     192,    -1,   194,    -1,   195,    -1,   153,    -1,   196,    -1,
-     197,    -1,   200,    -1,   198,    -1,   199,    -1,   201,    -1,
-     202,    -1,   203,    -1,   214,    -1,   182,    -1,   183,    -1,
-     184,    -1,   185,    -1,   204,    -1,   217,    -1,   178,    -1,
-     180,    -1,   218,    -1,   223,    -1,   224,    -1,   225,    -1,
-     154,    -1,   189,    -1,   232,    -1,   233,    -1,   179,    -1,
-     228,    -1,   166,    -1,   149,    -1,   174,    -1,   215,    -1,
-     221,    -1,   205,    -1,   216,    -1,   235,    -1,   236,    -1,
-     155,    -1,   144,    -1,   165,    -1,   208,    -1,   145,    -1,
-     151,    -1,   152,    -1,   175,    -1,   176,    -1,   234,    -1,
-     207,    -1,   209,    -1,   210,    -1,   146,    -1,   237,    -1,
-     193,    -1,   213,    -1,   167,    -1,   181,    -1,   219,    -1,
-     220,    -1,   222,    -1,   227,    -1,   177,    -1,   229,    -1,
-     230,    -1,   231,    -1,   186,    -1,   188,    -1,   211,    -1,
-     212,    -1,   187,    -1,   206,    -1,   226,    -1,   168,    -1,
-     160,    -1,   161,    -1,   162,    -1,   163,    -1,   164,    -1,
-     238,    -1,   239,    -1,    38,    -1,   137,   138,    -1,    -1,
-     240,    -1,   241,    -1,   242,    -1,   244,    -1,   243,    -1,
-      44,    -1,   140,   141,    -1,    -1,   245,    -1,   246,    -1,
-     247,    -1,   248,    -1,    13,    10,    -1,    12,    10,    -1,
-      76,    10,    -1,    79,    10,    -1,    96,    10,    -1,    14,
-      10,    -1,    16,    10,    -1,    67,    10,    -1,    15,    10,
-      -1,    80,    10,    -1,    81,    10,    -1,    31,    10,    -1,
-      60,    10,    -1,    75,    10,    -1,    17,    10,    -1,    18,
-      10,    -1,    19,    10,    -1,    20,    10,    -1,   121,    10,
-      -1,   122,    10,    -1,   123,    10,    -1,   124,    10,    -1,
-     125,    10,    -1,    77,    10,    -1,    66,    10,    -1,   101,
-      10,    -1,   120,    10,    -1,    21,    10,    -1,    22,    10,
-      -1,    23,    10,    -1,    24,    10,    -1,    25,    10,    -1,
-      68,    10,    -1,    82,    10,    -1,    83,    10,    -1,   109,
-      10,    -1,    54,    10,    -1,    64,    10,    -1,    55,    10,
-      -1,   102,    10,    -1,    48,    10,    -1,    49,    10,    -1,
-      50,    10,    -1,    51,    10,    -1,   113,    10,    -1,   117,
-      10,    -1,   114,    10,    -1,    61,    10,    -1,    26,    10,
-      -1,    27,    10,    -1,    28,    10,    -1,    98,    10,    -1,
-      29,    10,    -1,    30,    10,    -1,    32,    10,    -1,    33,
-      10,    -1,    35,    10,    -1,    36,    10,    -1,    34,    10,
-      -1,    41,    10,    -1,    42,    10,    -1,    43,    10,    -1,
-      52,    10,    -1,    71,    10,    -1,   118,    10,    -1,    85,
-      10,    -1,    78,    10,    -1,    86,    10,    -1,    87,    10,
-      -1,   115,    10,    -1,   116,    10,    -1,   100,    10,    -1,
-      47,    10,    -1,    69,    10,    -1,    72,    10,    10,    -1,
-      53,    10,    -1,    56,    10,    -1,   105,    10,    -1,   106,
-      10,    -1,    70,    10,    -1,   107,    10,    -1,    57,    10,
-      -1,    58,    10,    -1,    59,    10,    -1,   119,    10,    -1,
-     108,    10,    -1,    65,    10,    -1,   111,    10,    -1,   112,
-      10,    -1,   110,    10,    -1,    62,    10,    -1,    63,    10,
-      -1,    84,    10,    -1,    73,    10,    10,    -1,    74,    10,
-      -1,    97,    10,    -1,   128,    10,    -1,   129,    10,    -1,
-      37,    10,    -1,    39,    10,    -1,    40,    10,    -1,   127,
-      10,    -1,    99,    10,    -1,    37,    10,    -1,    45,    10,
-      -1,    46,    10,    -1,   126,    10,    -1,    88,    -1,   250,
-     251,    -1,    -1,   252,    -1,   254,    -1,   253,    -1,   255,
-      -1,   256,    -1,   257,    -1,   258,    -1,    89,    10,    -1,
-      91,    10,    -1,    90,    10,    -1,    92,    10,    -1,    93,
-      10,    -1,    94,    10,    -1,    95,    10,    -1,   103,    -1,
-     260,   261,    -1,    -1,   262,    -1,   104,    10,    -1
+     132,     0,    -1,    -1,   132,   133,    -1,   134,   135,    -1,
+     137,   138,    -1,   140,   141,    -1,   261,   262,    -1,   251,
+     252,    -1,    11,    -1,   135,   136,    -1,    -1,   143,    -1,
+     144,    -1,   148,    -1,   151,    -1,   157,    -1,   158,    -1,
+     159,    -1,   160,    -1,   149,    -1,   170,    -1,   171,    -1,
+     172,    -1,   173,    -1,   174,    -1,   191,    -1,   192,    -1,
+     193,    -1,   195,    -1,   196,    -1,   154,    -1,   197,    -1,
+     198,    -1,   201,    -1,   199,    -1,   200,    -1,   202,    -1,
+     203,    -1,   204,    -1,   215,    -1,   183,    -1,   184,    -1,
+     185,    -1,   186,    -1,   205,    -1,   218,    -1,   179,    -1,
+     181,    -1,   219,    -1,   224,    -1,   225,    -1,   226,    -1,
+     155,    -1,   190,    -1,   233,    -1,   234,    -1,   180,    -1,
+     229,    -1,   167,    -1,   150,    -1,   175,    -1,   216,    -1,
+     222,    -1,   206,    -1,   217,    -1,   236,    -1,   237,    -1,
+     156,    -1,   145,    -1,   166,    -1,   209,    -1,   146,    -1,
+     152,    -1,   153,    -1,   176,    -1,   177,    -1,   235,    -1,
+     208,    -1,   210,    -1,   211,    -1,   147,    -1,   238,    -1,
+     194,    -1,   214,    -1,   168,    -1,   182,    -1,   220,    -1,
+     221,    -1,   223,    -1,   228,    -1,   178,    -1,   230,    -1,
+     231,    -1,   232,    -1,   187,    -1,   189,    -1,   212,    -1,
+     213,    -1,   188,    -1,   207,    -1,   227,    -1,   169,    -1,
+     161,    -1,   162,    -1,   163,    -1,   164,    -1,   165,    -1,
+     239,    -1,   240,    -1,   241,    -1,    38,    -1,   138,   139,
+      -1,    -1,   242,    -1,   243,    -1,   244,    -1,   246,    -1,
+     245,    -1,    44,    -1,   141,   142,    -1,    -1,   247,    -1,
+     248,    -1,   249,    -1,   250,    -1,    13,    10,    -1,    12,
+      10,    -1,    76,    10,    -1,    79,    10,    -1,    96,    10,
+      -1,    14,    10,    -1,    16,    10,    -1,    67,    10,    -1,
+      15,    10,    -1,    80,    10,    -1,    81,    10,    -1,    31,
+      10,    -1,    60,    10,    -1,    75,    10,    -1,    17,    10,
+      -1,    18,    10,    -1,    19,    10,    -1,    20,    10,    -1,
+     121,    10,    -1,   122,    10,    -1,   123,    10,    -1,   124,
+      10,    -1,   125,    10,    -1,    77,    10,    -1,    66,    10,
+      -1,   101,    10,    -1,   120,    10,    -1,    21,    10,    -1,
+      22,    10,    -1,    23,    10,    -1,    24,    10,    -1,    25,
+      10,    -1,    68,    10,    -1,    82,    10,    -1,    83,    10,
+      -1,   109,    10,    -1,    54,    10,    -1,    64,    10,    -1,
+      55,    10,    -1,   102,    10,    -1,    48,    10,    -1,    49,
+      10,    -1,    50,    10,    -1,    51,    10,    -1,   113,    10,
+      -1,   117,    10,    -1,   114,    10,    -1,    61,    10,    -1,
+      26,    10,    -1,    27,    10,    -1,    28,    10,    -1,    98,
+      10,    -1,    29,    10,    -1,    30,    10,    -1,    32,    10,
+      -1,    33,    10,    -1,    35,    10,    -1,    36,    10,    -1,
+      34,    10,    -1,    41,    10,    -1,    42,    10,    -1,    43,
+      10,    -1,    52,    10,    -1,    71,    10,    -1,   118,    10,
+      -1,    85,    10,    -1,    78,    10,    -1,    86,    10,    -1,
+      87,    10,    -1,   115,    10,    -1,   116,    10,    -1,   100,
+      10,    -1,    47,    10,    -1,    69,    10,    -1,    72,    10,
+      10,    -1,    53,    10,    -1,    56,    10,    -1,   105,    10,
+      -1,   106,    10,    -1,    70,    10,    -1,   107,    10,    -1,
+      57,    10,    -1,    58,    10,    -1,    59,    10,    -1,   119,
+      10,    -1,   108,    10,    -1,    65,    10,    -1,   111,    10,
+      -1,   112,    10,    -1,   110,    10,    -1,    62,    10,    -1,
+      63,    10,    -1,    84,    10,    -1,    73,    10,    10,    -1,
+      74,    10,    -1,    97,    10,    -1,   128,    10,    -1,   129,
+      10,    -1,   130,    10,    -1,    37,    10,    -1,    39,    10,
+      -1,    40,    10,    -1,   127,    10,    -1,    99,    10,    -1,
+      37,    10,    -1,    45,    10,    -1,    46,    10,    -1,   126,
+      10,    -1,    88,    -1,   252,   253,    -1,    -1,   254,    -1,
+     256,    -1,   255,    -1,   257,    -1,   258,    -1,   259,    -1,
+     260,    -1,    89,    10,    -1,    91,    10,    -1,    90,    10,
+      -1,    92,    10,    -1,    93,    10,    -1,    94,    10,    -1,
+      95,    10,    -1,   103,    -1,   262,   263,    -1,    -1,   264,
+      -1,   104,    10,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   110,   110,   110,   111,   111,   112,   112,   113,   117,
-     122,   123,   124,   124,   124,   125,   125,   126,   126,   126,
-     127,   127,   127,   128,   128,   128,   129,   129,   130,   130,
-     131,   131,   132,   132,   133,   133,   134,   134,   135,   135,
-     136,   136,   137,   137,   137,   138,   138,   138,   139,   139,
-     139,   140,   140,   141,   141,   142,   142,   143,   143,   144,
-     144,   144,   145,   145,   146,   146,   147,   147,   147,   148,
-     148,   149,   149,   150,   150,   151,   151,   151,   152,   152,
-     153,   153,   154,   154,   155,   155,   156,   156,   157,   157,
-     157,   158,   158,   159,   159,   159,   160,   160,   160,   161,
-     161,   161,   162,   162,   162,   163,   163,   163,   164,   164,
-     166,   178,   179,   180,   180,   180,   180,   180,   182,   194,
-     195,   196,   196,   196,   196,   198,   207,   216,   227,   236,
-     245,   254,   267,   282,   291,   300,   309,   318,   327,   336,
-     345,   354,   363,   372,   381,   390,   397,   404,   413,   422,
-     436,   445,   454,   461,   468,   475,   483,   490,   497,   504,
-     511,   519,   527,   535,   542,   549,   558,   567,   574,   581,
-     589,   597,   610,   621,   629,   642,   651,   660,   668,   681,
-     690,   698,   707,   715,   728,   735,   745,   755,   765,   775,
-     785,   795,   805,   812,   819,   828,   837,   846,   853,   863,
-     877,   884,   902,   915,   928,   937,   946,   955,   965,   975,
-     984,   993,  1000,  1009,  1018,  1027,  1035,  1048,  1056,  1078,
-    1085,  1100,  1110,  1120,  1130,  1137,  1144,  1153,  1163,  1173,
-    1180,  1187,  1196,  1201,  1202,  1203,  1203,  1203,  1204,  1204,
-    1204,  1205,  1207,  1217,  1226,  1233,  1240,  1247,  1254,  1261,
-    1266,  1267,  1268,  1270
+       0,   111,   111,   111,   112,   112,   113,   113,   114,   118,
+     123,   124,   125,   125,   125,   126,   126,   127,   127,   127,
+     128,   128,   128,   129,   129,   129,   130,   130,   131,   131,
+     132,   132,   133,   133,   134,   134,   135,   135,   136,   136,
+     137,   137,   138,   138,   138,   139,   139,   139,   140,   140,
+     140,   141,   141,   142,   142,   143,   143,   144,   144,   145,
+     145,   145,   146,   146,   147,   147,   148,   148,   148,   149,
+     149,   150,   150,   151,   151,   152,   152,   152,   153,   153,
+     154,   154,   155,   155,   156,   156,   157,   157,   158,   158,
+     158,   159,   159,   160,   160,   160,   161,   161,   161,   162,
+     162,   162,   163,   163,   163,   164,   164,   164,   165,   165,
+     165,   167,   179,   180,   181,   181,   181,   181,   181,   183,
+     195,   196,   197,   197,   197,   197,   199,   208,   217,   228,
+     237,   246,   255,   268,   283,   292,   301,   310,   319,   328,
+     337,   346,   355,   364,   373,   382,   391,   398,   405,   414,
+     423,   437,   446,   455,   462,   469,   476,   484,   491,   498,
+     505,   512,   520,   528,   536,   543,   550,   559,   568,   575,
+     582,   590,   598,   611,   622,   630,   643,   652,   661,   669,
+     682,   691,   699,   708,   716,   729,   736,   746,   756,   766,
+     776,   786,   796,   806,   813,   820,   829,   838,   847,   854,
+     864,   878,   885,   903,   916,   929,   938,   947,   956,   966,
+     976,   985,   994,  1001,  1010,  1019,  1028,  1036,  1049,  1057,
+    1079,  1086,  1101,  1111,  1121,  1127,  1137,  1144,  1151,  1160,
+    1170,  1180,  1187,  1194,  1203,  1208,  1209,  1210,  1210,  1210,
+    1211,  1211,  1211,  1212,  1214,  1224,  1233,  1240,  1247,  1254,
+    1261,  1268,  1273,  1274,  1275,  1277
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 0
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
@@ -867,17 +889,17 @@ static const char *const yytname[] =
   "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM",
   "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT",
   "VAR_FORWARD_FIRST", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES",
-  "VAR_RRSET_ROUNDROBIN", "$accept", "toplevelvars", "toplevelvar",
-  "serverstart", "contents_server", "content_server", "stubstart",
-  "contents_stub", "content_stub", "forwardstart", "contents_forward",
-  "content_forward", "server_num_threads", "server_verbosity",
-  "server_statistics_interval", "server_statistics_cumulative",
-  "server_extended_statistics", "server_port", "server_interface",
-  "server_outgoing_interface", "server_outgoing_range",
-  "server_outgoing_port_permit", "server_outgoing_port_avoid",
-  "server_outgoing_num_tcp", "server_incoming_num_tcp",
-  "server_interface_automatic", "server_do_ip4", "server_do_ip6",
-  "server_do_udp", "server_do_tcp", "server_tcp_upstream",
+  "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "$accept", "toplevelvars",
+  "toplevelvar", "serverstart", "contents_server", "content_server",
+  "stubstart", "contents_stub", "content_stub", "forwardstart",
+  "contents_forward", "content_forward", "server_num_threads",
+  "server_verbosity", "server_statistics_interval",
+  "server_statistics_cumulative", "server_extended_statistics",
+  "server_port", "server_interface", "server_outgoing_interface",
+  "server_outgoing_range", "server_outgoing_port_permit",
+  "server_outgoing_port_avoid", "server_outgoing_num_tcp",
+  "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
+  "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream",
   "server_ssl_upstream", "server_ssl_service_key",
   "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
   "server_use_syslog", "server_log_time_ascii", "server_log_queries",
@@ -911,13 +933,13 @@ static const char *const yytname[] =
   "server_del_holddown", "server_keep_missing", "server_key_cache_size",
   "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
   "server_local_data", "server_local_data_ptr", "server_minimal_responses",
-  "server_rrset_roundrobin", "stub_name", "stub_host", "stub_addr",
-  "stub_first", "stub_prime", "forward_name", "forward_host",
-  "forward_addr", "forward_first", "rcstart", "contents_rc", "content_rc",
-  "rc_control_enable", "rc_control_port", "rc_control_interface",
-  "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
-  "rc_control_cert_file", "pythonstart", "contents_py", "content_py",
-  "py_script", 0
+  "server_rrset_roundrobin", "server_max_udp_size", "stub_name",
+  "stub_host", "stub_addr", "stub_first", "stub_prime", "forward_name",
+  "forward_host", "forward_addr", "forward_first", "rcstart",
+  "contents_rc", "content_rc", "rc_control_enable", "rc_control_port",
+  "rc_control_interface", "rc_server_key_file", "rc_server_cert_file",
+  "rc_control_key_file", "rc_control_cert_file", "pythonstart",
+  "contents_py", "content_py", "py_script", YY_NULL
 };
 #endif
 
@@ -938,26 +960,27 @@ static const yytype_uint16 yytoknum[] =
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,   382,   383,   384
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   130,   131,   131,   132,   132,   132,   132,   132,   133,
-     134,   134,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     136,   137,   137,   138,   138,   138,   138,   138,   139,   140,
-     140,   141,   141,   141,   141,   142,   143,   144,   145,   146,
+       0,   131,   132,   132,   133,   133,   133,   133,   133,   134,
+     135,   135,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+     136,   137,   138,   138,   139,   139,   139,   139,   139,   140,
+     141,   141,   142,   142,   142,   142,   143,   144,   145,   146,
      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
@@ -968,9 +991,9 @@ static const yytype_uint16 yyr1[] =
      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
      237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   250,   251,   251,   251,   251,   251,
-     251,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   260,   261,   262
+     247,   248,   249,   250,   251,   252,   252,   253,   253,   253,
+     253,   253,   253,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   262,   263,   264
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -987,21 +1010,21 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     2,     0,     1,     1,     1,     1,     1,     1,     2,
-       0,     1,     1,     1,     1,     2,     2,     2,     2,     2,
+       1,     1,     2,     0,     1,     1,     1,     1,     1,     1,
+       2,     0,     1,     1,     1,     1,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
+       3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     1,     2,     0,     1,     1,     1,     1,     1,
-       1,     1,     2,     2,     2,     2,     2,     2,     2,     1,
-       2,     0,     1,     2
+       2,     2,     2,     2,     1,     2,     0,     1,     1,     1,
+       1,     1,     1,     1,     2,     2,     2,     2,     2,     2,
+       2,     1,     2,     0,     1,     2
 };
 
 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -1009,8 +1032,8 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       2,     0,     1,     9,   110,   118,   232,   249,     3,    11,
-     112,   120,   234,   251,     4,     5,     6,     8,     7,     0,
+       2,     0,     1,     9,   111,   119,   234,   251,     3,    11,
+     113,   121,   236,   253,     4,     5,     6,     8,     7,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -1020,52 +1043,52 @@ static const yytype_uint8 yydefact[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    10,    12,    13,
-      69,    72,    81,    14,    20,    60,    15,    73,    74,    31,
-      53,    68,    16,    17,    18,    19,   103,   104,   105,   106,
-     107,    70,    59,    85,   102,    21,    22,    23,    24,    25,
-      61,    75,    76,    91,    47,    57,    48,    86,    41,    42,
-      43,    44,    95,    99,    96,    54,    26,    27,    28,    83,
-      29,    30,    32,    33,    35,    36,    34,    37,    38,    39,
-      45,    64,   100,    78,    71,    79,    80,    97,    98,    84,
-      40,    62,    65,    46,    49,    87,    88,    63,    89,    50,
-      51,    52,   101,    90,    58,    92,    93,    94,    55,    56,
-      77,    66,    67,    82,   108,   109,     0,     0,     0,     0,
-       0,   111,   113,   114,   115,   117,   116,     0,     0,     0,
-       0,   119,   121,   122,   123,   124,     0,     0,     0,     0,
-       0,     0,     0,   233,   235,   237,   236,   238,   239,   240,
-     241,     0,   250,   252,   126,   125,   130,   133,   131,   139,
-     140,   141,   142,   152,   153,   154,   155,   156,   173,   174,
-     175,   177,   178,   136,   179,   180,   183,   181,   182,   184,
-     185,   186,   197,   165,   166,   167,   168,   187,   200,   161,
-     163,   201,   206,   207,   208,   137,   172,   215,   216,   162,
-     211,   149,   132,   157,   198,   204,   188,     0,     0,   219,
-     138,   127,   148,   191,   128,   134,   135,   158,   159,   217,
-     190,   192,   193,   129,   220,   176,   196,   150,   164,   202,
-     203,   205,   210,   160,   214,   212,   213,   169,   171,   194,
-     195,   170,   189,   209,   151,   143,   144,   145,   146,   147,
-     221,   222,   223,   224,   225,   227,   226,   228,   229,   230,
-     231,   242,   244,   243,   245,   246,   247,   248,   253,   199,
-     218
+       0,     0,     0,     0,     0,     0,     0,     0,    10,    12,
+      13,    69,    72,    81,    14,    20,    60,    15,    73,    74,
+      31,    53,    68,    16,    17,    18,    19,   103,   104,   105,
+     106,   107,    70,    59,    85,   102,    21,    22,    23,    24,
+      25,    61,    75,    76,    91,    47,    57,    48,    86,    41,
+      42,    43,    44,    95,    99,    96,    54,    26,    27,    28,
+      83,    29,    30,    32,    33,    35,    36,    34,    37,    38,
+      39,    45,    64,   100,    78,    71,    79,    80,    97,    98,
+      84,    40,    62,    65,    46,    49,    87,    88,    63,    89,
+      50,    51,    52,   101,    90,    58,    92,    93,    94,    55,
+      56,    77,    66,    67,    82,   108,   109,   110,     0,     0,
+       0,     0,     0,   112,   114,   115,   116,   118,   117,     0,
+       0,     0,     0,   120,   122,   123,   124,   125,     0,     0,
+       0,     0,     0,     0,     0,   235,   237,   239,   238,   240,
+     241,   242,   243,     0,   252,   254,   127,   126,   131,   134,
+     132,   140,   141,   142,   143,   153,   154,   155,   156,   157,
+     174,   175,   176,   178,   179,   137,   180,   181,   184,   182,
+     183,   185,   186,   187,   198,   166,   167,   168,   169,   188,
+     201,   162,   164,   202,   207,   208,   209,   138,   173,   216,
+     217,   163,   212,   150,   133,   158,   199,   205,   189,     0,
+       0,   220,   139,   128,   149,   192,   129,   135,   136,   159,
+     160,   218,   191,   193,   194,   130,   221,   177,   197,   151,
+     165,   203,   204,   206,   211,   161,   215,   213,   214,   170,
+     172,   195,   196,   171,   190,   210,   152,   144,   145,   146,
+     147,   148,   222,   223,   224,   225,   226,   227,   229,   228,
+     230,   231,   232,   233,   244,   246,   245,   247,   248,   249,
+     250,   255,   200,   219
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,     8,     9,    14,   117,    10,    15,   221,    11,
-      16,   231,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-     222,   223,   224,   225,   226,   232,   233,   234,   235,    12,
-      17,   243,   244,   245,   246,   247,   248,   249,   250,    13,
-      18,   252,   253
+      -1,     1,     8,     9,    14,   118,    10,    15,   223,    11,
+      16,   233,   119,   120,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
+     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
+     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
+     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
+     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
+     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
+     217,   224,   225,   226,   227,   228,   234,   235,   236,   237,
+      12,    17,   245,   246,   247,   248,   249,   250,   251,   252,
+      13,    18,   254,   255
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -1075,17 +1098,16 @@ static const yytype_int16 yypact[] =
 {
      -80,    76,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -12,    40,    46,    32,   -79,    16,
-      17,    18,    22,    23,    24,    68,    71,    72,   105,   108,
-     109,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   130,   131,   132,   133,   134,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   155,   156,   158,   159,
-     160,   161,   163,   164,   165,   166,   167,   168,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
+      17,    18,    22,    23,    24,    68,    71,    72,   105,   109,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   155,   156,   158,   159,   160,
+     161,   163,   164,   165,   166,   167,   168,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
@@ -1094,23 +1116,24 @@ static const yytype_int16 yypact[] =
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,   209,   210,   211,   212,
-     213,   -80,   -80,   -80,   -80,   -80,   -80,   214,   215,   216,
-     217,   -80,   -80,   -80,   -80,   -80,   218,   219,   220,   221,
-     222,   223,   224,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   225,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
+     -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   211,   212,
+     213,   214,   215,   -80,   -80,   -80,   -80,   -80,   -80,   216,
+     217,   218,   219,   -80,   -80,   -80,   -80,   -80,   220,   221,
+     222,   223,   224,   225,   226,   -80,   -80,   -80,   -80,   -80,
+     -80,   -80,   -80,   227,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80,   -80,   -80,   -80,   -80,   226,   227,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
+     -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   228,
+     229,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80
+     -80,   -80,   -80,   -80
 };
 
 /* YYPGOTO[NTERM-NUM].  */
@@ -1129,7 +1152,7 @@ static const yytype_int8 yypgoto[] =
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
      -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,
-     -80,   -80,   -80
+     -80,   -80,   -80,   -80
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1140,28 +1163,28 @@ static const yytype_uint16 yytable[] =
 {
       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,   251,   254,   255,   256,    44,
-      45,    46,   257,   258,   259,    47,    48,    49,    50,    51,
+      39,    40,    41,    42,    43,   253,   256,   257,   258,    44,
+      45,    46,   259,   260,   261,    47,    48,    49,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,     2,   216,   260,   217,
-     218,   261,   262,   227,    88,    89,    90,     3,    91,    92,
-      93,   228,   229,    94,    95,    96,    97,    98,    99,   100,
+      82,    83,    84,    85,    86,    87,     2,   218,   262,   219,
+     220,   263,   264,   229,    88,    89,    90,     3,    91,    92,
+      93,   230,   231,    94,    95,    96,    97,    98,    99,   100,
      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,     4,   263,   115,   116,   264,   265,
-       5,   236,   237,   238,   239,   240,   241,   242,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,   219,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,     6,   301,   302,   220,   303,   304,
-     305,   306,   230,   307,   308,   309,   310,   311,   312,     7,
-     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
-     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
-     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
-     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
-     363,   364,   365,   366,   367,   368,   369,   370
+     111,   112,   113,   114,     4,   265,   115,   116,   117,   266,
+       5,   238,   239,   240,   241,   242,   243,   244,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   277,   221,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,     6,   302,   303,   222,   304,   305,
+     306,   307,   232,   308,   309,   310,   311,   312,   313,     7,
+     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
+     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
+     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,   365,   366,   367,   368,   369,   370,   371,   372,   373
 };
 
 #define yypact_value_is_default(yystate) \
@@ -1183,7 +1206,7 @@ static const yytype_uint8 yycheck[] =
       40,    10,    10,    37,    96,    97,    98,    11,   100,   101,
      102,    45,    46,   105,   106,   107,   108,   109,   110,   111,
      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,    38,    10,   128,   129,    10,    10,
+     122,   123,   124,   125,    38,    10,   128,   129,   130,    10,
       44,    89,    90,    91,    92,    93,    94,    95,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    99,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
@@ -1195,15 +1218,15 @@ static const yytype_uint8 yycheck[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10,    10,    10
+      10,    10,    10,    10,    10,    10,    10,    10,    10,    10
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   131,     0,    11,    38,    44,    88,   103,   132,   133,
-     136,   139,   249,   259,   134,   137,   140,   250,   260,    12,
+       0,   132,     0,    11,    38,    44,    88,   103,   133,   134,
+     137,   140,   251,   261,   135,   138,   141,   252,   262,    12,
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
       33,    34,    35,    36,    41,    42,    43,    47,    48,    49,
@@ -1213,7 +1236,7 @@ static const yytype_uint16 yystos[] =
       80,    81,    82,    83,    84,    85,    86,    87,    96,    97,
       98,   100,   101,   102,   105,   106,   107,   108,   109,   110,
      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   128,   129,   135,   142,   143,
+     121,   122,   123,   124,   125,   128,   129,   130,   136,   143,
      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
@@ -1223,11 +1246,11 @@ static const yytype_uint16 yystos[] =
      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
-     234,   235,   236,   237,   238,   239,    37,    39,    40,    99,
-     127,   138,   240,   241,   242,   243,   244,    37,    45,    46,
-     126,   141,   245,   246,   247,   248,    89,    90,    91,    92,
-      93,    94,    95,   251,   252,   253,   254,   255,   256,   257,
-     258,   104,   261,   262,    10,    10,    10,    10,    10,    10,
+     234,   235,   236,   237,   238,   239,   240,   241,    37,    39,
+      40,    99,   127,   139,   242,   243,   244,   245,   246,    37,
+      45,    46,   126,   142,   247,   248,   249,   250,    89,    90,
+      91,    92,    93,    94,    95,   253,   254,   255,   256,   257,
+     258,   259,   260,   104,   263,   264,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
@@ -1239,7 +1262,7 @@ static const yytype_uint16 yystos[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10
+      10,    10,    10,    10
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1269,17 +1292,18 @@ static const yytype_uint16 yystos[] =
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                 \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    {                                                          \
-      yychar = (Token);                                                \
-      yylval = (Value);                                                \
-      YYPOPSTACK (1);                                          \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    {                                                          \
+#define YYBACKUP(Token, Value)                                  \
+do                                                              \
+  if (yychar == YYEMPTY)                                        \
+    {                                                           \
+      yychar = (Token);                                         \
+      yylval = (Value);                                         \
+      YYPOPSTACK (yylen);                                       \
+      yystate = *yyssp;                                         \
+      goto yybackup;                                            \
+    }                                                           \
+  else                                                          \
+    {                                                           \
       yyerror (YY_("syntax error: cannot back up")); \
       YYERROR;                                                 \
     }                                                          \
@@ -1289,32 +1313,33 @@ while (YYID (0))
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    If N is 0, then set CURRENT to the empty location which ends
    the previous symbol: RHS[0] (always defined).  */
 
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
-    do                                                                 \
-      if (YYID (N))                                                    \
-       {                                                               \
-         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
-         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
-         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
-         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
-       }                                                               \
-      else                                                             \
-       {                                                               \
-         (Current).first_line   = (Current).last_line   =              \
-           YYRHSLOC (Rhs, 0).last_line;                                \
-         (Current).first_column = (Current).last_column =              \
-           YYRHSLOC (Rhs, 0).last_column;                              \
-       }                                                               \
+# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
+    do                                                                  \
+      if (YYID (N))                                                     \
+        {                                                               \
+          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
+          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
+          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
+          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
+        }                                                               \
+      else                                                              \
+        {                                                               \
+          (Current).first_line   = (Current).last_line   =              \
+            YYRHSLOC (Rhs, 0).last_line;                                \
+          (Current).first_column = (Current).last_column =              \
+            YYRHSLOC (Rhs, 0).last_column;                              \
+        }                                                               \
     while (YYID (0))
 #endif
 
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+
+
 
 /* This macro is provided for backward compatibility. */
 
@@ -1374,6 +1399,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep)
     YYSTYPE const * const yyvaluep;
 #endif
 {
+  FILE *yyo = yyoutput;
+  YYUSE (yyo);
   if (!yyvaluep)
     return;
 # ifdef YYPRINT
@@ -1625,12 +1652,12 @@ static int
 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yytype_int16 *yyssp, int yytoken)
 {
-  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
   YYSIZE_T yysize1;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = 0;
+  const char *yyformat = YY_NULL;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
@@ -1690,7 +1717,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                     break;
                   }
                 yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
                 if (! (yysize <= yysize1
                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
                   return 2;
@@ -1782,20 +1809,6 @@ yydestruct (yymsg, yytype, yyvaluep)
 }
 
 
-/* Prevent warnings from -Wmissing-prototypes.  */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
 
 /* The lookahead symbol.  */
@@ -1842,7 +1855,7 @@ yyparse ()
        `yyss': related to states.
        `yyvs': related to semantic values.
 
-       Refer to the stacks thru separate pointers, to allow yyoverflow
+       Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
 
     /* The state stack.  */
@@ -1896,7 +1909,6 @@ yyparse ()
      The wasted elements are never initialized.  */
   yyssp = yyss;
   yyvsp = yyvs;
-
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -2074,18 +2086,16 @@ yyreduce:
   switch (yyn)
     {
         case 9:
-
-/* Line 1806 of yacc.c  */
-#line 118 "./util/configparser.y"
+/* Line 1787 of yacc.c  */
+#line 119 "./util/configparser.y"
     { 
                OUTYY(("\nP(server:)\n")); 
        }
     break;
 
-  case 110:
-
-/* Line 1806 of yacc.c  */
-#line 167 "./util/configparser.y"
+  case 111:
+/* Line 1787 of yacc.c  */
+#line 168 "./util/configparser.y"
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -2098,10 +2108,9 @@ yyreduce:
        }
     break;
 
-  case 118:
-
-/* Line 1806 of yacc.c  */
-#line 183 "./util/configparser.y"
+  case 119:
+/* Line 1787 of yacc.c  */
+#line 184 "./util/configparser.y"
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -2114,10 +2123,9 @@ yyreduce:
        }
     break;
 
-  case 125:
-
-/* Line 1806 of yacc.c  */
-#line 199 "./util/configparser.y"
+  case 126:
+/* Line 1787 of yacc.c  */
+#line 200 "./util/configparser.y"
     { 
                OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); 
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2127,10 +2135,9 @@ yyreduce:
        }
     break;
 
-  case 126:
-
-/* Line 1806 of yacc.c  */
-#line 208 "./util/configparser.y"
+  case 127:
+/* Line 1787 of yacc.c  */
+#line 209 "./util/configparser.y"
     { 
                OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); 
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2140,10 +2147,9 @@ yyreduce:
        }
     break;
 
-  case 127:
-
-/* Line 1806 of yacc.c  */
-#line 217 "./util/configparser.y"
+  case 128:
+/* Line 1787 of yacc.c  */
+#line 218 "./util/configparser.y"
     { 
                OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); 
                if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
@@ -2155,10 +2161,9 @@ yyreduce:
        }
     break;
 
-  case 128:
-
-/* Line 1806 of yacc.c  */
-#line 228 "./util/configparser.y"
+  case 129:
+/* Line 1787 of yacc.c  */
+#line 229 "./util/configparser.y"
     {
                OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2168,10 +2173,9 @@ yyreduce:
        }
     break;
 
-  case 129:
-
-/* Line 1806 of yacc.c  */
-#line 237 "./util/configparser.y"
+  case 130:
+/* Line 1787 of yacc.c  */
+#line 238 "./util/configparser.y"
     {
                OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2181,10 +2185,9 @@ yyreduce:
        }
     break;
 
-  case 130:
-
-/* Line 1806 of yacc.c  */
-#line 246 "./util/configparser.y"
+  case 131:
+/* Line 1787 of yacc.c  */
+#line 247 "./util/configparser.y"
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2194,10 +2197,9 @@ yyreduce:
        }
     break;
 
-  case 131:
-
-/* Line 1806 of yacc.c  */
-#line 255 "./util/configparser.y"
+  case 132:
+/* Line 1787 of yacc.c  */
+#line 256 "./util/configparser.y"
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -2211,10 +2213,9 @@ yyreduce:
        }
     break;
 
-  case 132:
-
-/* Line 1806 of yacc.c  */
-#line 268 "./util/configparser.y"
+  case 133:
+/* Line 1787 of yacc.c  */
+#line 269 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2230,10 +2231,9 @@ yyreduce:
        }
     break;
 
-  case 133:
-
-/* Line 1806 of yacc.c  */
-#line 283 "./util/configparser.y"
+  case 134:
+/* Line 1787 of yacc.c  */
+#line 284 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2243,10 +2243,9 @@ yyreduce:
        }
     break;
 
-  case 134:
-
-/* Line 1806 of yacc.c  */
-#line 292 "./util/configparser.y"
+  case 135:
+/* Line 1787 of yacc.c  */
+#line 293 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, 
@@ -2256,10 +2255,9 @@ yyreduce:
        }
     break;
 
-  case 135:
-
-/* Line 1806 of yacc.c  */
-#line 301 "./util/configparser.y"
+  case 136:
+/* Line 1787 of yacc.c  */
+#line 302 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, 
@@ -2269,10 +2267,9 @@ yyreduce:
        }
     break;
 
-  case 136:
-
-/* Line 1806 of yacc.c  */
-#line 310 "./util/configparser.y"
+  case 137:
+/* Line 1787 of yacc.c  */
+#line 311 "./util/configparser.y"
     {
                OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2282,10 +2279,9 @@ yyreduce:
        }
     break;
 
-  case 137:
-
-/* Line 1806 of yacc.c  */
-#line 319 "./util/configparser.y"
+  case 138:
+/* Line 1787 of yacc.c  */
+#line 320 "./util/configparser.y"
     {
                OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2295,10 +2291,9 @@ yyreduce:
        }
     break;
 
-  case 138:
-
-/* Line 1806 of yacc.c  */
-#line 328 "./util/configparser.y"
+  case 139:
+/* Line 1787 of yacc.c  */
+#line 329 "./util/configparser.y"
     {
                OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2308,10 +2303,9 @@ yyreduce:
        }
     break;
 
-  case 139:
-
-/* Line 1806 of yacc.c  */
-#line 337 "./util/configparser.y"
+  case 140:
+/* Line 1787 of yacc.c  */
+#line 338 "./util/configparser.y"
     {
                OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2321,10 +2315,9 @@ yyreduce:
        }
     break;
 
-  case 140:
-
-/* Line 1806 of yacc.c  */
-#line 346 "./util/configparser.y"
+  case 141:
+/* Line 1787 of yacc.c  */
+#line 347 "./util/configparser.y"
     {
                OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2334,10 +2327,9 @@ yyreduce:
        }
     break;
 
-  case 141:
-
-/* Line 1806 of yacc.c  */
-#line 355 "./util/configparser.y"
+  case 142:
+/* Line 1787 of yacc.c  */
+#line 356 "./util/configparser.y"
     {
                OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2347,10 +2339,9 @@ yyreduce:
        }
     break;
 
-  case 142:
-
-/* Line 1806 of yacc.c  */
-#line 364 "./util/configparser.y"
+  case 143:
+/* Line 1787 of yacc.c  */
+#line 365 "./util/configparser.y"
     {
                OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2360,10 +2351,9 @@ yyreduce:
        }
     break;
 
-  case 143:
-
-/* Line 1806 of yacc.c  */
-#line 373 "./util/configparser.y"
+  case 144:
+/* Line 1787 of yacc.c  */
+#line 374 "./util/configparser.y"
     {
                OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2373,10 +2363,9 @@ yyreduce:
        }
     break;
 
-  case 144:
-
-/* Line 1806 of yacc.c  */
-#line 382 "./util/configparser.y"
+  case 145:
+/* Line 1787 of yacc.c  */
+#line 383 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2386,10 +2375,9 @@ yyreduce:
        }
     break;
 
-  case 145:
-
-/* Line 1806 of yacc.c  */
-#line 391 "./util/configparser.y"
+  case 146:
+/* Line 1787 of yacc.c  */
+#line 392 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ssl_service_key);
@@ -2397,10 +2385,9 @@ yyreduce:
        }
     break;
 
-  case 146:
-
-/* Line 1806 of yacc.c  */
-#line 398 "./util/configparser.y"
+  case 147:
+/* Line 1787 of yacc.c  */
+#line 399 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->ssl_service_pem);
@@ -2408,10 +2395,9 @@ yyreduce:
        }
     break;
 
-  case 147:
-
-/* Line 1806 of yacc.c  */
-#line 405 "./util/configparser.y"
+  case 148:
+/* Line 1787 of yacc.c  */
+#line 406 "./util/configparser.y"
     {
                OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2421,10 +2407,9 @@ yyreduce:
        }
     break;
 
-  case 148:
-
-/* Line 1806 of yacc.c  */
-#line 414 "./util/configparser.y"
+  case 149:
+/* Line 1787 of yacc.c  */
+#line 415 "./util/configparser.y"
     {
                OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2434,10 +2419,9 @@ yyreduce:
        }
     break;
 
-  case 149:
-
-/* Line 1806 of yacc.c  */
-#line 423 "./util/configparser.y"
+  case 150:
+/* Line 1787 of yacc.c  */
+#line 424 "./util/configparser.y"
     {
                OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2452,10 +2436,9 @@ yyreduce:
        }
     break;
 
-  case 150:
-
-/* Line 1806 of yacc.c  */
-#line 437 "./util/configparser.y"
+  case 151:
+/* Line 1787 of yacc.c  */
+#line 438 "./util/configparser.y"
     {
                OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2465,10 +2448,9 @@ yyreduce:
        }
     break;
 
-  case 151:
-
-/* Line 1806 of yacc.c  */
-#line 446 "./util/configparser.y"
+  case 152:
+/* Line 1787 of yacc.c  */
+#line 447 "./util/configparser.y"
     {
                OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2478,10 +2460,9 @@ yyreduce:
        }
     break;
 
-  case 152:
-
-/* Line 1806 of yacc.c  */
-#line 455 "./util/configparser.y"
+  case 153:
+/* Line 1787 of yacc.c  */
+#line 456 "./util/configparser.y"
     {
                OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->chrootdir);
@@ -2489,10 +2470,9 @@ yyreduce:
        }
     break;
 
-  case 153:
-
-/* Line 1806 of yacc.c  */
-#line 462 "./util/configparser.y"
+  case 154:
+/* Line 1787 of yacc.c  */
+#line 463 "./util/configparser.y"
     {
                OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->username);
@@ -2500,10 +2480,9 @@ yyreduce:
        }
     break;
 
-  case 154:
-
-/* Line 1806 of yacc.c  */
-#line 469 "./util/configparser.y"
+  case 155:
+/* Line 1787 of yacc.c  */
+#line 470 "./util/configparser.y"
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->directory);
@@ -2511,10 +2490,9 @@ yyreduce:
        }
     break;
 
-  case 155:
-
-/* Line 1806 of yacc.c  */
-#line 476 "./util/configparser.y"
+  case 156:
+/* Line 1787 of yacc.c  */
+#line 477 "./util/configparser.y"
     {
                OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->logfile);
@@ -2523,10 +2501,9 @@ yyreduce:
        }
     break;
 
-  case 156:
-
-/* Line 1806 of yacc.c  */
-#line 484 "./util/configparser.y"
+  case 157:
+/* Line 1787 of yacc.c  */
+#line 485 "./util/configparser.y"
     {
                OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->pidfile);
@@ -2534,10 +2511,9 @@ yyreduce:
        }
     break;
 
-  case 157:
-
-/* Line 1806 of yacc.c  */
-#line 491 "./util/configparser.y"
+  case 158:
+/* Line 1787 of yacc.c  */
+#line 492 "./util/configparser.y"
     {
                OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
@@ -2545,10 +2521,9 @@ yyreduce:
        }
     break;
 
-  case 158:
-
-/* Line 1806 of yacc.c  */
-#line 498 "./util/configparser.y"
+  case 159:
+/* Line 1787 of yacc.c  */
+#line 499 "./util/configparser.y"
     {
                OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dlv_anchor_file);
@@ -2556,10 +2531,9 @@ yyreduce:
        }
     break;
 
-  case 159:
-
-/* Line 1806 of yacc.c  */
-#line 505 "./util/configparser.y"
+  case 160:
+/* Line 1787 of yacc.c  */
+#line 506 "./util/configparser.y"
     {
                OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
@@ -2567,10 +2541,9 @@ yyreduce:
        }
     break;
 
-  case 160:
-
-/* Line 1806 of yacc.c  */
-#line 512 "./util/configparser.y"
+  case 161:
+/* Line 1787 of yacc.c  */
+#line 513 "./util/configparser.y"
     {
                OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2579,10 +2552,9 @@ yyreduce:
        }
     break;
 
-  case 161:
-
-/* Line 1806 of yacc.c  */
-#line 520 "./util/configparser.y"
+  case 162:
+/* Line 1787 of yacc.c  */
+#line 521 "./util/configparser.y"
     {
                OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2591,10 +2563,9 @@ yyreduce:
        }
     break;
 
-  case 162:
-
-/* Line 1806 of yacc.c  */
-#line 528 "./util/configparser.y"
+  case 163:
+/* Line 1787 of yacc.c  */
+#line 529 "./util/configparser.y"
     {
                OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2603,10 +2574,9 @@ yyreduce:
        }
     break;
 
-  case 163:
-
-/* Line 1806 of yacc.c  */
-#line 536 "./util/configparser.y"
+  case 164:
+/* Line 1787 of yacc.c  */
+#line 537 "./util/configparser.y"
     {
                OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
@@ -2614,10 +2584,9 @@ yyreduce:
        }
     break;
 
-  case 164:
-
-/* Line 1806 of yacc.c  */
-#line 543 "./util/configparser.y"
+  case 165:
+/* Line 1787 of yacc.c  */
+#line 544 "./util/configparser.y"
     {
                OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str)))
@@ -2625,10 +2594,9 @@ yyreduce:
        }
     break;
 
-  case 165:
-
-/* Line 1806 of yacc.c  */
-#line 550 "./util/configparser.y"
+  case 166:
+/* Line 1787 of yacc.c  */
+#line 551 "./util/configparser.y"
     {
                OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2638,10 +2606,9 @@ yyreduce:
        }
     break;
 
-  case 166:
-
-/* Line 1806 of yacc.c  */
-#line 559 "./util/configparser.y"
+  case 167:
+/* Line 1787 of yacc.c  */
+#line 560 "./util/configparser.y"
     {
                OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2651,10 +2618,9 @@ yyreduce:
        }
     break;
 
-  case 167:
-
-/* Line 1806 of yacc.c  */
-#line 568 "./util/configparser.y"
+  case 168:
+/* Line 1787 of yacc.c  */
+#line 569 "./util/configparser.y"
     {
                OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->identity);
@@ -2662,10 +2628,9 @@ yyreduce:
        }
     break;
 
-  case 168:
-
-/* Line 1806 of yacc.c  */
-#line 575 "./util/configparser.y"
+  case 169:
+/* Line 1787 of yacc.c  */
+#line 576 "./util/configparser.y"
     {
                OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->version);
@@ -2673,10 +2638,9 @@ yyreduce:
        }
     break;
 
-  case 169:
-
-/* Line 1806 of yacc.c  */
-#line 582 "./util/configparser.y"
+  case 170:
+/* Line 1787 of yacc.c  */
+#line 583 "./util/configparser.y"
     {
                OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf))
@@ -2685,10 +2649,9 @@ yyreduce:
        }
     break;
 
-  case 170:
-
-/* Line 1806 of yacc.c  */
-#line 590 "./util/configparser.y"
+  case 171:
+/* Line 1787 of yacc.c  */
+#line 591 "./util/configparser.y"
     {
                OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf))
@@ -2697,10 +2660,9 @@ yyreduce:
        }
     break;
 
-  case 171:
-
-/* Line 1806 of yacc.c  */
-#line 598 "./util/configparser.y"
+  case 172:
+/* Line 1787 of yacc.c  */
+#line 599 "./util/configparser.y"
     {
                OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2714,10 +2676,9 @@ yyreduce:
        }
     break;
 
-  case 172:
-
-/* Line 1806 of yacc.c  */
-#line 611 "./util/configparser.y"
+  case 173:
+/* Line 1787 of yacc.c  */
+#line 612 "./util/configparser.y"
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2729,10 +2690,9 @@ yyreduce:
        }
     break;
 
-  case 173:
-
-/* Line 1806 of yacc.c  */
-#line 622 "./util/configparser.y"
+  case 174:
+/* Line 1787 of yacc.c  */
+#line 623 "./util/configparser.y"
     {
                OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
@@ -2741,10 +2701,9 @@ yyreduce:
        }
     break;
 
-  case 174:
-
-/* Line 1806 of yacc.c  */
-#line 630 "./util/configparser.y"
+  case 175:
+/* Line 1787 of yacc.c  */
+#line 631 "./util/configparser.y"
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2758,10 +2717,9 @@ yyreduce:
        }
     break;
 
-  case 175:
-
-/* Line 1806 of yacc.c  */
-#line 643 "./util/configparser.y"
+  case 176:
+/* Line 1787 of yacc.c  */
+#line 644 "./util/configparser.y"
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2771,10 +2729,9 @@ yyreduce:
        }
     break;
 
-  case 176:
-
-/* Line 1806 of yacc.c  */
-#line 652 "./util/configparser.y"
+  case 177:
+/* Line 1787 of yacc.c  */
+#line 653 "./util/configparser.y"
     {
                OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2784,10 +2741,9 @@ yyreduce:
        }
     break;
 
-  case 177:
-
-/* Line 1806 of yacc.c  */
-#line 661 "./util/configparser.y"
+  case 178:
+/* Line 1787 of yacc.c  */
+#line 662 "./util/configparser.y"
     {
                OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
@@ -2796,10 +2752,9 @@ yyreduce:
        }
     break;
 
-  case 178:
-
-/* Line 1806 of yacc.c  */
-#line 669 "./util/configparser.y"
+  case 179:
+/* Line 1787 of yacc.c  */
+#line 670 "./util/configparser.y"
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2813,10 +2768,9 @@ yyreduce:
        }
     break;
 
-  case 179:
-
-/* Line 1806 of yacc.c  */
-#line 682 "./util/configparser.y"
+  case 180:
+/* Line 1787 of yacc.c  */
+#line 683 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2826,10 +2780,9 @@ yyreduce:
        }
     break;
 
-  case 180:
-
-/* Line 1806 of yacc.c  */
-#line 691 "./util/configparser.y"
+  case 181:
+/* Line 1787 of yacc.c  */
+#line 692 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
@@ -2838,10 +2791,9 @@ yyreduce:
        }
     break;
 
-  case 181:
-
-/* Line 1806 of yacc.c  */
-#line 699 "./util/configparser.y"
+  case 182:
+/* Line 1787 of yacc.c  */
+#line 700 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2851,10 +2803,9 @@ yyreduce:
        }
     break;
 
-  case 182:
-
-/* Line 1806 of yacc.c  */
-#line 708 "./util/configparser.y"
+  case 183:
+/* Line 1787 of yacc.c  */
+#line 709 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
                verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
@@ -2863,10 +2814,9 @@ yyreduce:
        }
     break;
 
-  case 183:
-
-/* Line 1806 of yacc.c  */
-#line 716 "./util/configparser.y"
+  case 184:
+/* Line 1787 of yacc.c  */
+#line 717 "./util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2880,10 +2830,9 @@ yyreduce:
        }
     break;
 
-  case 184:
-
-/* Line 1806 of yacc.c  */
-#line 729 "./util/configparser.y"
+  case 185:
+/* Line 1787 of yacc.c  */
+#line 730 "./util/configparser.y"
     {
                OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->target_fetch_policy);
@@ -2891,10 +2840,9 @@ yyreduce:
        }
     break;
 
-  case 185:
-
-/* Line 1806 of yacc.c  */
-#line 736 "./util/configparser.y"
+  case 186:
+/* Line 1787 of yacc.c  */
+#line 737 "./util/configparser.y"
     {
                OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2905,10 +2853,9 @@ yyreduce:
        }
     break;
 
-  case 186:
-
-/* Line 1806 of yacc.c  */
-#line 746 "./util/configparser.y"
+  case 187:
+/* Line 1787 of yacc.c  */
+#line 747 "./util/configparser.y"
     {
                OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2919,10 +2866,9 @@ yyreduce:
        }
     break;
 
-  case 187:
-
-/* Line 1806 of yacc.c  */
-#line 756 "./util/configparser.y"
+  case 188:
+/* Line 1787 of yacc.c  */
+#line 757 "./util/configparser.y"
     {
                OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2933,10 +2879,9 @@ yyreduce:
        }
     break;
 
-  case 188:
-
-/* Line 1806 of yacc.c  */
-#line 766 "./util/configparser.y"
+  case 189:
+/* Line 1787 of yacc.c  */
+#line 767 "./util/configparser.y"
     {
                OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2947,10 +2892,9 @@ yyreduce:
        }
     break;
 
-  case 189:
-
-/* Line 1806 of yacc.c  */
-#line 776 "./util/configparser.y"
+  case 190:
+/* Line 1787 of yacc.c  */
+#line 777 "./util/configparser.y"
     {
                OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2961,10 +2905,9 @@ yyreduce:
        }
     break;
 
-  case 190:
-
-/* Line 1806 of yacc.c  */
-#line 786 "./util/configparser.y"
+  case 191:
+/* Line 1787 of yacc.c  */
+#line 787 "./util/configparser.y"
     {
                OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2975,10 +2918,9 @@ yyreduce:
        }
     break;
 
-  case 191:
-
-/* Line 1806 of yacc.c  */
-#line 796 "./util/configparser.y"
+  case 192:
+/* Line 1787 of yacc.c  */
+#line 797 "./util/configparser.y"
     {
                OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2989,10 +2931,9 @@ yyreduce:
        }
     break;
 
-  case 192:
-
-/* Line 1806 of yacc.c  */
-#line 806 "./util/configparser.y"
+  case 193:
+/* Line 1787 of yacc.c  */
+#line 807 "./util/configparser.y"
     {
                OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
@@ -3000,10 +2941,9 @@ yyreduce:
        }
     break;
 
-  case 193:
-
-/* Line 1806 of yacc.c  */
-#line 813 "./util/configparser.y"
+  case 194:
+/* Line 1787 of yacc.c  */
+#line 814 "./util/configparser.y"
     {
                OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
@@ -3011,10 +2951,9 @@ yyreduce:
        }
     break;
 
-  case 194:
-
-/* Line 1806 of yacc.c  */
-#line 820 "./util/configparser.y"
+  case 195:
+/* Line 1787 of yacc.c  */
+#line 821 "./util/configparser.y"
     {
                OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3024,10 +2963,9 @@ yyreduce:
        }
     break;
 
-  case 195:
-
-/* Line 1806 of yacc.c  */
-#line 829 "./util/configparser.y"
+  case 196:
+/* Line 1787 of yacc.c  */
+#line 830 "./util/configparser.y"
     {
                OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3037,10 +2975,9 @@ yyreduce:
        }
     break;
 
-  case 196:
-
-/* Line 1806 of yacc.c  */
-#line 838 "./util/configparser.y"
+  case 197:
+/* Line 1787 of yacc.c  */
+#line 839 "./util/configparser.y"
     {
                OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3050,10 +2987,9 @@ yyreduce:
        }
     break;
 
-  case 197:
-
-/* Line 1806 of yacc.c  */
-#line 847 "./util/configparser.y"
+  case 198:
+/* Line 1787 of yacc.c  */
+#line 848 "./util/configparser.y"
     {
                OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
@@ -3061,10 +2997,9 @@ yyreduce:
        }
     break;
 
-  case 198:
-
-/* Line 1806 of yacc.c  */
-#line 854 "./util/configparser.y"
+  case 199:
+/* Line 1787 of yacc.c  */
+#line 855 "./util/configparser.y"
     {
                OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3075,10 +3010,9 @@ yyreduce:
        }
     break;
 
-  case 199:
-
-/* Line 1806 of yacc.c  */
-#line 864 "./util/configparser.y"
+  case 200:
+/* Line 1787 of yacc.c  */
+#line 865 "./util/configparser.y"
     {
                OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
                if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
@@ -3093,10 +3027,9 @@ yyreduce:
        }
     break;
 
-  case 200:
-
-/* Line 1806 of yacc.c  */
-#line 878 "./util/configparser.y"
+  case 201:
+/* Line 1787 of yacc.c  */
+#line 879 "./util/configparser.y"
     {
                OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->module_conf);
@@ -3104,10 +3037,9 @@ yyreduce:
        }
     break;
 
-  case 201:
-
-/* Line 1806 of yacc.c  */
-#line 885 "./util/configparser.y"
+  case 202:
+/* Line 1787 of yacc.c  */
+#line 886 "./util/configparser.y"
     {
                OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3126,10 +3058,9 @@ yyreduce:
        }
     break;
 
-  case 202:
-
-/* Line 1806 of yacc.c  */
-#line 903 "./util/configparser.y"
+  case 203:
+/* Line 1787 of yacc.c  */
+#line 904 "./util/configparser.y"
     {
                OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3143,10 +3074,9 @@ yyreduce:
        }
     break;
 
-  case 203:
-
-/* Line 1806 of yacc.c  */
-#line 916 "./util/configparser.y"
+  case 204:
+/* Line 1787 of yacc.c  */
+#line 917 "./util/configparser.y"
     {
                OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3160,10 +3090,9 @@ yyreduce:
        }
     break;
 
-  case 204:
-
-/* Line 1806 of yacc.c  */
-#line 929 "./util/configparser.y"
+  case 205:
+/* Line 1787 of yacc.c  */
+#line 930 "./util/configparser.y"
     {
                OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3173,10 +3102,9 @@ yyreduce:
        }
     break;
 
-  case 205:
-
-/* Line 1806 of yacc.c  */
-#line 938 "./util/configparser.y"
+  case 206:
+/* Line 1787 of yacc.c  */
+#line 939 "./util/configparser.y"
     {
                OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3186,10 +3114,9 @@ yyreduce:
        }
     break;
 
-  case 206:
-
-/* Line 1806 of yacc.c  */
-#line 947 "./util/configparser.y"
+  case 207:
+/* Line 1787 of yacc.c  */
+#line 948 "./util/configparser.y"
     {
                OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3199,10 +3126,9 @@ yyreduce:
        }
     break;
 
-  case 207:
-
-/* Line 1806 of yacc.c  */
-#line 956 "./util/configparser.y"
+  case 208:
+/* Line 1787 of yacc.c  */
+#line 957 "./util/configparser.y"
     {
                OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3213,10 +3139,9 @@ yyreduce:
        }
     break;
 
-  case 208:
-
-/* Line 1806 of yacc.c  */
-#line 966 "./util/configparser.y"
+  case 209:
+/* Line 1787 of yacc.c  */
+#line 967 "./util/configparser.y"
     {
                OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3227,10 +3152,9 @@ yyreduce:
        }
     break;
 
-  case 209:
-
-/* Line 1806 of yacc.c  */
-#line 976 "./util/configparser.y"
+  case 210:
+/* Line 1787 of yacc.c  */
+#line 977 "./util/configparser.y"
     {
                OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3240,10 +3164,9 @@ yyreduce:
        }
     break;
 
-  case 210:
-
-/* Line 1806 of yacc.c  */
-#line 985 "./util/configparser.y"
+  case 211:
+/* Line 1787 of yacc.c  */
+#line 986 "./util/configparser.y"
     {
                OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3253,10 +3176,9 @@ yyreduce:
        }
     break;
 
-  case 211:
-
-/* Line 1806 of yacc.c  */
-#line 994 "./util/configparser.y"
+  case 212:
+/* Line 1787 of yacc.c  */
+#line 995 "./util/configparser.y"
     {
                OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->val_nsec3_key_iterations);
@@ -3264,10 +3186,9 @@ yyreduce:
        }
     break;
 
-  case 212:
-
-/* Line 1806 of yacc.c  */
-#line 1001 "./util/configparser.y"
+  case 213:
+/* Line 1787 of yacc.c  */
+#line 1002 "./util/configparser.y"
     {
                OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3277,10 +3198,9 @@ yyreduce:
        }
     break;
 
-  case 213:
-
-/* Line 1806 of yacc.c  */
-#line 1010 "./util/configparser.y"
+  case 214:
+/* Line 1787 of yacc.c  */
+#line 1011 "./util/configparser.y"
     {
                OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3290,10 +3210,9 @@ yyreduce:
        }
     break;
 
-  case 214:
-
-/* Line 1806 of yacc.c  */
-#line 1019 "./util/configparser.y"
+  case 215:
+/* Line 1787 of yacc.c  */
+#line 1020 "./util/configparser.y"
     {
                OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3303,10 +3222,9 @@ yyreduce:
        }
     break;
 
-  case 215:
-
-/* Line 1806 of yacc.c  */
-#line 1028 "./util/configparser.y"
+  case 216:
+/* Line 1787 of yacc.c  */
+#line 1029 "./util/configparser.y"
     {
                OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
@@ -3315,10 +3233,9 @@ yyreduce:
        }
     break;
 
-  case 216:
-
-/* Line 1806 of yacc.c  */
-#line 1036 "./util/configparser.y"
+  case 217:
+/* Line 1787 of yacc.c  */
+#line 1037 "./util/configparser.y"
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3332,10 +3249,9 @@ yyreduce:
        }
     break;
 
-  case 217:
-
-/* Line 1806 of yacc.c  */
-#line 1049 "./util/configparser.y"
+  case 218:
+/* Line 1787 of yacc.c  */
+#line 1050 "./util/configparser.y"
     {
                OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
@@ -3344,10 +3260,9 @@ yyreduce:
        }
     break;
 
-  case 218:
-
-/* Line 1806 of yacc.c  */
-#line 1057 "./util/configparser.y"
+  case 219:
+/* Line 1787 of yacc.c  */
+#line 1058 "./util/configparser.y"
     {
                OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
                if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
@@ -3370,10 +3285,9 @@ yyreduce:
        }
     break;
 
-  case 219:
-
-/* Line 1806 of yacc.c  */
-#line 1079 "./util/configparser.y"
+  case 220:
+/* Line 1787 of yacc.c  */
+#line 1080 "./util/configparser.y"
     {
                OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
@@ -3381,10 +3295,9 @@ yyreduce:
        }
     break;
 
-  case 220:
-
-/* Line 1806 of yacc.c  */
-#line 1086 "./util/configparser.y"
+  case 221:
+/* Line 1787 of yacc.c  */
+#line 1087 "./util/configparser.y"
     {
                char* ptr;
                OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
@@ -3400,10 +3313,9 @@ yyreduce:
        }
     break;
 
-  case 221:
-
-/* Line 1806 of yacc.c  */
-#line 1101 "./util/configparser.y"
+  case 222:
+/* Line 1787 of yacc.c  */
+#line 1102 "./util/configparser.y"
     {
                OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3414,10 +3326,9 @@ yyreduce:
        }
     break;
 
-  case 222:
-
-/* Line 1806 of yacc.c  */
-#line 1111 "./util/configparser.y"
+  case 223:
+/* Line 1787 of yacc.c  */
+#line 1112 "./util/configparser.y"
     {
                OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3428,10 +3339,18 @@ yyreduce:
        }
     break;
 
-  case 223:
+  case 224:
+/* Line 1787 of yacc.c  */
+#line 1122 "./util/configparser.y"
+    {
+               OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str)));
+               cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str));
+       }
+    break;
 
-/* Line 1806 of yacc.c  */
-#line 1121 "./util/configparser.y"
+  case 225:
+/* Line 1787 of yacc.c  */
+#line 1128 "./util/configparser.y"
     {
                OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->stubs->name)
@@ -3442,10 +3361,9 @@ yyreduce:
        }
     break;
 
-  case 224:
-
-/* Line 1806 of yacc.c  */
-#line 1131 "./util/configparser.y"
+  case 226:
+/* Line 1787 of yacc.c  */
+#line 1138 "./util/configparser.y"
     {
                OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
@@ -3453,10 +3371,9 @@ yyreduce:
        }
     break;
 
-  case 225:
-
-/* Line 1806 of yacc.c  */
-#line 1138 "./util/configparser.y"
+  case 227:
+/* Line 1787 of yacc.c  */
+#line 1145 "./util/configparser.y"
     {
                OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
@@ -3464,10 +3381,9 @@ yyreduce:
        }
     break;
 
-  case 226:
-
-/* Line 1806 of yacc.c  */
-#line 1145 "./util/configparser.y"
+  case 228:
+/* Line 1787 of yacc.c  */
+#line 1152 "./util/configparser.y"
     {
                OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3477,10 +3393,9 @@ yyreduce:
        }
     break;
 
-  case 227:
-
-/* Line 1806 of yacc.c  */
-#line 1154 "./util/configparser.y"
+  case 229:
+/* Line 1787 of yacc.c  */
+#line 1161 "./util/configparser.y"
     {
                OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3491,10 +3406,9 @@ yyreduce:
        }
     break;
 
-  case 228:
-
-/* Line 1806 of yacc.c  */
-#line 1164 "./util/configparser.y"
+  case 230:
+/* Line 1787 of yacc.c  */
+#line 1171 "./util/configparser.y"
     {
                OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->forwards->name)
@@ -3505,10 +3419,9 @@ yyreduce:
        }
     break;
 
-  case 229:
-
-/* Line 1806 of yacc.c  */
-#line 1174 "./util/configparser.y"
+  case 231:
+/* Line 1787 of yacc.c  */
+#line 1181 "./util/configparser.y"
     {
                OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
@@ -3516,10 +3429,9 @@ yyreduce:
        }
     break;
 
-  case 230:
-
-/* Line 1806 of yacc.c  */
-#line 1181 "./util/configparser.y"
+  case 232:
+/* Line 1787 of yacc.c  */
+#line 1188 "./util/configparser.y"
     {
                OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
@@ -3527,10 +3439,9 @@ yyreduce:
        }
     break;
 
-  case 231:
-
-/* Line 1806 of yacc.c  */
-#line 1188 "./util/configparser.y"
+  case 233:
+/* Line 1787 of yacc.c  */
+#line 1195 "./util/configparser.y"
     {
                OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3540,19 +3451,17 @@ yyreduce:
        }
     break;
 
-  case 232:
-
-/* Line 1806 of yacc.c  */
-#line 1197 "./util/configparser.y"
+  case 234:
+/* Line 1787 of yacc.c  */
+#line 1204 "./util/configparser.y"
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
     break;
 
-  case 242:
-
-/* Line 1806 of yacc.c  */
-#line 1208 "./util/configparser.y"
+  case 244:
+/* Line 1787 of yacc.c  */
+#line 1215 "./util/configparser.y"
     {
                OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
                if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3563,10 +3472,9 @@ yyreduce:
        }
     break;
 
-  case 243:
-
-/* Line 1806 of yacc.c  */
-#line 1218 "./util/configparser.y"
+  case 245:
+/* Line 1787 of yacc.c  */
+#line 1225 "./util/configparser.y"
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3576,10 +3484,9 @@ yyreduce:
        }
     break;
 
-  case 244:
-
-/* Line 1806 of yacc.c  */
-#line 1227 "./util/configparser.y"
+  case 246:
+/* Line 1787 of yacc.c  */
+#line 1234 "./util/configparser.y"
     {
                OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
@@ -3587,10 +3494,9 @@ yyreduce:
        }
     break;
 
-  case 245:
-
-/* Line 1806 of yacc.c  */
-#line 1234 "./util/configparser.y"
+  case 247:
+/* Line 1787 of yacc.c  */
+#line 1241 "./util/configparser.y"
     {
                OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_key_file);
@@ -3598,10 +3504,9 @@ yyreduce:
        }
     break;
 
-  case 246:
-
-/* Line 1806 of yacc.c  */
-#line 1241 "./util/configparser.y"
+  case 248:
+/* Line 1787 of yacc.c  */
+#line 1248 "./util/configparser.y"
     {
                OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_cert_file);
@@ -3609,10 +3514,9 @@ yyreduce:
        }
     break;
 
-  case 247:
-
-/* Line 1806 of yacc.c  */
-#line 1248 "./util/configparser.y"
+  case 249:
+/* Line 1787 of yacc.c  */
+#line 1255 "./util/configparser.y"
     {
                OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_key_file);
@@ -3620,10 +3524,9 @@ yyreduce:
        }
     break;
 
-  case 248:
-
-/* Line 1806 of yacc.c  */
-#line 1255 "./util/configparser.y"
+  case 250:
+/* Line 1787 of yacc.c  */
+#line 1262 "./util/configparser.y"
     {
                OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_cert_file);
@@ -3631,19 +3534,17 @@ yyreduce:
        }
     break;
 
-  case 249:
-
-/* Line 1806 of yacc.c  */
-#line 1262 "./util/configparser.y"
+  case 251:
+/* Line 1787 of yacc.c  */
+#line 1269 "./util/configparser.y"
     { 
                OUTYY(("\nP(python:)\n")); 
        }
     break;
 
-  case 253:
-
-/* Line 1806 of yacc.c  */
-#line 1271 "./util/configparser.y"
+  case 255:
+/* Line 1787 of yacc.c  */
+#line 1278 "./util/configparser.y"
     {
                OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->python_script);
@@ -3652,9 +3553,8 @@ yyreduce:
     break;
 
 
-
-/* Line 1806 of yacc.c  */
-#line 3658 "util/configparser.c"
+/* Line 1787 of yacc.c  */
+#line 3558 "util/configparser.c"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3841,7 +3741,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#if !defined(yyoverflow) || YYERROR_VERBOSE
+#if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -3883,9 +3783,8 @@ yyreturn:
 }
 
 
-
-/* Line 2067 of yacc.c  */
-#line 1276 "./util/configparser.y"
+/* Line 2048 of yacc.c  */
+#line 1283 "./util/configparser.y"
 
 
 /* parse helper routines could be here */
index 58309c4d467728f797fbe84cd02ea5922beeed88..a862769de20620799236df334492ce63b71107fa 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 2.6.1.  */
 
 /* Bison interface for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+#ifndef YY_UTIL_CONFIGPARSER_H
+# define YY_UTIL_CONFIGPARSER_H
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
      VAR_FORWARD_FIRST = 381,
      VAR_STUB_FIRST = 382,
      VAR_MINIMAL_RESPONSES = 383,
-     VAR_RRSET_ROUNDROBIN = 384
+     VAR_RRSET_ROUNDROBIN = 384,
+     VAR_MAX_UDP_SIZE = 385
    };
 #endif
 /* Tokens.  */
 #define VAR_STUB_FIRST 382
 #define VAR_MINIMAL_RESPONSES 383
 #define VAR_RRSET_ROUNDROBIN 384
-
+#define VAR_MAX_UDP_SIZE 385
 
 
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-
-/* Line 2068 of yacc.c  */
+/* Line 2049 of yacc.c  */
 #line 64 "./util/configparser.y"
 
        char*   str;
 
 
-
-/* Line 2068 of yacc.c  */
-#line 314 "util/configparser.h"
+/* Line 2049 of yacc.c  */
+#line 322 "util/configparser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -319,4 +327,18 @@ typedef union YYSTYPE
 
 extern YYSTYPE yylval;
 
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
+#endif /* !YY_UTIL_CONFIGPARSER_H  */
index 0dbee2b498c5547f800069719c17bf8efd5f4ffb..f3c5c9b7fe4a8f5dbffb2f2cadbcfd38d9e0d0ae 100644 (file)
@@ -105,6 +105,7 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM
 %token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST
 %token VAR_STUB_FIRST VAR_MINIMAL_RESPONSES VAR_RRSET_ROUNDROBIN
+%token VAR_MAX_UDP_SIZE
 
 %%
 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -161,7 +162,7 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag |
        server_log_queries | server_tcp_upstream | server_ssl_upstream |
        server_ssl_service_key | server_ssl_service_pem | server_ssl_port |
-       server_minimal_responses | server_rrset_roundrobin
+       server_minimal_responses | server_rrset_roundrobin | server_max_udp_size
        ;
 stubstart: VAR_STUB_ZONE
        {
@@ -1117,6 +1118,12 @@ server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG
                free($2);
        }
        ;
+server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG
+       {
+               OUTYY(("P(server_max_udp_size:%s)\n", $2));
+               cfg_parser->cfg->max_udp_size = atoi($2);
+       }
+       ;
 stub_name: VAR_NAME STRING_ARG
        {
                OUTYY(("P(name:%s)\n", $2));