]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
extended stats option.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 16 Sep 2008 09:08:45 +0000 (09:08 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 16 Sep 2008 09:08:45 +0000 (09:08 +0000)
git-svn-id: file:///svn/unbound/trunk@1238 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
doc/example.conf.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 e09d766f09a3cc1f4d23e8fb8c72c4a367a830eb..557ddd81e80f480af74dc8bd5d5ba83a3627a54d 100644 (file)
@@ -1,3 +1,6 @@
+16 September 2008: Wouter
+       - extended-statistics: yesno config option.
+
 15 September 2008: Wouter
        - working start, stop, reload commands for unbound-control.
        - test for unbound-control working; better exit value for control.
index 636dfc7a8fbb2b1bfae6c1f6b98538678ef82682..52ca070e804c3e9f8d390aabed5227a59bd538e4 100644 (file)
@@ -22,6 +22,10 @@ server:
        # enable cumulative statistics, without clearing them after printing.
        # statistics-cumulative: no
 
+       # enable extended statistics (query types, answer codes, status)
+       # printed from unbound-control. default off, because of speed.
+       # extended-statistics: no
+
        # number of threads to create. 1 disables threading.
        # num-threads: 1
 
index 989cee40ea397efc504e1211b74cc7962aa39377..810309dc6f052203d97e469df8fe72f5ff3e5366 100644 (file)
@@ -88,14 +88,18 @@ Default is level 1. The verbosity can also be increased from the commandline,
 see
 \fIunbound\fR(8).
 .TP
-.B statistics-interval: \fI<seconds>
+.B statistics\-interval: \fI<seconds>
 The number of seconds between printing statistics to the log for every thread.
 Disable with value 0 or "". Default is disabled. 
 .TP
-.B statistics-cumulative: \fI<yes or no>
+.B statistics\-cumulative: \fI<yes or no>
 If enabled, statistics are cumulative since starting unbound, without clearing
 the statistics counters after logging the statistics. Default is no.
 .TP
+.B extended\-statistics: \fI<yes or no>
+If enabled, extended statistics are printed from \fIunbound\-control\fR(8). 
+Default is off, because keeping track of more statistics takes time.
+.TP
 .B num\-threads: \fI<number>
 The number of threads to create to serve clients. Use 1 for no threading.
 .TP
index 892badb8e3f92e15379177a6e98f82a31c34b0ac..108e844b407a5cd25860304171506d9a3e111628 100644 (file)
@@ -75,6 +75,7 @@ config_create()
        cfg->verbosity = 1;
        cfg->stat_interval = 0;
        cfg->stat_cumulative = 0;
+       cfg->stat_extended = 0;
        cfg->num_threads = 1;
        cfg->port = UNBOUND_DNS_PORT;
        cfg->do_ip4 = 1;
@@ -226,6 +227,9 @@ int config_set_option(struct config_file* cfg, const char* opt,
        } else if(strcmp(opt, "num_threads:") == 0) {
                /* not supported, library must have 1 thread in bgworker */
                return 0;
+       } else if(strcmp(opt, "extended-statistics:") == 0) {
+               IS_YES_OR_NO;
+               cfg->stat_extended = (strcmp(val, "yes") == 0);
        } else if(strcmp(opt, "do-ip4:") == 0) {
                IS_YES_OR_NO;
                cfg->do_ip4 = (strcmp(val, "yes") == 0);
index 1544122f1598dc7ecea020d0fb825d57ab4bb65d..65121a1d5e37f6b4d205d25a86a33d208d914a09 100644 (file)
@@ -57,6 +57,8 @@ struct config_file {
        int stat_interval;
        /** if false, statistics values are reset after printing them */
        int stat_cumulative;
+       /** if true, the statistics are kept in greater detail */
+       int stat_extended;
 
        /** number of threads to create */
        int num_threads;
index 19bd5a5f3fe558d02f062482510de876cfec5da1..869724200d0ca238e7d8c86db0f4c2d0c4d73d75 100644 (file)
@@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 106
-#define YY_END_OF_BUFFER 107
+#define YY_NUM_RULES 107
+#define YY_END_OF_BUFFER 108
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -370,113 +370,115 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[955] =
+static yyconst flex_int16_t yy_accept[975] =
     {   0,
-        1,    1,   90,   90,   94,   94,   98,   98,  102,  102,
-      107,  105,    1,   88,   89,    2,   93,  106,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,   90,   91,  106,   92,  106,
-       94,   95,   96,  106,  101,   98,   99,  100,  106,  102,
-      103,  104,  106,  105,    0,    1,    2,    2,    2,    2,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,   90,    0,   94,    0,  101,    0,   98,
-
-      102,    0,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-
-      105,  105,  105,  105,  105,  105,  105,  105,   48,  105,
-      105,  105,  105,  105,    6,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-       20,  105,  105,  105,  105,   12,   13,  105,   15,   14,
-
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,    3,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,   97,  105,  105,  105,  105,  105,  105,  105,
-      105,   23,  105,  105,  105,  105,  105,  105,  105,   24,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-
-      105,  105,   60,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,   59,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,   21,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-       22,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,   17,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,   49,   50,   47,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,    5,  105,  105,  105,  105,  105,
-      105,  105,  105,   62,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,   77,   76,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,   25,  105,  105,
-      105,  105,  105,  105,  105,  105,   75,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,   41,  105,  105,  105,
-
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,    4,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,   83,  105,   16,  105,   52,   53,   51,
-      105,  105,  105,  105,  105,   58,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,   66,  105,  105,  105,  105,
-      105,  105,  105,  105,   31,  105,  105,  105,  105,  105,
-
-      105,  105,  105,  105,  105,  105,   57,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,   61,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,   68,
-      105,  105,  105,  105,   56,  105,   81,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-       32,   33,  105,   71,  105,  105,   27,  105,   73,  105,
-      105,  105,  105,  105,    7,  105,   46,   80,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,   63,  105,  105,  105,  105,
-
-      105,  105,  105,  105,  105,  105,  105,   72,   26,   28,
-      105,  105,  105,  105,  105,   45,  105,  105,  105,   84,
-      105,  105,  105,  105,  105,   44,  105,  105,  105,  105,
-      105,  105,   86,  105,  105,  105,  105,  105,  105,   11,
-      105,  105,  105,  105,  105,  105,   10,  105,  105,   29,
-      105,   85,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,   87,   82,  105,  105,  105,  105,  105,  105,  105,
-      105,   34,  105,  105,  105,  105,  105,   30,  105,  105,
-      105,   64,   65,  105,  105,   67,  105,  105,  105,  105,
-      105,  105,  105,  105,  105,  105,  105,   18,  105,  105,
-
-      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-      105,  105,  105,  105,   19,  105,    9,  105,  105,   78,
-       38,  105,  105,   70,   54,  105,  105,   40,   43,   39,
-      105,   35,  105,    8,  105,   69,  105,  105,  105,   36,
-      105,   79,  105,   55,   42,   37,  105,  105,  105,  105,
-      105,  105,   74,    0
+        1,    1,   91,   91,   95,   95,   99,   99,  103,  103,
+      108,  106,    1,   89,   90,    2,   94,  107,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,   91,   92,  107,   93,
+      107,   95,   96,   97,  107,  102,   99,  100,  101,  107,
+      103,  104,  105,  107,  106,    0,    1,    2,    2,    2,
+        2,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,   91,    0,   95,    0,  102,
+
+        0,   99,  103,    0,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,   48,  106,  106,  106,  106,  106,    6,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,   20,  106,  106,  106,
+
+      106,   12,   13,  106,   15,   14,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,    3,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+       98,  106,  106,  106,  106,  106,  106,  106,  106,   23,
+      106,  106,  106,  106,  106,  106,  106,   24,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+       60,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,   59,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,   21,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,   22,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,   17,
+
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,   49,   50,   47,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,    5,  106,  106,  106,  106,  106,
+      106,  106,  106,   62,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,   77,   76,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,   25,  106,
+      106,  106,  106,  106,  106,  106,  106,   75,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+
+      106,  106,  106,  106,  106,  106,  106,  106,   41,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,    4,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,   84,  106,   16,  106,  106,
+       52,   53,   51,  106,  106,  106,  106,  106,   58,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,   66,  106,
+
+      106,  106,  106,  106,  106,  106,  106,   31,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+       57,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+       61,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,   68,  106,  106,  106,  106,   56,  106,
+       82,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,   32,   33,  106,   71,  106,
+      106,   27,  106,   73,  106,  106,  106,  106,  106,    7,
+      106,   46,   81,  106,  106,  106,  106,  106,  106,  106,
+
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+       63,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,   72,   26,   28,  106,  106,  106,  106,
+      106,   45,  106,  106,  106,   85,  106,  106,  106,  106,
+      106,   44,  106,  106,  106,  106,  106,  106,   87,  106,
+      106,  106,  106,  106,  106,  106,   11,  106,  106,  106,
+      106,  106,  106,   10,  106,  106,   29,  106,   86,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,   88,   83,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,   34,
+      106,  106,  106,  106,  106,   30,  106,  106,  106,   64,
+
+       65,  106,  106,   67,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,   18,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,   80,  106,  106,
+      106,  106,  106,  106,   19,  106,    9,  106,  106,   78,
+       38,  106,  106,   70,   54,  106,  106,   40,   43,   39,
+      106,   35,  106,    8,  106,   69,  106,  106,  106,   36,
+      106,   79,  106,   55,   42,   37,  106,  106,  106,  106,
+      106,  106,   74,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -519,451 +521,459 @@ static yyconst flex_int32_t yy_meta[39] =
         1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[966] =
+static yyconst flex_int16_t yy_base[986] =
     {   0,
         0,    0,   36,   39,   43,   50,   62,   74,   55,   67,
-     1959, 1945,   49, 1960, 1960,   81, 1960,   88,   32,   83,
-       76,   78,   60,   89,   94,   86,   95,  103,   96,   98,
-      105,  101,  117,  111,  125, 1944, 1960, 1960, 1960,   57,
-     1943, 1960, 1960,  130, 1942, 1952, 1960, 1960,  144, 1940,
-     1960, 1960,  136, 1939,  148,  152,    0,  155,    0,    0,
-      148,  150,   71,  143,  114,  152,  159,  157,  158,  160,
-      161,  162,  163,  169,  167,  170,  178,  179,  180,  182,
-      184,  183,  185,  191,  193,  195,  189,  196,  198,  199,
-      204,  210,  205, 1938,  220, 1937,  223, 1936,  234, 1946,
-
-     1934,  238,  227,  231,  220,  218,  233,  240,  241,  202,
-      242,  243,  236,  244,  247,  251,  257,  262,  253,  265,
-      271,  267,  273,  274,  270,  275,  276,  278,  279,  282,
-      283,  284,  287,  289,  290,  280,  307,  308,  292,  286,
-      309,  311,  296,  312,  316,  318,  320,  322,  323,  327,
-      328,  332,  338,  321,  330,  334,  341,  339,  344,  343,
-      348,  349,  359,  352,  355,  353,  363,  364,  366,  367,
-      370,  376,  374,  375,  378,  384,  381,  382,  385,  383,
-      404,  391,  390,  392,  400,  394,  397,  402,  409,  415,
-      426,  408,  414,  416,  425,  428,  430,  434,  432,  435,
-
-      438,  440,  447,  450,  449,  452,  453,  454, 1933,  458,
-      456,  461,  462,  463, 1932,  464,  465,  467,  477,  468,
-      466,  478,  480,  487,  488,  481,  490,  398,  493,  494,
-      495,  496,  497,  500,  507,  498,  509,  506,  511,  518,
-      519,  523,  527,  529,  533,  535,  536,  542,  539,  541,
-      528,  544,  538,  545,  554,  557,  558,  559,  566,  563,
-      565,  567,  571,  513,  572,  573,  574,  580,  577,  581,
-      592,  582,  589,  588,  590,  599,  595,  603,  597,  598,
-      605,  606,  609,  610,  618,  608,  611,  619,  621,  626,
-     1931,  633,  622,  629,  630, 1930, 1929,  631, 1928, 1927,
-
-      640,  648,  636,  634,  638,  643,  646,  649,  654,  656,
-      658,  663,  669,  660,  673,  664,  675,  676,  677,  678,
-      682,  679,  689,  696,  680,  690,  692,  694, 1926,  698,
-      701,  699,  700,  702,  706,  714,  710,  711,  715,  712,
-      723,  718,  716,  725,  726,  730,  727,  731,  755,  735,
-      734,  736,  742,  738,  740,  750,  743,  747,  766,  756,
-      757,  768, 1925,  776,  777,  772,  773,  778,  779,  781,
-      782, 1924,  787,  786,  788,  789,  796,  797,  804, 1923,
-      802,  807,  792,  809,  808,  810,  814,  816,  818,  819,
-      820,  823,  822,  834,  827,  831,  828,  835,  840,  838,
-
-      842,  839, 1922,  843,  849,  845,  847,  852,  853,  854,
-      862,  857,  864,  866,  872,  867,  869,  859,  870,  875,
-      878,  879,  880,  882, 1921,  885,  886,  887,  895,  902,
-      908,  888,  904,  905,  896,  912,  915,  911,  917,  914,
-      920,  919,  922,  925,  926,  928,  930,  932,  937,  939,
-      941,  942,  944,  946,  947,  948, 1920,  962,  963,  964,
-      956,  949,  969,  960,  966,  970,  971,  973,  974,  976,
-     1919,  982,  975,  978,  980,  983,  986,  988,  989,  990,
-      991, 1002, 1003, 1004, 1005, 1008, 1014, 1015, 1016, 1918,
-     1011, 1021, 1023, 1024, 1031, 1027, 1028, 1032, 1033, 1034,
-
-     1035, 1038, 1036, 1039, 1041, 1040, 1049, 1056, 1044, 1062,
-     1065, 1917, 1916, 1915, 1064, 1054, 1042, 1058, 1070, 1071,
-     1073, 1075, 1076, 1077, 1914, 1079, 1078, 1081,  550, 1082,
-     1088, 1084, 1086, 1913, 1089, 1091, 1093, 1098, 1099, 1101,
-     1108, 1109, 1102, 1105, 1111, 1112, 1116, 1118, 1120, 1121,
-     1122, 1123, 1912, 1911, 1126, 1127, 1137, 1129, 1136, 1144,
-     1133, 1141, 1147, 1149, 1150, 1154, 1151, 1910, 1161, 1163,
-     1159, 1157, 1169, 1170, 1171, 1173, 1909, 1172, 1174, 1175,
-     1176, 1179, 1182, 1183, 1197, 1184, 1185, 1193, 1201, 1198,
-     1204, 1210, 1209, 1212, 1214, 1215, 1908, 1221, 1206, 1222,
-
-     1219, 1225, 1231, 1227, 1220, 1228, 1229, 1230, 1232, 1234,
-     1235, 1236, 1249, 1237, 1242, 1907, 1246, 1258, 1252, 1256,
-     1254, 1260, 1264, 1265, 1266, 1267, 1268, 1273, 1275, 1282,
-     1279, 1285, 1284, 1287, 1289, 1297, 1290, 1293, 1299, 1294,
-     1296, 1302, 1303, 1906, 1305, 1905, 1306, 1904, 1903, 1902,
-     1314, 1310, 1318, 1320, 1324, 1901, 1315, 1327, 1321, 1325,
-     1329, 1331, 1330, 1332, 1333, 1339, 1343, 1345, 1346, 1347,
-     1349, 1353, 1355, 1356, 1357, 1358, 1359, 1360, 1364, 1369,
-     1366, 1367, 1361, 1381, 1382, 1900, 1383, 1384, 1386, 1390,
-     1387, 1391, 1392, 1401, 1899, 1394, 1407, 1408, 1402, 1410,
-
-     1412, 1404, 1411, 1414, 1417, 1419, 1898, 1420, 1421, 1424,
-     1425, 1431, 1438, 1432, 1441, 1427, 1897, 1442, 1449, 1435,
-     1451, 1443, 1446, 1454, 1455, 1459, 1461, 1463, 1465, 1466,
-     1467, 1469, 1471, 1472, 1473, 1474, 1475, 1477, 1481, 1896,
-     1482, 1487, 1489, 1498, 1895, 1483, 1894, 1497, 1499, 1503,
-     1505, 1507, 1495, 1506, 1513, 1512, 1515, 1516, 1517, 1363,
-     1893, 1892, 1519, 1891, 1523, 1527, 1890, 1529, 1889, 1536,
-     1532, 1524, 1534, 1535, 1888, 1538, 1887, 1886, 1541, 1542,
-     1543, 1550, 1545, 1547, 1551, 1552, 1554, 1558, 1559, 1553,
-     1560, 1561, 1566, 1567, 1570, 1885, 1574, 1575, 1577, 1580,
-
-     1581, 1582, 1584, 1590, 1587, 1586, 1588, 1884, 1883, 1882,
-     1589, 1592, 1599, 1602, 1593, 1881, 1606, 1603, 1612, 1880,
-     1613, 1609, 1615, 1617, 1618, 1876, 1619, 1620, 1626, 1627,
-     1629, 1635, 1872, 1632, 1636, 1639, 1640, 1642, 1644, 1871,
-     1638, 1645, 1651, 1646, 1652, 1654, 1870, 1657, 1658, 1866,
-     1662, 1865, 1664, 1667, 1669, 1674, 1676, 1665, 1682, 1680,
-     1681, 1861, 1860, 1671, 1684, 1686, 1688, 1687, 1690, 1691,
-     1694, 1859, 1695, 1697, 1703, 1704, 1696, 1853, 1707, 1699,
-     1398, 1825, 1824, 1711, 1709, 1823, 1717, 1719, 1720, 1721,
-     1723, 1724, 1725, 1726, 1727, 1729, 1733, 1822, 1740, 1731,
-
-     1735, 1743, 1747, 1744, 1748, 1753, 1758, 1754, 1759, 1761,
-     1763, 1766, 1768, 1770, 1821, 1774, 1818, 1777, 1778, 1817,
-     1816, 1780, 1781, 1815, 1814, 1771, 1784, 1812, 1811, 1749,
-     1792, 1186, 1785, 1007, 1794,  751, 1782, 1796, 1798,  645,
-     1801,  600, 1802,  520,  437,  345, 1787, 1804, 1805, 1807,
-     1808, 1810,  300, 1960, 1839, 1845, 1851, 1857,  220, 1863,
-     1869, 1875,  144, 1880, 1886
+     1998, 1984,   49, 1999, 1999,   81, 1999,   88,   32,   83,
+       76,   48,   78,   60,   89,   94,   86,   95,  103,   96,
+       98,  105,  101,  117,  111,  125, 1983, 1999, 1999, 1999,
+      136, 1982, 1999, 1999,  130, 1981, 1991, 1999, 1999,  144,
+     1979, 1999, 1999,  140, 1978,  148,  152,    0,  155,    0,
+        0,  148,  150,  143,  152,  154,  156,  162,  159,  158,
+      163,  164,  161,  167,  169,  176,  181,  182,  172,  187,
+      188,  190,  191,  196,  192,  198,  197,  199,  202,  203,
+      205,  206,  207,  214,  215, 1977,  229, 1976,  233, 1975,
+
+      239, 1985, 1973,  243,  236,  208,  229,  218,  239,  245,
+      246,  242,  238,  248,  249,  251,  256,  257,  253,  268,
+      261,  269,  271,  277,  273,  281,  284,  280,  282,  283,
+      285,  286,  289,  290,  292,  293,  294,  297,  298,  310,
+      314,  299,  303,  315,  311,  307,  319,  328,  330,  318,
+      323,  332,  334,  326,  340,  342,  348,  336,  344,  345,
+      349,  346,  351,  356,  352,  358,  368,  360,  362,  366,
+      372,  374,  376,  377,  373,  384,  380,  388,  381,  394,
+      391,  387,  395,  397,  414,  401,  400,  402,  408,  404,
+      405,  407,  411,  425,  434,  418,  421,  433,  435,  438,
+
+      440,  441,  442,  443,  445,  449,  446,  456,  463,  459,
+      460,  461,  466, 1972,  468,  464,  471,  473,  472, 1971,
+      474,  475,  477,  491,  478,  476,  488,  487,  497,  498,
+      490,  500,  503,  504,  505,  507,  511,  508,  510,  525,
+      509,  519,  522,  527,  529,  530,  535,  537,  543,  540,
+      545,  546,  548,  554,  553,  550,  512,  556,  547,  559,
+      563,  565,  569,  566,  577,  574,  575,  576,  581,  582,
+      583,  584,  585,  592,  588,  595,  605,  591,  602,  593,
+      601,  608,  611,  609,  614,  616,  618,  617,  620,  621,
+      622,  619,  623,  628,  635,  639, 1970,  642,  631,  643,
+
+      633, 1969, 1968,  644, 1967, 1966,  645,  655,  661,  652,
+      646,  653,  659,  662,  666,  656,  673,  680,  676,  681,
+      671,  687,  688,  689,  690,  692,  693,  694,  696,  702,
+      709,  705,  706,  711,  713, 1965,  715,  714,  707,  717,
+      720,  721,  727,  728,  664,  731,  729,  732,  735,  737,
+      739,  740,  742,  743,  744,  768,  745,  747,  750,  752,
+      753,  774,  766,  765,  755,  780,  762,  781,  784,  787,
+     1964,  793,  789,  790,  791,  795,  796,  797,  798, 1963,
+      804,  805,  807,  809,  806,  819,  822, 1962,  823,  821,
+      813,  825,  826,  829,  830,  836,  837,  838,  839,  842,
+
+      412,  846,  840,  848,  849,  850,  764,  851,  852,  855,
+     1961,  857,  864,  860,  858,  862,  869,  866,  873,  876,
+      877,  878,  881,  884,  882,  887,  885,  889,  890,  891,
+      892,  894,  895, 1960,  898,  900,  902,  905,  917,  919,
+      922,  915,  918,  924,  930,  932,  928,  934,  935,  936,
+      929,  926,  937,  945,  942,  946,  947,  957,  961,  963,
+      949,  958,  964,  967,  971, 1959,  977,  979,  980,  976,
+      981,  983,  984,  986,  987,  988,  990,  991,  993, 1958,
+      997,  994,  995,  998, 1002, 1000, 1001, 1007, 1008, 1016,
+     1021, 1011, 1020, 1022, 1024, 1027, 1035, 1038, 1039, 1957,
+
+     1031, 1042, 1046, 1037, 1052, 1048, 1050, 1051, 1053, 1054,
+     1055, 1056, 1057, 1059, 1060, 1061, 1065, 1073, 1062, 1079,
+     1082, 1956, 1955, 1954,  951, 1076, 1083, 1084, 1086, 1087,
+     1088, 1091, 1092, 1093, 1953, 1095, 1094, 1097, 1100, 1099,
+     1108, 1105, 1109, 1952, 1114, 1110, 1117, 1120, 1121, 1122,
+     1123, 1126, 1130, 1129, 1131, 1132, 1136, 1133, 1143, 1139,
+     1141, 1142, 1144, 1951, 1950, 1147, 1148, 1152, 1159, 1169,
+     1171, 1154, 1165, 1157, 1167, 1172, 1175, 1178, 1949, 1184,
+     1186, 1182, 1187, 1183, 1185, 1192, 1194, 1948, 1193, 1197,
+     1198, 1199, 1200, 1205, 1206, 1213, 1207, 1214, 1215, 1223,
+
+     1216, 1227, 1229, 1220, 1233, 1235, 1237, 1238, 1947, 1245,
+     1230, 1248, 1228, 1250, 1251, 1242, 1244, 1254, 1256, 1257,
+     1258, 1261, 1262, 1264, 1265, 1267, 1269, 1946, 1272, 1279,
+     1276, 1278, 1281, 1287, 1280, 1270, 1291, 1290, 1283, 1293,
+     1305, 1309, 1307, 1315, 1301, 1313, 1298, 1316, 1314, 1318,
+     1320, 1321, 1323, 1324, 1325, 1945, 1326, 1944, 1331, 1336,
+     1943, 1942, 1941, 1338, 1339, 1340, 1344, 1348, 1940, 1343,
+     1349, 1351, 1352, 1353, 1354, 1356, 1361, 1357, 1368, 1358,
+     1369, 1373, 1372, 1376, 1378, 1360, 1385, 1382, 1384, 1386,
+     1389, 1392, 1388, 1393, 1394, 1390, 1396, 1407, 1939, 1408,
+
+     1410, 1416, 1412, 1405, 1418, 1420, 1427, 1938, 1424, 1429,
+     1430, 1432, 1434, 1436, 1435, 1437, 1438, 1441, 1442, 1444,
+     1937, 1445, 1446, 1447, 1450, 1463, 1466, 1457, 1468, 1452,
+     1936, 1471, 1473, 1460, 1475, 1477, 1479, 1480, 1481, 1487,
+     1484, 1489, 1491, 1492, 1497, 1493, 1495, 1499, 1501, 1507,
+     1503, 1505, 1509, 1935, 1398, 1511, 1515, 1523, 1934, 1522,
+     1933, 1524, 1525, 1529, 1531, 1534, 1526, 1532, 1536, 1543,
+     1540, 1539, 1542, 1544, 1508, 1932, 1931, 1548, 1930, 1556,
+     1558, 1929, 1560, 1928, 1566, 1562, 1550, 1553, 1564, 1927,
+     1568, 1926, 1925, 1570, 1571, 1572, 1579, 1576, 1580, 1581,
+
+     1582, 1583, 1585, 1586, 1588, 1589, 1590, 1591, 1598, 1600,
+     1924, 1601, 1604, 1606, 1607, 1609, 1610, 1611, 1617, 1619,
+     1620, 1612, 1621, 1923, 1922, 1921, 1622, 1628, 1633, 1623,
+     1627, 1920, 1636, 1638, 1643, 1919, 1645, 1639, 1648, 1647,
+     1649, 1918, 1650, 1653, 1661, 1651, 1663, 1668, 1917, 1669,
+     1659, 1672, 1671, 1673, 1676, 1678, 1916, 1679, 1681, 1684,
+     1685, 1688, 1686, 1912, 1689, 1690, 1908, 1693, 1907, 1695,
+     1700, 1703, 1705, 1708, 1709, 1715, 1712, 1713, 1906, 1902,
+     1716, 1718, 1719, 1720, 1723, 1721, 1724, 1727, 1725, 1901,
+     1729, 1730, 1739, 1741, 1733, 1897, 1743, 1746, 1731, 1896,
+
+     1895, 1750, 1753, 1889, 1754, 1748, 1756, 1761, 1758, 1763,
+     1764, 1769, 1765, 1767, 1776, 1777, 1861, 1779, 1768, 1771,
+     1784, 1789, 1780, 1786, 1794, 1796, 1797, 1859, 1798, 1800,
+     1802, 1807, 1804, 1811, 1856, 1812, 1855, 1817, 1814, 1854,
+     1853, 1821, 1818, 1852, 1850, 1808, 1822, 1849, 1655, 1454,
+     1825, 1391, 1828, 1034, 1830,  758, 1831, 1834, 1836,  697,
+     1838,  654, 1839,  558,  353,  174, 1841, 1842, 1843, 1845,
+     1844, 1847,  114, 1999, 1875, 1881, 1887, 1893,  100, 1899,
+     1905, 1911,   61, 1916, 1922
     } ;
 
-static yyconst flex_int16_t yy_def[966] =
+static yyconst flex_int16_t yy_def[986] =
     {   0,
-      954,    1,  955,  955,  956,  956,  957,  957,  958,  958,
-      954,  959,  954,  954,  954,  960,  954,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  961,  954,  954,  954,  961,
-      962,  954,  954,  962,  963,  954,  954,  954,  963,  964,
-      954,  954,  964,  959,  959,  954,  965,  960,  965,  960,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  961,  961,  962,  962,  963,  963,  954,
-
-      964,  964,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,    0,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954
+      974,    1,  975,  975,  976,  976,  977,  977,  978,  978,
+      974,  979,  974,  974,  974,  980,  974,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  981,  974,  974,  974,
+      981,  982,  974,  974,  982,  983,  974,  974,  974,  983,
+      984,  974,  974,  984,  979,  979,  974,  985,  980,  985,
+      980,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  981,  981,  982,  982,  983,
+
+      983,  974,  984,  984,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
+      979,  979,  979,    0,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974
     } ;
 
-static yyconst flex_int16_t yy_nxt[1999] =
+static yyconst flex_int16_t yy_nxt[2038] =
     {   0,
        12,   13,   14,   14,   15,   16,   17,   12,   12,   12,
-       12,   12,   18,   19,   12,   20,   21,   12,   22,   12,
-       23,   24,   25,   26,   27,   28,   29,   30,   12,   31,
-       32,   33,   34,   35,   12,   12,   12,   12,   37,   38,
-       39,   37,   38,   39,   55,   42,   38,   61,   40,   43,
-       56,   40,   42,   38,   57,   44,   43,   51,   51,   52,
-       94,   94,   44,   46,   47,   47,   48,   53,   38,   51,
-       51,   52,   55,   69,   49,   46,   47,   47,   48,   53,
-       38,   70,   59,   55,   59,   59,   49,   59,   55,   54,
-       55,   54,   54,   60,   54,   55,   62,   65,   55,   66,
-
-      105,   55,   67,   63,   68,   71,   55,   55,   55,   64,
-       55,   73,   74,   55,   72,   55,   77,   55,   87,   81,
-       78,   75,   84,   55,   82,   76,   55,   83,   80,   55,
-       89,   85,   88,   96,   86,   79,   96,   55,   92,  101,
-      101,   91,   93,  107,   98,   98,   90,   98,   98,   54,
-       98,   54,   54,   56,   54,   55,   59,   57,   59,   59,
-       55,   59,   55,  103,   55,  104,  109,   60,  106,   55,
-       55,   55,   55,   55,   55,   55,  112,  114,  113,   55,
-      115,   55,   55,  120,  118,  108,  110,  111,  119,  121,
-       55,   55,   55,  116,   55,   55,   55,   55,  123,  117,
-
-      126,   55,  122,   55,  124,   55,  128,   55,   55,  133,
-       55,   55,  127,  125,   55,  129,   55,   55,  132,  130,
-       54,  137,   55,   94,   94,  131,   96,  135,  134,   96,
-       55,  136,   55,  138,  139,   98,  151,   98,   98,   55,
-       98,  101,  101,   55,  140,   55,  142,  145,   55,  143,
-      144,  141,   55,   55,   55,   55,   55,  146,  152,   55,
-      153,  154,  147,   55,  159,   55,  148,  155,  158,   55,
-      156,  161,  149,  150,   55,  160,  157,   55,  163,   55,
-      165,  166,   55,   55,  164,   55,   55,   55,   55,  167,
-       55,   55,   55,  168,   55,   55,   55,  162,   55,   55,
-
-      173,   55,   55,  176,   55,  171,  182,  169,   55,  177,
-      178,  170,   55,  172,  179,  181,  184,  174,  175,   55,
-       55,   55,  183,   55,   55,  187,  185,  188,   55,  189,
-       55,  190,   55,   55,   55,   55,  180,  186,  193,   55,
-       55,  195,   55,  194,   55,  197,   55,  191,  192,  196,
-       55,   55,  198,   55,  201,   55,   55,   55,  200,  203,
-       55,   55,  199,  209,   55,   55,  204,   55,  202,  205,
-      210,   55,  206,  207,  208,   55,   55,  215,   55,   55,
-      216,  211,   55,  218,  212,  214,   55,   55,   55,  213,
-       55,  222,  220,   55,   55,   55,   55,   55,  223,  221,
-
-      225,  217,   55,   55,   55,  219,   55,  236,  227,   55,
-       55,  234,   55,  224,   55,  226,   55,  233,  228,  229,
-       55,   55,  235,  238,  282,  237,   55,   55,   55,  230,
-      231,  232,  241,  239,  240,  242,  243,   55,   55,  244,
-       55,  245,   55,  246,   55,  254,   55,   55,  252,   55,
-       55,  249,   55,  248,  247,  251,  253,  257,  255,   55,
-      256,   55,   55,  250,   55,   55,   55,  261,   55,  259,
-       55,  262,  258,   55,   55,   55,   55,   55,   55,   55,
-       55,  264,  268,  265,  270,  260,  266,  269,  263,   55,
-       55,  273,   55,   55,  277,  267,  272,  271,  274,   55,
-
-       55,  279,   55,  281,  278,   55,   55,   55,   55,   55,
-       55,  276,   55,  286,  289,  275,  283,  280,   55,   55,
-      291,   55,  290,   55,  284,   55,  288,  287,  285,  292,
-       55,   55,   55,  294,  296,   55,  298,  293,  297,   55,
-       55,   55,  321,  295,  299,   55,  300,   55,   55,  302,
-       55,   55,  301,   55,   55,  303,   55,   55,  304,  305,
-      308,  306,   55,  307,  586,  309,   55,  311,  310,   55,
-       55,   55,  312,  316,  313,   55,  315,   55,   55,   55,
-      318,  317,  319,   55,   55,   55,   55,  325,  320,   55,
-      323,  324,   55,   55,   55,  314,  327,  322,  326,  328,
-
-       55,   55,   55,  329,   55,  331,  334,   55,  335,   55,
-       55,   55,   55,  330,  332,   55,  333,   55,   55,  336,
-       55,   55,   55,   55,  337,  340,  341,  342,  338,  339,
-       55,   55,  345,   55,   55,  343,  347,  344,   55,  348,
-      349,   55,   55,   55,  346,   55,   55,  354,   55,  351,
-       55,  350,   55,  360,  363,   55,  352,   55,   55,  353,
-       55,   55,  365,  361,  355,  364,   55,  356,   55,  367,
-       55,  357,   55,  368,  362,   55,   55,  358,  359,  373,
-      366,   55,  370,  369,  372,   55,  371,   55,   55,   55,
-       55,   55,   55,  374,   55,  382,  375,  376,  379,  378,
-
-      380,   55,   55,  381,   55,  384,   55,  377,   55,  385,
-       55,   55,   55,   55,   55,  383,  386,  388,   55,  387,
-      391,  393,   55,   55,   55,  390,   55,   55,   55,  389,
-       55,  392,  396,  399,  395,   55,  398,   55,   55,   55,
-      394,  403,   55,   55,  397,  400,   55,   55,   55,  401,
-       55,  415,   55,  404,   55,   55,  420,  402,  416,   55,
-      412,  413,   55,   55,  421,  418,  405,   55,   55,   55,
-      406,  411,  407,  419,  414,  417,  408,  409,   55,  425,
-       55,  423,  410,  426,   55,   55,  422,  424,   55,   55,
-       55,   55,  427,   55,   55,  430,  431,  429,   55,   55,
-
-       55,   55,  428,  435,   55,  436,  437,  433,   55,   55,
-      439,  440,  432,  434,   55,  441,   55,  438,  442,   55,
-       55,   55,   55,  444,  445,  446,   55,  447,   55,  448,
-       55,   55,   55,  443,   55,   55,  451,  452,  453,   55,
-       55,  455,  457,   55,  454,  449,   55,   55,  460,  450,
-       55,   55,   55,  456,   55,   55,  465,   55,  458,   55,
-      459,   55,  466,  462,   55,   55,   55,  461,  464,   55,
-      469,   55,  467,  471,   55,  463,   55,  468,   55,   55,
-      470,   55,   55,  474,   55,  473,  472,   55,  475,  478,
-       55,   55,   55,  476,   55,  477,  481,   55,   55,   55,
-
-       55,  492,  479,  484,  480,  482,  486,   55,   55,  489,
-      485,  483,  488,  490,   55,  491,   55,   55,  487,  496,
-       55,  493,  497,   55,   55,  495,   55,   55,  498,   55,
-      494,   55,   55,  499,   55,  500,  504,   55,   55,  501,
-       55,  502,   55,  503,   55,  505,  508,  506,  512,   55,
-      513,   55,  514,   55,   55,  507,   55,  509,   55,   55,
-       55,   55,  511,  517,  516,  518,  510,  519,   55,  520,
-      521,  522,   55,  515,   55,   55,   55,  523,   55,  524,
-      525,   55,   55,   55,  529,   55,   55,   55,   55,  533,
-       55,  526,   55,  534,   55,   55,  537,  527,   55,  528,
-
-       55,   55,   55,   55,  530,  532,  541,  536,  543,  542,
-      531,  539,  535,  538,   55,   55,   55,   55,  540,   55,
-       55,  549,  550,   55,  545,  548,   55,   55,   55,  551,
-      546,  544,  553,   55,  554,   55,   55,  547,  556,   55,
-       55,  552,  555,   55,   55,   55,   55,   55,   55,  564,
-       55,   55,   55,   55,   55,  565,   55,  557,  558,  561,
-      568,   55,  559,  560,  563,  566,   55,  562,   55,  571,
-       55,  567,  572,  569,   55,  570,   55,   55,  575,  573,
-      574,  577,   55,   55,  576,   55,  579,   55,   55,   55,
-       55,   55,  581,   55,   55,  588,   55,  580,   55,  587,
-
-       55,   55,  578,   55,  590,   55,  591,  582,  583,  584,
-       55,   55,  585,   55,   55,  589,  595,   55,  596,  597,
-       55,   55,  593,   55,   55,  604,  598,  592,   55,  594,
-       55,  599,   55,   55,   55,   55,  600,  602,   55,   55,
-      603,   55,  601,  615,  608,   55,  609,  610,   55,   55,
-      614,  605,  606,   55,  607,  616,   55,  611,  612,   55,
-      613,   55,   55,   55,  617,  618,   55,  622,  624,   55,
-      625,   55,  627,   55,  620,   55,  619,  626,  628,  621,
-      623,   55,   55,   55,   55,   55,   55,   55,   55,  629,
-      634,   55,  635,  636,   55,   55,   55,   55,   55,  630,
-
-      637,  631,  632,  633,  640,   55,  639,  641,  638,   55,
-       55,  643,  644,   55,  642,  646,   55,  647,   55,  645,
-      648,   55,   55,  649,   55,  650,   55,   55,  652,  654,
-      651,   55,   55,   55,   55,  653,  656,   55,  657,   55,
-       55,   55,   55,   55,   55,  665,   55,   55,   55,   55,
-      658,  661,  659,  666,   55,  655,  667,  660,   55,  662,
-      663,   55,  669,  672,   55,  673,   55,  664,   55,  671,
-       55,  676,   55,  668,  670,  675,   55,   55,   55,   55,
-       55,  677,  684,  674,  680,   55,  687,   55,  681,  685,
-      678,   55,  688,  686,   55,  679,   55,   55,  683,   55,
-
-      682,   55,   55,  690,  692,   55,   55,  689,   55,   55,
-      695,   55,  696,  697,   55,   55,  694,   55,   55,  701,
-      698,  703,   55,  693,  699,  691,   55,   55,  700,  702,
-       55,  705,   55,   55,  706,  707,   55,   55,  704,   55,
-      709,   55,   55,   55,   55,   55,  708,  716,  711,  715,
-      717,   55,  712,  710,  713,   55,  714,   55,   55,   55,
-      720,   55,  719,  725,  721,   55,  722,   55,   55,   55,
-       55,   55,   55,   55,  726,   55,   55,  806,   55,   55,
-      718,   55,  723,  729,  728,  730,  724,  731,  727,  733,
-      732,  734,  735,   55,   55,   55,   55,  740,   55,   55,
-
-      737,  738,   55,   55,   55,  739,   55,  743,  736,  744,
-       55,  741,  745,   55,   55,  746,   55,  742,  747,   55,
-       55,  748,   55,   55,   55,  749,   55,  750,  751,   55,
-      752,   55,   55,   55,  903,  757,   55,   55,  760,   55,
-      755,  753,  761,   55,   55,  758,  754,   55,  759,  762,
-       55,  756,  764,   55,   55,   55,  763,  765,   55,  766,
-      767,   55,  769,   55,  771,  768,   55,   55,  773,  772,
-      775,   55,  770,   55,  777,   55,  778,   55,   55,   55,
-      780,   55,  774,   55,   55,   55,   55,   55,  782,   55,
-      784,  776,  781,   55,   55,   55,  786,  788,  787,   55,
-
-      785,   55,  791,  779,  783,  792,  793,   55,  790,   55,
-       55,   55,  794,  789,  796,   55,  795,   55,   55,   55,
-      801,  797,  798,  800,   55,   55,  799,   55,   55,   55,
-      802,   55,  807,  804,  808,   55,   55,  805,  809,   55,
-      810,   55,  803,  811,   55,  812,   55,   55,   55,  816,
-       55,  813,  815,   55,   55,   55,  818,   55,  817,   55,
-      819,  820,   55,   55,   55,   55,   55,  814,  821,  826,
-       55,   55,   55,   55,  823,  824,  822,  825,   55,   55,
-      827,  833,   55,  831,  832,  830,   55,   55,  835,   55,
-      828,  829,   55,   55,   55,  840,   55,  841,   55,   55,
-
-       55,   55,   55,  834,   55,   55,  836,  846,  838,  837,
-      847,   55,  839,  842,   55,   55,  843,  850,   55,  844,
-      845,   55,  849,  852,   55,   55,  853,   55,  848,   55,
-       55,   55,   55,  851,  856,  857,  855,  859,   55,   55,
-      862,   55,  854,  860,   55,  858,  863,   55,   55,  864,
-       55,   55,   55,  861,   55,  868,   55,   55,   55,  865,
-      866,  867,  872,   55,   55,  869,   55,  873,  870,   55,
-       55,  875,  874,  878,   55,  871,   55,   55,  876,   55,
-      880,   55,  877,   55,  881,  882,   55,  883,   55,  885,
-      884,  886,   55,   55,   55,  879,   55,  887,   55,   55,
-
-       55,  888,   55,   55,  889,  891,   55,   55,   55,   55,
-      896,   55,  894,  890,  898,   55,   55,  900,  892,   55,
-      899,   55,  902,   55,  904,  895,  897,  893,  901,   55,
-      905,   55,   55,   55,  906,   55,   55,   55,   55,   55,
-      915,   55,  912,   55,  911,   55,  908,   55,  909,  907,
-      916,  917,   55,  910,  920,   55,   55,  914,  921,   55,
-       55,   55,  918,  913,  924,   55,   55,  922,  919,  925,
-       55,   55,  928,   55,  929,   55,  927,  930,   55,  923,
-       55,  932,   55,   55,  926,  931,   55,  933,  934,   55,
-       55,  936,   55,   55,   55,  935,   55,   55,  937,   55,
-
-      939,  941,  938,  940,   55,  942,   55,  944,   55,  945,
-       55,  943,  946,   55,   55,  947,   55,   55,  948,   55,
-       55,  953,   55,   55,   55,  949,   55,   55,   55,   55,
-       55,  950,  951,   55,   55,   55,   55,   55,  952,   36,
-       36,   36,   36,   36,   36,   41,   41,   41,   41,   41,
-       41,   45,   45,   45,   45,   45,   45,   50,   50,   50,
-       50,   50,   50,   58,   58,   55,   58,   58,   58,   94,
-       94,   55,   55,   55,   94,   96,   96,   55,   55,   96,
-      101,  101,   55,   55,   55,  101,   59,   59,   55,   59,
-       59,   59,   55,   55,   55,   55,   55,   55,   55,   55,
-
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,  102,  100,   99,   97,
-       95,   55,  102,  100,   99,   97,   95,   55,  954,   11,
-      954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954,  954,  954,  954
-
+       12,   12,   18,   19,   12,   20,   21,   22,   23,   12,
+       24,   25,   26,   27,   28,   29,   30,   31,   12,   32,
+       33,   34,   35,   36,   12,   12,   12,   12,   38,   39,
+       40,   38,   39,   40,   56,   43,   39,   62,   41,   44,
+       57,   41,   43,   39,   58,   45,   44,   52,   52,   53,
+       56,  100,   45,   47,   48,   48,   49,   54,   39,   52,
+       52,   53,   56,   71,   50,   47,   48,   48,   49,   54,
+       39,   72,   60,   69,   60,   60,   50,   60,   56,   55,
+       56,   55,   55,   61,   55,   56,   63,   66,   56,   67,
+
+       55,   56,   68,   64,   70,   73,   56,   56,   56,   65,
+       56,   75,   76,   56,   74,   56,   79,   56,   89,   83,
+       80,   77,   86,   56,   84,   78,   56,   85,   82,   56,
+       91,   87,   90,   98,   88,   81,   98,   56,   94,   96,
+       96,   93,   95,  103,  103,  100,   92,  100,  100,   55,
+      100,   55,   55,   57,   55,   56,   60,   58,   60,   60,
+       56,   60,   56,  105,   56,  106,   56,   61,   56,  111,
+       56,   56,  107,   56,   56,   56,   56,  108,  116,   56,
+      115,   56,  117,  109,   56,  118,   56,  113,   56,  110,
+      112,  121,  114,   56,   56,  122,  125,  123,  119,   56,
+
+       56,  124,   56,   56,   56,  120,  126,  129,   56,   56,
+       56,   56,  127,  131,   56,   56,  136,   56,   56,   56,
+       56,  128,  132,  133,  140,  130,   56,   56,  144,  134,
+       56,  135,   96,   96,  138,  137,   98,  141,  139,   98,
+      100,   56,  100,  100,  142,  100,  103,  103,   56,  146,
+       56,   56,  148,  143,   56,  145,  147,   56,   56,  154,
+       56,   56,  149,   56,  156,   56,  157,  150,   56,   56,
+      162,  151,  155,   56,  164,  163,  158,  152,  153,  159,
+       56,   56,  160,   56,  167,   56,  161,  165,  169,   56,
+      168,  170,   56,   56,   56,   56,   56,   56,   56,  171,
+
+      172,   56,   56,  166,   56,   56,   56,  177,  180,   56,
+       56,   56,  175,  186,  173,   56,  181,  183,  174,   56,
+      176,  185,   56,   56,  179,  178,   56,   56,  182,  187,
+       56,   56,  189,  188,  192,   56,  191,  190,   56,  184,
+       56,  193,   56,  194,   56,  195,   56,  197,   56,  196,
+      198,  199,   56,  200,   56,  202,   56,   56,   56,  201,
+       56,   56,  206,   56,   56,   56,  208,  203,   56,  205,
+       56,  214,   56,  210,   56,  207,  204,  215,   56,  209,
+       56,  211,  212,  213,   56,   56,   56,  220,   56,   56,
+      221,  223,   56,   56,  216,  219,   56,  217,  218,   56,
+
+       56,  227,  226,   56,  222,  225,   56,   56,  228,   56,
+      230,  224,   56,   56,   56,  241,   56,   56,  229,   56,
+       56,  239,  232,   56,   56,  231,   56,  238,  233,  234,
+       56,  243,  240,   56,  463,  242,  245,   56,  244,  235,
+      236,  237,  246,  247,  248,   56,   56,   56,  250,  249,
+       56,  252,   56,   56,   56,   56,  260,   56,   56,  258,
+      251,   56,  255,  257,  261,  254,  259,  253,   56,  262,
+      263,   56,   56,   56,  256,   56,   56,  265,   56,  267,
+       56,  268,  264,   56,   56,   56,   56,   56,   56,   56,
+       56,  270,  274,  266,  271,  272,  269,  275,  276,   56,
+
+       56,  279,   56,   56,  283,  273,  278,  277,  280,   56,
+       56,  285,   56,  287,  284,   56,   56,   56,  282,   56,
+       56,   56,   56,   56,   56,  281,  286,  289,  292,  288,
+      297,   56,  295,  296,   56,  290,  294,   56,  293,   56,
+      291,   56,   56,  312,  300,  298,  302,   56,  303,   56,
+      304,  305,   56,  299,  301,   56,  306,   56,   56,   56,
+       56,  309,   56,  307,  308,   56,   56,  311,   56,  310,
+       56,   56,  314,  313,  315,   56,  318,   56,   56,  316,
+      319,   56,  317,  322,  323,  320,   56,   56,   56,   56,
+      325,  326,  324,   56,   56,   56,   56,   56,  327,  332,
+
+       56,  330,  331,   56,   56,   56,  321,   56,  329,  333,
+      334,  328,  335,   56,   56,  341,  336,   56,  338,  339,
+       56,   56,  337,   56,  342,  343,   56,  340,   56,   56,
+       56,   56,   56,   56,   56,   56,  347,  348,  349,  350,
+       56,  344,  346,   56,  352,   56,  345,   56,  351,  356,
+      354,   56,  355,  353,   56,   56,   56,   56,   56,  359,
+      357,  361,  362,  358,   56,   56,   56,   56,   56,  368,
+      371,   56,  360,   56,   56,  369,   56,  363,   56,  373,
+      364,  372,  374,   56,  365,   56,  375,  403,   56,  370,
+      366,  367,   56,   56,  378,  376,  377,  379,  380,   56,
+
+       56,   56,   56,  381,   56,   56,   56,  382,   56,   56,
+      383,  386,  384,  388,   56,  387,  389,   56,   56,   56,
+      390,   56,  385,   56,  392,   56,   56,   56,  393,   56,
+      396,  391,   56,   56,  401,  394,  395,  397,  399,   56,
+       56,   56,  398,   56,   56,  406,  400,   56,  404,   56,
+      407,   56,   56,  411,   56,   56,   56,   56,  402,   56,
+      423,  405,   56,  409,   56,   56,  408,   56,  429,  412,
+       56,  410,  469,  420,   56,  421,   56,   56,   56,  413,
+       56,  419,  431,  414,  422,  415,   56,  424,  428,  416,
+      417,  427,   56,   56,  425,  418,   56,  430,  434,   56,
+
+      435,   56,   56,   56,  436,   56,  432,   56,   56,   56,
+       56,  426,  439,  440,  433,  438,   56,   56,   56,   56,
+      437,   56,  444,  442,  445,   56,  446,  447,  441,  449,
+      443,   56,  448,   56,   56,   56,  450,   56,   56,  451,
+      454,   56,   56,  455,  453,  457,  456,  452,   56,   56,
+       56,   56,   56,  464,   56,  460,  461,  462,   56,  466,
+       56,   56,   56,   56,   56,  458,  465,   56,  459,   56,
+       56,  474,   56,  471,   56,  468,   56,  475,   56,  467,
+      470,   56,  473,  476,  480,   56,  478,  477,   56,   56,
+       56,  472,  479,   56,   56,  483,   56,   56,  482,   56,
+
+      485,   56,   56,   56,   56,  481,   56,   56,  486,  491,
+       56,  484,   56,  487,   56,  488,  494,   56,  492,  490,
+      496,  489,  498,  495,  499,  493,  501,   56,  500,   56,
+       56,   56,  503,  497,   56,  502,   56,  506,   56,  507,
+       56,   56,   56,  504,   56,  508,   56,   56,   56,   56,
+      509,  516,  514,  505,   56,  515,  510,   56,   56,   56,
+      511,   56,  512,   56,  513,  518,  584,  517,  522,   56,
+       56,  519,  523,   56,  524,   56,   56,  521,  526,   56,
+      525,  527,  520,   56,  530,  528,  531,  532,   56,   56,
+      529,   56,   56,   56,  535,   56,   56,  533,   56,   56,
+
+       56,  539,   56,   56,  543,   56,   56,   56,  544,   56,
+       56,  534,   56,   56,   56,  536,  538,  537,  548,   56,
+       56,  540,  542,   56,  546,  552,  550,  541,   56,  547,
+      549,  545,   56,   56,   56,  553,   56,  551,  554,   56,
+      555,  556,  560,   56,  559,  561,   56,   56,  557,   56,
+       56,   56,  562,  564,   56,  566,  558,  565,   56,  567,
+       56,  563,   56,   56,   56,   56,   56,   56,   56,   56,
+      575,   56,   56,   56,   56,  576,  579,   56,  568,  572,
+      569,  570,  574,  571,  577,   56,  582,  573,   56,  583,
+      580,   56,  578,  581,   56,   56,   56,  588,   56,   56,
+
+       56,  590,  585,   56,   56,   56,   56,   56,  592,   56,
+      587,   56,   56,  591,  597,  599,  598,   56,  589,  586,
+       56,   56,   56,  593,  594,  595,   56,  601,  596,   56,
+      604,  602,   56,   56,   56,   56,  600,  609,   56,  607,
+      608,   56,   56,   56,   56,   56,  603,  610,   56,  605,
+      616,   56,  606,   56,   56,   56,   56,  615,  611,   56,
+       56,  614,  612,  613,   56,  620,   56,  621,  622,   56,
+      617,   56,  618,  624,  619,  625,  627,   56,  623,   56,
+      626,   56,  628,   56,   56,  629,  631,   56,  634,  630,
+       56,  636,  632,  637,   56,   56,   56,   56,   56,   56,
+
+      638,  633,  639,  641,   56,   56,   56,  635,  640,   56,
+       56,   56,   56,  646,  642,  647,  648,   56,   56,   56,
+      652,  649,  643,  644,  645,   56,   56,   56,   56,  651,
+      653,  650,   56,  655,  656,   56,  659,  657,  658,   56,
+       56,   56,   56,  654,  661,   56,  662,   56,  663,   56,
+       56,  660,  665,  664,   56,  667,   56,   56,  670,  666,
+       56,  669,   56,   56,  668,  671,   56,  672,   56,   56,
+       56,  678,  673,   56,   56,  674,   56,   56,  682,   56,
+      679,   56,   56,  680,   56,  675,  686,  676,   56,  685,
+       56,   56,   56,   56,  677,   56,  684,  688,  689,   56,
+
+      692,  681,   56,   56,  683,   56,  691,  687,  690,  693,
+       56,  694,  697,   56,  700,  695,  698,   56,  696,   56,
+      699,   56,  701,  705,  702,   56,   56,   56,   56,  703,
+       56,  708,   56,   56,  704,   56,   56,   56,   56,  709,
+      710,  707,  711,   56,  714,  717,  712,  706,   56,  713,
+       56,   56,   56,  719,  715,   56,   56,  716,  720,  721,
+       56,   56,  723,   56,   56,   56,   56,  718,   56,   56,
+       56,  730,   56,   56,  722,  725,  726,  727,  729,  731,
+       56,   56,  728,  724,   56,   56,  733,  734,   56,  735,
+       56,  738,  739,  736,   56,  732,   56,   56,   56,  740,
+
+       56,   56,   56,   56,   56,   56,   56,  737,   56,  746,
+       56,  742,  743,  744,  741,  745,  747,   56,  748,   56,
+       56,  749,   56,  750,   56,  751,  752,  754,   56,  804,
+       56,  753,   56,  755,  757,  756,   56,  758,  759,   56,
+      761,   56,   56,  762,   56,  760,   56,   56,   56,   56,
+       56,  764,  765,   56,   56,  763,   56,   56,   56,   56,
+      772,  766,   56,  775,   56,  770,   56,  767,  768,   56,
+      773,  774,   56,  769,  776,   56,  771,  777,   56,  779,
+       56,  778,  780,   56,  782,   56,  784,   56,  781,   56,
+      783,   56,   56,   56,  788,  787,   56,  786,  790,   56,
+
+      792,   56,  793,   56,   56,   56,  785,   56,  789,   56,
+      795,   56,  797,   56,  791,   56,  796,   56,  799,   56,
+       56,   56,  822,   56,  801,  803,  802,   56,  806,  794,
+      807,  798,  805,  800,   56,   56,   56,   56,   56,  809,
+      811,   56,  810,   56,   56,  808,   56,  812,   56,  813,
+      817,   56,   56,  816,   56,   56,   56,  814,  818,  820,
+       56,  823,   56,  815,  821,   56,  819,  824,   56,  825,
+       56,  826,   56,  827,   56,  828,   56,  829,   56,  832,
+       56,  831,   56,   56,   56,  834,  830,  833,   56,  835,
+      836,   56,   56,   56,   56,   56,  842,   56,   56,  837,
+
+       56,   56,   56,   56,  839,  840,  841,  843,  847,  838,
+       56,  849,   56,   56,  846,  848,   56,  851,   56,   56,
+      845,   56,   56,   56,   56,  844,  858,  852,  857,   56,
+      850,   56,   56,   56,   56,   56,  853,  855,  854,   56,
+       56,  856,  860,  863,  864,   56,  859,  867,   56,  865,
+       56,   56,  861,  862,  869,   56,  866,   56,  870,   56,
+       56,   56,   56,   56,  873,   56,  874,   56,  868,  872,
+      876,   56,  871,   56,  879,   56,  875,  878,  877,  880,
+       56,   56,  882,   56,   56,   56,  881,  883,   56,  886,
+       56,   56,  884,   56,  885,  890,   56,   56,   56,  887,
+
+       56,   56,   56,  893,  896,   56,  891,   56,  892,  888,
+      894,  889,   56,  898,  895,   56,  900,   56,  899,  901,
+       56,   56,  903,  904,   56,   56,  897,   56,   56,  905,
+       56,   56,   56,   56,  902,   56,   56,   56,  907,   56,
+      910,   56,   56,   56,  915,   56,  906,  909,  913,  908,
+      917,   56,  911,   56,  919,   56,  914,  918,   56,  916,
+       56,  912,   56,  923,  920,   56,   56,  922,   56,  921,
+       56,  925,  928,   56,  924,   56,   56,   56,  926,   56,
+       56,   56,  927,   56,  931,  929,  932,  935,   56,   56,
+      937,   56,   56,  930,  936,  940,   56,  934,   56,  938,
+
+      941,   56,  933,  942,  939,  944,   56,  945,   56,   56,
+       56,  948,   56,  949,   56,  947,   56,  943,  950,   56,
+       56,  951,  952,   56,   56,  953,   56,  946,  954,   56,
+       56,  955,  956,   56,   56,  957,  960,   56,  959,  958,
+       56,  962,   56,   56,  961,  964,   56,  965,   56,  966,
+       56,   56,  967,   56,   56,   56,   56,   56,  973,   56,
+      963,   56,   56,  969,   56,   56,   56,   56,   56,  970,
+      971,   56,  968,   56,  972,   37,   37,   37,   37,   37,
+       37,   42,   42,   42,   42,   42,   42,   46,   46,   46,
+       46,   46,   46,   51,   51,   51,   51,   51,   51,   59,
+
+       59,   56,   59,   59,   59,   96,   96,   56,   56,   56,
+       96,   98,   98,   56,   56,   98,  103,  103,   56,   56,
+       56,  103,   60,   60,   56,   60,   60,   60,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,  104,  102,  101,   99,   97,
+       56,  104,  102,  101,   99,   97,   56,  974,   11,  974,
+
+      974,  974,  974,  974,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974,  974,  974
     } ;
 
-static yyconst flex_int16_t yy_chk[1999] =
+static yyconst flex_int16_t yy_chk[2038] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -971,220 +981,224 @@ static yyconst flex_int16_t yy_chk[1999] =
         1,    1,    1,    1,    1,    1,    1,    1,    3,    3,
         3,    4,    4,    4,   19,    5,    5,   19,    3,    5,
        13,    4,    6,    6,   13,    5,    6,    9,    9,    9,
-       40,   40,    6,    7,    7,    7,    7,    9,    7,   10,
-       10,   10,   23,   23,    7,    8,    8,    8,    8,   10,
-        8,   23,   16,   63,   16,   16,    8,   16,   21,   18,
-       22,   18,   18,   16,   18,   20,   20,   21,   26,   21,
-
-       63,   24,   21,   20,   22,   24,   25,   27,   29,   20,
-       30,   25,   26,   32,   24,   28,   28,   31,   32,   30,
-       28,   27,   31,   34,   30,   27,   65,   30,   29,   33,
-       33,   31,   32,   44,   31,   28,   44,   35,   35,   53,
-       53,   34,   35,   65,  963,   49,   33,   49,   49,   55,
-       49,   55,   55,   56,   55,   64,   58,   56,   58,   58,
-       61,   58,   62,   61,   66,   62,   67,   58,   64,   68,
-       69,   67,   70,   71,   72,   73,   70,   72,   71,   75,
-       72,   74,   76,   75,   74,   66,   68,   69,   74,   76,
-       77,   78,   79,   72,   80,   82,   81,   83,   78,   73,
-
-       81,   87,   77,   84,   79,   85,   83,   86,   88,   88,
-       89,   90,   82,   80,  110,   84,   91,   93,   87,   85,
-      959,   91,   92,   95,   95,   86,   97,   89,   88,   97,
-      106,   90,  105,   92,   93,   99,  110,   99,   99,  103,
-       99,  102,  102,  104,  103,  107,  105,  108,  113,  106,
-      107,  104,  108,  109,  111,  112,  114,  109,  111,  115,
-      112,  113,  109,  116,  117,  119,  109,  114,  116,  117,
-      114,  119,  109,  109,  118,  118,  115,  120,  121,  122,
-      123,  124,  125,  121,  122,  123,  124,  126,  127,  125,
-      128,  129,  136,  126,  130,  131,  132,  120,  140,  133,
-
-      131,  134,  135,  134,  139,  129,  139,  127,  143,  135,
-      136,  128,  953,  130,  137,  138,  140,  132,  133,  137,
-      138,  141,  139,  142,  144,  143,  141,  144,  145,  145,
-      146,  146,  147,  154,  148,  149,  137,  142,  149,  150,
-      151,  151,  155,  150,  152,  153,  156,  147,  148,  152,
-      153,  158,  154,  157,  157,  160,  159,  946,  156,  159,
-      161,  162,  155,  164,  164,  166,  160,  165,  158,  161,
-      165,  163,  162,  163,  163,  167,  168,  169,  169,  170,
-      170,  166,  171,  172,  166,  168,  173,  174,  172,  167,
-      175,  176,  174,  177,  178,  180,  176,  179,  177,  175,
-
-      179,  171,  183,  182,  184,  173,  186,  185,  180,  187,
-      228,  183,  185,  178,  188,  179,  181,  182,  181,  181,
-      192,  189,  184,  187,  228,  186,  193,  190,  194,  181,
-      181,  181,  190,  188,  189,  191,  191,  195,  191,  192,
-      196,  193,  197,  194,  199,  201,  198,  200,  199,  945,
-      201,  197,  202,  196,  195,  198,  200,  204,  202,  203,
-      203,  205,  204,  197,  206,  207,  208,  208,  211,  206,
-      210,  210,  205,  212,  213,  214,  216,  217,  221,  218,
-      220,  212,  217,  213,  219,  207,  214,  218,  211,  219,
-      222,  222,  223,  226,  224,  216,  221,  220,  222,  224,
-
-      225,  225,  227,  227,  224,  229,  230,  231,  232,  233,
-      236,  223,  234,  232,  235,  222,  229,  226,  238,  235,
-      237,  237,  236,  239,  230,  264,  234,  233,  231,  238,
-      240,  241,  944,  240,  242,  242,  244,  239,  243,  243,
-      251,  244,  264,  241,  245,  245,  246,  246,  247,  248,
-      253,  249,  247,  250,  248,  249,  252,  254,  250,  251,
-      254,  252,  529,  253,  529,  254,  255,  255,  254,  256,
-      257,  258,  256,  259,  257,  260,  258,  261,  259,  262,
-      261,  260,  262,  263,  265,  266,  267,  268,  263,  269,
-      266,  267,  268,  270,  272,  257,  270,  265,  269,  271,
-
-      274,  273,  275,  271,  271,  273,  276,  277,  277,  279,
-      280,  276,  942,  272,  274,  278,  275,  281,  282,  278,
-      286,  283,  284,  287,  279,  282,  283,  284,  280,  281,
-      285,  288,  287,  289,  293,  285,  289,  286,  290,  290,
-      292,  294,  295,  298,  288,  292,  304,  301,  303,  294,
-      305,  293,  301,  303,  306,  306,  295,  940,  307,  298,
-      302,  308,  308,  304,  302,  307,  309,  302,  310,  310,
-      311,  302,  314,  311,  305,  312,  316,  302,  302,  316,
-      309,  313,  313,  312,  315,  315,  314,  317,  318,  319,
-      320,  322,  325,  317,  321,  325,  318,  319,  322,  321,
-
-      323,  323,  326,  324,  327,  327,  328,  320,  324,  328,
-      330,  332,  333,  331,  334,  326,  328,  331,  335,  330,
-      334,  336,  337,  338,  340,  333,  336,  339,  343,  332,
-      342,  335,  339,  342,  338,  341,  341,  344,  345,  347,
-      337,  346,  346,  348,  340,  343,  351,  350,  352,  344,
-      354,  354,  355,  347,  353,  357,  357,  345,  354,  358,
-      351,  352,  356,  936,  358,  355,  348,  349,  360,  361,
-      349,  350,  349,  356,  353,  354,  349,  349,  359,  362,
-      362,  360,  349,  364,  366,  367,  359,  361,  364,  365,
-      368,  369,  365,  370,  371,  368,  369,  367,  374,  373,
-
-      375,  376,  366,  374,  383,  375,  376,  371,  377,  378,
-      378,  379,  370,  373,  381,  381,  379,  377,  381,  382,
-      385,  384,  386,  383,  384,  385,  387,  386,  388,  387,
-      389,  390,  391,  382,  393,  392,  390,  391,  392,  395,
-      397,  394,  396,  396,  393,  388,  394,  398,  399,  389,
-      400,  402,  399,  395,  401,  404,  405,  406,  397,  407,
-      398,  405,  406,  401,  408,  409,  410,  400,  404,  412,
-      409,  418,  407,  411,  411,  402,  413,  408,  414,  416,
-      410,  417,  419,  414,  415,  413,  412,  420,  415,  418,
-      421,  422,  423,  416,  424,  417,  421,  426,  427,  428,
-
-      432,  432,  419,  424,  420,  422,  427,  429,  435,  430,
-      426,  423,  429,  430,  430,  431,  433,  434,  428,  436,
-      431,  433,  437,  438,  436,  435,  440,  437,  438,  439,
-      434,  442,  441,  439,  443,  440,  441,  444,  445,  440,
-      446,  440,  447,  440,  448,  442,  445,  443,  449,  449,
-      450,  450,  451,  451,  452,  444,  453,  446,  454,  455,
-      456,  462,  448,  454,  453,  455,  447,  456,  461,  458,
-      459,  460,  464,  452,  458,  459,  460,  461,  465,  462,
-      463,  463,  466,  467,  467,  468,  469,  473,  470,  472,
-      474,  464,  475,  472,  472,  476,  475,  465,  477,  466,
-
-      478,  479,  480,  481,  468,  470,  479,  474,  481,  480,
-      469,  477,  473,  476,  482,  483,  484,  485,  478,  934,
-      486,  487,  488,  491,  483,  486,  487,  488,  489,  489,
-      484,  482,  492,  492,  493,  493,  494,  485,  495,  496,
-      497,  491,  494,  495,  498,  499,  500,  501,  503,  503,
-      502,  504,  506,  505,  517,  504,  509,  496,  497,  500,
-      507,  507,  498,  499,  502,  505,  516,  501,  508,  510,
-      518,  506,  511,  508,  510,  509,  515,  511,  517,  515,
-      516,  519,  519,  520,  518,  521,  521,  522,  523,  524,
-      527,  526,  523,  528,  530,  531,  532,  522,  533,  530,
-
-      531,  535,  520,  536,  533,  537,  535,  524,  526,  527,
-      538,  539,  528,  540,  543,  532,  539,  544,  540,  541,
-      541,  542,  537,  545,  546,  548,  542,  536,  547,  538,
-      548,  543,  549,  550,  551,  552,  544,  546,  555,  556,
-      547,  558,  545,  559,  552,  561,  552,  555,  559,  557,
-      558,  549,  550,  562,  551,  560,  560,  556,  557,  563,
-      557,  564,  565,  567,  561,  562,  566,  566,  569,  572,
-      570,  571,  572,  569,  564,  570,  563,  571,  572,  565,
-      567,  573,  574,  575,  578,  576,  579,  580,  581,  573,
-      579,  582,  580,  581,  583,  584,  586,  587,  932,  574,
-
-      582,  575,  576,  578,  585,  588,  584,  586,  583,  585,
-      590,  588,  589,  589,  587,  591,  591,  592,  599,  590,
-      593,  593,  592,  594,  594,  595,  595,  596,  598,  600,
-      596,  601,  605,  598,  600,  599,  602,  602,  603,  604,
-      606,  607,  608,  603,  609,  609,  610,  611,  612,  614,
-      604,  605,  604,  610,  615,  601,  611,  604,  617,  606,
-      607,  613,  613,  617,  619,  618,  621,  608,  620,  615,
-      618,  621,  622,  612,  614,  620,  623,  624,  625,  626,
-      627,  622,  629,  619,  625,  628,  631,  629,  626,  630,
-      623,  631,  632,  630,  630,  624,  633,  632,  628,  634,
-
-      627,  635,  637,  634,  636,  638,  640,  633,  641,  636,
-      639,  639,  640,  641,  642,  643,  638,  645,  647,  647,
-      642,  651,  652,  637,  643,  635,  651,  657,  645,  647,
-      653,  653,  654,  659,  654,  655,  655,  660,  652,  658,
-      658,  661,  663,  662,  664,  665,  657,  665,  660,  664,
-      666,  666,  661,  659,  662,  667,  663,  668,  669,  670,
-      669,  671,  668,  674,  670,  672,  671,  673,  674,  675,
-      676,  677,  678,  683,  675,  760,  679,  760,  681,  682,
-      667,  680,  672,  678,  677,  679,  673,  679,  676,  681,
-      680,  682,  683,  684,  685,  687,  688,  689,  689,  691,
-
-      685,  687,  690,  692,  693,  688,  696,  692,  684,  693,
-      881,  690,  694,  694,  699,  696,  702,  691,  697,  697,
-      698,  698,  700,  703,  701,  699,  704,  700,  701,  705,
-      702,  706,  708,  709,  881,  708,  710,  711,  711,  716,
-      705,  703,  712,  712,  714,  709,  704,  720,  710,  713,
-      713,  706,  715,  715,  718,  722,  714,  716,  723,  718,
-      719,  719,  721,  721,  723,  720,  724,  725,  725,  724,
-      726,  726,  722,  727,  728,  728,  729,  729,  730,  731,
-      731,  732,  725,  733,  734,  735,  736,  737,  733,  738,
-      735,  727,  732,  739,  741,  746,  737,  739,  738,  742,
-
-      736,  743,  743,  730,  734,  744,  746,  753,  742,  748,
-      744,  749,  748,  741,  750,  750,  749,  751,  754,  752,
-      755,  751,  752,  754,  756,  755,  753,  757,  758,  759,
-      756,  763,  763,  758,  765,  765,  772,  759,  766,  766,
-      768,  768,  757,  770,  771,  771,  773,  774,  770,  776,
-      776,  772,  774,  779,  780,  781,  780,  783,  779,  784,
-      781,  782,  782,  785,  786,  790,  787,  773,  783,  788,
-      788,  789,  791,  792,  785,  786,  784,  787,  793,  794,
-      789,  795,  795,  793,  794,  792,  797,  798,  798,  799,
-      790,  791,  800,  801,  802,  803,  803,  804,  806,  805,
-
-      807,  811,  804,  797,  812,  815,  799,  812,  801,  800,
-      813,  813,  802,  805,  814,  818,  806,  817,  817,  807,
-      811,  822,  815,  819,  819,  821,  821,  823,  814,  824,
-      825,  827,  828,  818,  824,  825,  823,  828,  829,  830,
-      831,  831,  822,  829,  834,  827,  832,  832,  835,  834,
-      841,  836,  837,  830,  838,  838,  839,  842,  844,  835,
-      836,  837,  843,  843,  845,  839,  846,  844,  841,  848,
-      849,  846,  845,  851,  851,  842,  853,  858,  848,  854,
-      854,  855,  849,  864,  855,  856,  856,  857,  857,  859,
-      858,  860,  860,  861,  859,  853,  865,  861,  866,  868,
-
-      867,  864,  869,  870,  865,  867,  871,  873,  877,  874,
-      873,  880,  870,  866,  875,  875,  876,  877,  868,  879,
-      876,  885,  880,  884,  884,  871,  874,  869,  879,  887,
-      885,  888,  889,  890,  887,  891,  892,  893,  894,  895,
-      896,  896,  893,  900,  892,  897,  889,  901,  890,  888,
-      897,  899,  899,  891,  902,  902,  904,  895,  903,  903,
-      905,  930,  900,  894,  906,  906,  908,  904,  901,  907,
-      907,  909,  910,  910,  911,  911,  909,  912,  912,  905,
-      913,  914,  914,  926,  908,  913,  916,  916,  918,  918,
-      919,  922,  922,  923,  937,  919,  927,  933,  923,  947,
-
-      927,  933,  926,  931,  931,  935,  935,  938,  938,  939,
-      939,  937,  941,  941,  943,  943,  948,  949,  947,  950,
-      951,  952,  952,  929,  928,  948,  925,  924,  921,  920,
-      917,  949,  950,  915,  898,  886,  883,  882,  951,  955,
-      955,  955,  955,  955,  955,  956,  956,  956,  956,  956,
-      956,  957,  957,  957,  957,  957,  957,  958,  958,  958,
-      958,  958,  958,  960,  960,  878,  960,  960,  960,  961,
-      961,  872,  863,  862,  961,  962,  962,  852,  850,  962,
-      964,  964,  847,  840,  833,  964,  965,  965,  826,  965,
-      965,  965,  820,  816,  810,  809,  808,  796,  778,  777,
-
-      775,  769,  767,  764,  762,  761,  747,  745,  740,  717,
-      707,  695,  686,  656,  650,  649,  648,  646,  644,  616,
-      597,  577,  568,  554,  553,  534,  525,  514,  513,  512,
-      490,  471,  457,  425,  403,  380,  372,  363,  329,  300,
-      299,  297,  296,  291,  215,  209,  101,  100,   98,   96,
-       94,   54,   50,   46,   45,   41,   36,   12,   11,  954,
-      954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
-      954,  954,  954,  954,  954,  954,  954,  954
-
+       22,  983,    6,    7,    7,    7,    7,    9,    7,   10,
+       10,   10,   24,   24,    7,    8,    8,    8,    8,   10,
+        8,   24,   16,   22,   16,   16,    8,   16,   21,   18,
+       23,   18,   18,   16,   18,   20,   20,   21,   27,   21,
+
+      979,   25,   21,   20,   23,   25,   26,   28,   30,   20,
+       31,   26,   27,   33,   25,   29,   29,   32,   33,   31,
+       29,   28,   32,   35,   31,   28,  973,   31,   30,   34,
+       34,   32,   33,   45,   32,   29,   45,   36,   36,   41,
+       41,   35,   36,   54,   54,   50,   34,   50,   50,   56,
+       50,   56,   56,   57,   56,   64,   59,   57,   59,   59,
+       62,   59,   63,   62,   65,   63,   66,   59,   67,   68,
+       70,   69,   64,   73,   68,   71,   72,   65,   73,   74,
+       72,   75,   74,   66,   79,   74,  966,   70,   76,   67,
+       69,   76,   71,   77,   78,   76,   79,   77,   74,   80,
+
+       81,   78,   82,   83,   85,   75,   80,   83,   84,   87,
+       86,   88,   81,   85,   89,   90,   90,   91,   92,   93,
+      106,   82,   86,   87,   93,   84,   94,   95,  106,   88,
+      108,   89,   97,   97,   91,   90,   99,   94,   92,   99,
+      101,  107,  101,  101,   95,  101,  104,  104,  105,  108,
+      113,  109,  110,  105,  112,  107,  109,  110,  111,  112,
+      114,  115,  111,  116,  114,  119,  115,  111,  117,  118,
+      119,  111,  113,  121,  121,  120,  116,  111,  111,  117,
+      120,  122,  117,  123,  124,  125,  118,  122,  126,  124,
+      125,  127,  128,  126,  129,  130,  127,  131,  132,  128,
+
+      129,  133,  134,  123,  135,  136,  137,  134,  137,  138,
+      139,  142,  132,  142,  130,  143,  138,  140,  131,  146,
+      133,  141,  140,  145,  136,  135,  141,  144,  139,  142,
+      150,  147,  144,  143,  147,  151,  146,  145,  154,  140,
+      148,  148,  149,  149,  152,  150,  153,  152,  158,  151,
+      153,  154,  155,  155,  156,  157,  159,  160,  162,  156,
+      157,  161,  161,  163,  165,  965,  163,  158,  164,  160,
+      166,  168,  168,  165,  169,  162,  159,  169,  170,  164,
+      167,  166,  167,  167,  171,  175,  172,  173,  173,  174,
+      174,  176,  177,  179,  170,  172,  176,  170,  171,  182,
+
+      178,  180,  179,  181,  175,  178,  180,  183,  181,  184,
+      183,  177,  187,  186,  188,  189,  190,  191,  182,  192,
+      189,  187,  184,  193,  401,  183,  185,  186,  185,  185,
+      196,  191,  188,  197,  401,  190,  193,  194,  192,  185,
+      185,  185,  194,  195,  195,  198,  195,  199,  197,  196,
+      200,  199,  201,  202,  203,  204,  206,  205,  207,  204,
+      198,  206,  202,  203,  207,  201,  205,  200,  208,  208,
+      209,  210,  211,  212,  202,  209,  216,  211,  213,  213,
+      215,  215,  210,  217,  219,  218,  221,  222,  226,  223,
+      225,  217,  222,  212,  218,  219,  216,  223,  224,  228,
+
+      227,  227,  231,  224,  229,  221,  226,  225,  227,  229,
+      230,  230,  232,  232,  229,  233,  234,  235,  228,  236,
+      238,  241,  239,  237,  257,  227,  231,  234,  237,  233,
+      242,  242,  240,  241,  243,  235,  239,  240,  238,  244,
+      236,  245,  246,  257,  245,  243,  247,  247,  248,  248,
+      249,  250,  250,  244,  246,  249,  251,  251,  252,  259,
+      253,  254,  256,  252,  253,  255,  254,  256,  258,  255,
+      964,  260,  259,  258,  260,  261,  261,  262,  264,  260,
+      262,  263,  260,  264,  265,  263,  266,  267,  268,  265,
+      267,  268,  266,  269,  270,  271,  272,  273,  269,  274,
+
+      275,  272,  273,  278,  274,  280,  263,  276,  271,  275,
+      276,  270,  277,  281,  279,  282,  277,  277,  279,  280,
+      282,  284,  278,  283,  283,  284,  285,  281,  286,  288,
+      287,  292,  289,  290,  291,  293,  288,  289,  290,  291,
+      294,  285,  287,  299,  293,  301,  286,  295,  292,  298,
+      295,  296,  296,  294,  298,  300,  304,  307,  311,  301,
+      299,  307,  308,  300,  310,  312,  962,  308,  316,  310,
+      313,  313,  304,  309,  314,  311,  345,  309,  315,  315,
+      309,  314,  316,  321,  309,  317,  317,  345,  319,  312,
+      309,  309,  318,  320,  320,  318,  319,  321,  322,  322,
+
+      323,  324,  325,  323,  326,  327,  328,  324,  329,  960,
+      325,  328,  326,  330,  330,  329,  331,  332,  333,  339,
+      332,  331,  327,  334,  334,  335,  338,  337,  335,  340,
+      338,  333,  341,  342,  343,  335,  337,  339,  341,  343,
+      344,  347,  340,  346,  348,  348,  342,  349,  346,  350,
+      349,  351,  352,  353,  353,  354,  355,  357,  344,  358,
+      361,  347,  359,  351,  360,  361,  350,  365,  365,  354,
+      956,  352,  407,  358,  367,  359,  407,  364,  363,  355,
+      356,  357,  367,  356,  360,  356,  362,  362,  364,  356,
+      356,  363,  366,  368,  362,  356,  369,  366,  370,  370,
+
+      372,  373,  374,  375,  373,  372,  368,  376,  377,  378,
+      379,  362,  376,  377,  369,  375,  381,  382,  385,  383,
+      374,  384,  382,  379,  383,  391,  384,  385,  378,  387,
+      381,  386,  386,  390,  387,  389,  389,  392,  393,  389,
+      392,  394,  395,  393,  391,  395,  394,  390,  396,  397,
+      398,  399,  403,  402,  400,  398,  399,  400,  402,  404,
+      404,  405,  406,  408,  409,  396,  403,  410,  397,  412,
+      415,  413,  414,  409,  416,  406,  413,  414,  418,  405,
+      408,  417,  412,  415,  419,  419,  417,  416,  420,  421,
+      422,  410,  418,  423,  425,  422,  424,  427,  421,  426,
+
+      424,  428,  429,  430,  431,  420,  432,  433,  425,  430,
+      435,  423,  436,  426,  437,  427,  433,  438,  431,  429,
+      436,  428,  438,  435,  439,  432,  440,  442,  439,  439,
+      443,  440,  442,  437,  441,  441,  444,  445,  452,  446,
+      447,  451,  445,  443,  446,  447,  448,  449,  450,  453,
+      448,  452,  450,  444,  455,  451,  449,  454,  456,  457,
+      449,  461,  449,  525,  449,  454,  525,  453,  458,  458,
+      462,  455,  459,  459,  460,  460,  463,  457,  462,  464,
+      461,  463,  456,  465,  467,  464,  468,  469,  470,  467,
+      465,  468,  469,  471,  472,  472,  473,  470,  474,  475,
+
+      476,  476,  477,  478,  481,  479,  482,  483,  481,  481,
+      484,  471,  486,  487,  485,  473,  475,  474,  485,  488,
+      489,  477,  479,  492,  483,  489,  487,  478,  490,  484,
+      486,  482,  493,  491,  494,  490,  495,  488,  491,  496,
+      492,  493,  497,  501,  496,  498,  954,  497,  494,  504,
+      498,  499,  499,  502,  502,  504,  495,  503,  503,  505,
+      506,  501,  507,  508,  505,  509,  510,  511,  512,  513,
+      513,  514,  515,  516,  519,  514,  517,  517,  506,  510,
+      507,  508,  512,  509,  515,  518,  520,  511,  526,  521,
+      518,  520,  516,  519,  521,  527,  528,  529,  529,  530,
+
+      531,  531,  526,  532,  533,  534,  537,  536,  533,  538,
+      528,  540,  539,  532,  539,  541,  540,  542,  530,  527,
+      541,  543,  546,  534,  536,  537,  545,  543,  538,  547,
+      547,  545,  548,  549,  550,  551,  542,  552,  552,  550,
+      551,  554,  553,  555,  556,  558,  546,  553,  557,  548,
+      559,  560,  549,  561,  562,  559,  563,  558,  554,  566,
+      567,  557,  555,  556,  568,  563,  572,  563,  566,  574,
+      560,  569,  561,  568,  562,  568,  570,  573,  567,  575,
+      569,  570,  571,  571,  576,  572,  574,  577,  577,  573,
+      578,  580,  575,  581,  582,  584,  580,  585,  581,  583,
+
+      582,  576,  583,  584,  586,  589,  587,  578,  583,  590,
+      591,  592,  593,  590,  585,  591,  592,  594,  595,  597,
+      596,  593,  586,  587,  589,  596,  598,  599,  601,  595,
+      597,  594,  604,  599,  600,  600,  603,  601,  602,  602,
+      613,  603,  611,  598,  605,  605,  606,  606,  607,  607,
+      608,  604,  610,  608,  616,  612,  617,  610,  615,  611,
+      612,  614,  614,  615,  613,  616,  618,  616,  619,  620,
+      621,  621,  616,  622,  623,  617,  624,  625,  625,  626,
+      622,  627,  636,  623,  629,  618,  630,  619,  631,  629,
+      632,  630,  635,  633,  620,  639,  627,  632,  633,  634,
+
+      636,  624,  638,  637,  626,  640,  635,  631,  634,  637,
+      647,  638,  641,  645,  643,  639,  642,  641,  640,  643,
+      642,  642,  644,  648,  645,  646,  649,  644,  648,  646,
+      650,  651,  651,  652,  647,  653,  654,  655,  657,  652,
+      653,  650,  654,  659,  659,  664,  655,  649,  660,  657,
+      664,  665,  666,  666,  659,  670,  667,  660,  667,  668,
+      668,  671,  671,  672,  673,  674,  675,  665,  676,  678,
+      680,  678,  686,  677,  670,  673,  674,  675,  677,  679,
+      679,  681,  676,  672,  683,  682,  681,  682,  684,  683,
+      685,  686,  687,  684,  688,  680,  689,  687,  690,  688,
+
+      693,  691,  696,  952,  692,  694,  695,  685,  697,  693,
+      755,  690,  691,  692,  689,  692,  694,  704,  695,  698,
+      700,  696,  701,  697,  703,  698,  700,  702,  702,  755,
+      705,  701,  706,  703,  705,  704,  709,  706,  707,  707,
+      710,  710,  711,  711,  712,  709,  713,  715,  714,  716,
+      717,  713,  714,  718,  719,  712,  720,  722,  723,  724,
+      722,  715,  725,  725,  730,  719,  950,  716,  717,  728,
+      723,  724,  734,  718,  726,  726,  720,  727,  727,  729,
+      729,  728,  730,  732,  733,  733,  735,  735,  732,  736,
+      734,  737,  738,  739,  739,  738,  741,  737,  740,  740,
+
+      742,  742,  743,  743,  744,  746,  736,  747,  739,  745,
+      745,  748,  747,  749,  741,  751,  746,  752,  749,  750,
+      775,  753,  775,  756,  751,  753,  752,  757,  757,  744,
+      758,  748,  756,  750,  760,  758,  762,  763,  767,  762,
+      764,  764,  763,  765,  768,  760,  766,  765,  769,  766,
+      770,  772,  771,  769,  773,  770,  774,  767,  771,  773,
+      778,  778,  787,  768,  774,  788,  772,  780,  780,  781,
+      781,  783,  783,  785,  786,  786,  789,  787,  785,  791,
+      791,  789,  794,  795,  796,  795,  788,  794,  798,  796,
+      797,  797,  799,  800,  801,  802,  803,  803,  804,  798,
+
+      805,  806,  807,  808,  800,  801,  802,  804,  808,  799,
+      809,  810,  810,  812,  807,  809,  813,  813,  814,  815,
+      806,  816,  817,  818,  822,  805,  820,  814,  819,  819,
+      812,  820,  821,  823,  827,  830,  815,  817,  816,  831,
+      828,  818,  822,  828,  829,  829,  821,  833,  833,  830,
+      834,  838,  823,  827,  835,  835,  831,  837,  837,  840,
+      839,  841,  843,  846,  840,  844,  841,  949,  834,  839,
+      844,  851,  838,  845,  847,  847,  843,  846,  845,  848,
+      848,  850,  851,  853,  852,  854,  850,  852,  855,  855,
+      856,  858,  853,  859,  854,  860,  860,  861,  863,  856,
+
+      862,  865,  866,  863,  868,  868,  861,  870,  862,  858,
+      865,  859,  871,  871,  866,  872,  873,  873,  872,  874,
+      874,  875,  876,  877,  877,  878,  870,  876,  881,  878,
+      882,  883,  884,  886,  875,  885,  887,  889,  882,  888,
+      885,  891,  892,  899,  891,  895,  881,  884,  888,  883,
+      893,  893,  886,  894,  895,  897,  889,  894,  898,  892,
+      906,  887,  902,  902,  897,  903,  905,  899,  907,  898,
+      909,  905,  908,  908,  903,  910,  911,  913,  906,  914,
+      919,  912,  907,  920,  911,  909,  912,  915,  915,  916,
+      918,  918,  923,  910,  916,  921,  921,  914,  924,  919,
+
+      922,  922,  913,  923,  920,  925,  925,  926,  926,  927,
+      929,  930,  930,  931,  931,  929,  933,  924,  932,  932,
+      946,  933,  934,  934,  936,  936,  939,  927,  938,  938,
+      943,  939,  942,  942,  947,  943,  951,  951,  947,  946,
+      953,  955,  955,  957,  953,  958,  958,  959,  959,  961,
+      961,  963,  963,  967,  968,  969,  971,  970,  972,  972,
+      957,  948,  945,  968,  944,  941,  940,  937,  935,  969,
+      970,  928,  967,  917,  971,  975,  975,  975,  975,  975,
+      975,  976,  976,  976,  976,  976,  976,  977,  977,  977,
+      977,  977,  977,  978,  978,  978,  978,  978,  978,  980,
+
+      980,  904,  980,  980,  980,  981,  981,  901,  900,  896,
+      981,  982,  982,  890,  880,  982,  984,  984,  879,  869,
+      867,  984,  985,  985,  864,  985,  985,  985,  857,  849,
+      842,  836,  832,  826,  825,  824,  811,  793,  792,  790,
+      784,  782,  779,  777,  776,  761,  759,  754,  731,  721,
+      708,  699,  669,  663,  662,  661,  658,  656,  628,  609,
+      588,  579,  565,  564,  544,  535,  524,  523,  522,  500,
+      480,  466,  434,  411,  388,  380,  371,  336,  306,  305,
+      303,  302,  297,  220,  214,  103,  102,  100,   98,   96,
+       55,   51,   47,   46,   42,   37,   12,   11,  974,  974,
+
+      974,  974,  974,  974,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974,  974,  974,  974,  974,  974,
+      974,  974,  974,  974,  974,  974,  974
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1296,7 +1310,7 @@ static void config_end_include(void)
 #define YY_NO_INPUT 1
 #endif
 
-#line 1299 "<stdout>"
+#line 1313 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -1482,7 +1496,7 @@ YY_DECL
     
 #line 107 "util/configlexer.lex"
 
-#line 1485 "<stdout>"
+#line 1499 "<stdout>"
 
        if ( !(yy_init) )
                {
@@ -1541,13 +1555,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 >= 955 )
+                               if ( yy_current_state >= 975 )
                                        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] != 1960 );
+               while ( yy_base[yy_current_state] != 1999 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1969,76 +1983,81 @@ YY_RULE_SETUP
 case 80:
 YY_RULE_SETUP
 #line 187 "util/configlexer.lex"
-{ YDOUT; return VAR_REMOTE_CONTROL; }
+{ YDOUT; return VAR_EXTENDED_STATISTICS;}
        YY_BREAK
 case 81:
 YY_RULE_SETUP
 #line 188 "util/configlexer.lex"
-{ YDOUT; return VAR_CONTROL_ENABLE; }
+{ YDOUT; return VAR_REMOTE_CONTROL; }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
 #line 189 "util/configlexer.lex"
-{ YDOUT; return VAR_CONTROL_INTERFACE; }
+{ YDOUT; return VAR_CONTROL_ENABLE; }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
 #line 190 "util/configlexer.lex"
-{ YDOUT; return VAR_CONTROL_PORT; }
+{ YDOUT; return VAR_CONTROL_INTERFACE; }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
 #line 191 "util/configlexer.lex"
-{ YDOUT; return VAR_SERVER_KEY_FILE; }
+{ YDOUT; return VAR_CONTROL_PORT; }
        YY_BREAK
 case 85:
 YY_RULE_SETUP
 #line 192 "util/configlexer.lex"
-{ YDOUT; return VAR_SERVER_CERT_FILE; }
+{ YDOUT; return VAR_SERVER_KEY_FILE; }
        YY_BREAK
 case 86:
 YY_RULE_SETUP
 #line 193 "util/configlexer.lex"
-{ YDOUT; return VAR_CONTROL_KEY_FILE; }
+{ YDOUT; return VAR_SERVER_CERT_FILE; }
        YY_BREAK
 case 87:
 YY_RULE_SETUP
 #line 194 "util/configlexer.lex"
-{ YDOUT; return VAR_CONTROL_CERT_FILE; }
+{ YDOUT; return VAR_CONTROL_KEY_FILE; }
        YY_BREAK
 case 88:
-/* rule 88 can match eol */
 YY_RULE_SETUP
 #line 195 "util/configlexer.lex"
+{ YDOUT; return VAR_CONTROL_CERT_FILE; }
+       YY_BREAK
+case 89:
+/* rule 89 can match eol */
+YY_RULE_SETUP
+#line 196 "util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 198 "util/configlexer.lex"
+#line 199 "util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 199 "util/configlexer.lex"
+#line 200 "util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(INITIAL);
 }
        YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 203 "util/configlexer.lex"
-{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
-       YY_BREAK
 case 91:
-/* rule 91 can match eol */
 YY_RULE_SETUP
 #line 204 "util/configlexer.lex"
-{ cfg_parser->line++; yymore(); }
+{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
 case 92:
+/* rule 92 can match eol */
 YY_RULE_SETUP
 #line 205 "util/configlexer.lex"
+{ cfg_parser->line++; yymore(); }
+       YY_BREAK
+case 93:
+YY_RULE_SETUP
+#line 206 "util/configlexer.lex"
 {
         LEXOUT(("QE "));
         BEGIN(INITIAL);
@@ -2050,32 +2069,32 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 216 "util/configlexer.lex"
+#line 217 "util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 217 "util/configlexer.lex"
+#line 218 "util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(INITIAL);
 }
        YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 221 "util/configlexer.lex"
-{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
-       YY_BREAK
 case 95:
-/* rule 95 can match eol */
 YY_RULE_SETUP
 #line 222 "util/configlexer.lex"
-{ cfg_parser->line++; yymore(); }
+{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
 case 96:
+/* rule 96 can match eol */
 YY_RULE_SETUP
 #line 223 "util/configlexer.lex"
+{ cfg_parser->line++; yymore(); }
+       YY_BREAK
+case 97:
+YY_RULE_SETUP
+#line 224 "util/configlexer.lex"
 {
         LEXOUT(("SQE "));
         BEGIN(INITIAL);
@@ -2087,37 +2106,37 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 234 "util/configlexer.lex"
+#line 235 "util/configlexer.lex"
 { LEXOUT(("v(%s) ", yytext)); BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 235 "util/configlexer.lex"
+#line 236 "util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(INITIAL);
 }
        YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 239 "util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
-       YY_BREAK
 case 99:
-/* rule 99 can match eol */
 YY_RULE_SETUP
 #line 240 "util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
 case 100:
+/* rule 100 can match eol */
 YY_RULE_SETUP
 #line 241 "util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 case 101:
 YY_RULE_SETUP
 #line 242 "util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+       YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 243 "util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include(yytext);
@@ -2125,26 +2144,26 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 247 "util/configlexer.lex"
+#line 248 "util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(INITIAL);
 }
        YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 251 "util/configlexer.lex"
-{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
-       YY_BREAK
 case 103:
-/* rule 103 can match eol */
 YY_RULE_SETUP
 #line 252 "util/configlexer.lex"
-{ cfg_parser->line++; yymore(); }
+{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
 case 104:
+/* rule 104 can match eol */
 YY_RULE_SETUP
 #line 253 "util/configlexer.lex"
+{ cfg_parser->line++; yymore(); }
+       YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 254 "util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -2153,7 +2172,7 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 259 "util/configlexer.lex"
+#line 260 "util/configlexer.lex"
 {
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
        if (config_include_stack_ptr == 0) {
@@ -2164,18 +2183,18 @@ case YY_STATE_EOF(INITIAL):
        }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 269 "util/configlexer.lex"
+#line 270 "util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        yylval.str = strdup(yytext); return STRING; }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 272 "util/configlexer.lex"
+#line 273 "util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 2178 "<stdout>"
+#line 2197 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -2465,7 +2484,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 >= 955 )
+                       if ( yy_current_state >= 975 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2493,11 +2512,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 >= 955 )
+               if ( yy_current_state >= 975 )
                        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 == 954);
+       yy_is_jam = (yy_current_state == 974);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3134,7 +3153,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 272 "util/configlexer.lex"
+#line 273 "util/configlexer.lex"
 
 
 
index 4e57657bb99d43e32db776b7d83b4c58549ceb39..2e6331223292d70b2973487c9134194c8076eb51 100644 (file)
@@ -184,6 +184,7 @@ local-zone{COLON}   { YDOUT; return VAR_LOCAL_ZONE;}
 local-data{COLON}      { YDOUT; return VAR_LOCAL_DATA;}
 statistics-interval{COLON}     { YDOUT; return VAR_STATISTICS_INTERVAL;}
 statistics-cumulative{COLON}   { YDOUT; return VAR_STATISTICS_CUMULATIVE;}
+extended-statistics{COLON}     { YDOUT; return VAR_EXTENDED_STATISTICS;}
 remote-control{COLON}  { YDOUT; return VAR_REMOTE_CONTROL; }
 control-enable{COLON}  { YDOUT; return VAR_CONTROL_ENABLE; }
 control-interface{COLON}       { YDOUT; return VAR_CONTROL_INTERFACE; }
index a10f5e52712818cbd428e9a5afe3cc57c91a82f2..42776c02456aa9a4cab1430fc1dd58a867ea69b7 100644 (file)
      VAR_SERVER_KEY_FILE = 347,
      VAR_SERVER_CERT_FILE = 348,
      VAR_CONTROL_KEY_FILE = 349,
-     VAR_CONTROL_CERT_FILE = 350
+     VAR_CONTROL_CERT_FILE = 350,
+     VAR_EXTENDED_STATISTICS = 351
    };
 #endif
 /* Tokens.  */
 #define VAR_SERVER_CERT_FILE 348
 #define VAR_CONTROL_KEY_FILE 349
 #define VAR_CONTROL_CERT_FILE 350
+#define VAR_EXTENDED_STATISTICS 351
 
 
 
@@ -313,7 +315,7 @@ typedef union YYSTYPE
        char*   str;
 }
 /* Line 187 of yacc.c.  */
-#line 317 "util/configparser.c"
+#line 319 "util/configparser.c"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -326,7 +328,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 330 "util/configparser.c"
+#line 332 "util/configparser.c"
 
 #ifdef short
 # undef short
@@ -541,20 +543,20 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   171
+#define YYLAST   173
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  96
+#define YYNTOKENS  97
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  97
+#define YYNNTS  98
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  183
+#define YYNRULES  185
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  268
+#define YYNSTATES  271
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   350
+#define YYMAXUTOK   351
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -597,7 +599,7 @@ static const yytype_uint8 yytranslate[] =
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95
+      95,    96
 };
 
 #if YYDEBUG
@@ -613,92 +615,92 @@ static const yytype_uint16 yyprhs[] =
      103,   105,   107,   109,   111,   113,   115,   117,   119,   121,
      123,   125,   127,   129,   131,   133,   135,   137,   139,   141,
      143,   145,   147,   149,   151,   153,   155,   157,   159,   161,
-     163,   165,   168,   169,   171,   173,   175,   177,   180,   181,
-     183,   185,   187,   190,   193,   196,   199,   202,   205,   208,
-     211,   214,   217,   220,   223,   226,   229,   232,   235,   238,
-     241,   244,   247,   250,   253,   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,   359,
-     362,   365,   368,   371,   374,   377,   380,   383,   386,   389,
-     393,   396,   399,   402,   405,   408,   411,   414,   416,   419,
-     420,   422,   424,   426,   428,   430,   432,   434,   437,   440,
-     443,   446,   449,   452
+     163,   165,   167,   170,   171,   173,   175,   177,   179,   182,
+     183,   185,   187,   189,   192,   195,   198,   201,   204,   207,
+     210,   213,   216,   219,   222,   225,   228,   231,   234,   237,
+     240,   243,   246,   249,   252,   255,   258,   261,   264,   267,
+     270,   273,   276,   279,   282,   285,   288,   291,   294,   297,
+     300,   303,   306,   309,   312,   315,   318,   321,   324,   327,
+     330,   333,   336,   339,   342,   345,   348,   351,   354,   357,
+     360,   364,   367,   370,   373,   376,   379,   382,   385,   388,
+     391,   394,   398,   401,   404,   407,   410,   413,   416,   419,
+     421,   424,   425,   427,   429,   431,   433,   435,   437,   439,
+     442,   445,   448,   451,   454,   457
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-      97,     0,    -1,    -1,    97,    98,    -1,    99,   100,    -1,
-     102,   103,    -1,   105,   106,    -1,   183,   184,    -1,    11,
-      -1,   100,   101,    -1,    -1,   108,    -1,   109,    -1,   112,
-      -1,   115,    -1,   121,    -1,   122,    -1,   123,    -1,   124,
-      -1,   113,    -1,   127,    -1,   128,    -1,   129,    -1,   130,
-      -1,   131,    -1,   143,    -1,   144,    -1,   145,    -1,   146,
-      -1,   147,    -1,   118,    -1,   148,    -1,   149,    -1,   152,
-      -1,   150,    -1,   151,    -1,   153,    -1,   154,    -1,   155,
-      -1,   162,    -1,   138,    -1,   139,    -1,   140,    -1,   141,
-      -1,   156,    -1,   165,    -1,   135,    -1,   137,    -1,   166,
-      -1,   168,    -1,   169,    -1,   170,    -1,   119,    -1,   142,
-      -1,   172,    -1,   173,    -1,   136,    -1,   171,    -1,   126,
-      -1,   114,    -1,   132,    -1,   163,    -1,   167,    -1,   157,
-      -1,   164,    -1,   175,    -1,   176,    -1,   120,    -1,   110,
-      -1,   125,    -1,   159,    -1,   111,    -1,   116,    -1,   117,
-      -1,   133,    -1,   134,    -1,   174,    -1,   158,    -1,   160,
-      -1,   161,    -1,    38,    -1,   103,   104,    -1,    -1,   177,
-      -1,   178,    -1,   179,    -1,    44,    -1,   106,   107,    -1,
-      -1,   180,    -1,   181,    -1,   182,    -1,    13,    10,    -1,
-      12,    10,    -1,    76,    10,    -1,    79,    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,    77,    10,
-      -1,    66,    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,    54,    10,
-      -1,    64,    10,    -1,    55,    10,    -1,    48,    10,    -1,
-      49,    10,    -1,    50,    10,    -1,    51,    10,    -1,    61,
-      10,    -1,    26,    10,    -1,    27,    10,    -1,    28,    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,    85,    10,    -1,
-      78,    10,    -1,    86,    10,    -1,    87,    10,    -1,    47,
-      10,    -1,    69,    10,    -1,    72,    10,    10,    -1,    53,
-      10,    -1,    56,    10,    -1,    70,    10,    -1,    57,    10,
-      -1,    58,    10,    -1,    59,    10,    -1,    65,    10,    -1,
-      62,    10,    -1,    63,    10,    -1,    84,    10,    -1,    73,
-      10,    10,    -1,    74,    10,    -1,    37,    10,    -1,    39,
-      10,    -1,    40,    10,    -1,    37,    10,    -1,    45,    10,
-      -1,    46,    10,    -1,    88,    -1,   184,   185,    -1,    -1,
-     186,    -1,   188,    -1,   187,    -1,   189,    -1,   190,    -1,
-     191,    -1,   192,    -1,    89,    10,    -1,    91,    10,    -1,
-      90,    10,    -1,    92,    10,    -1,    93,    10,    -1,    94,
-      10,    -1,    95,    10,    -1
+      98,     0,    -1,    -1,    98,    99,    -1,   100,   101,    -1,
+     103,   104,    -1,   106,   107,    -1,   185,   186,    -1,    11,
+      -1,   101,   102,    -1,    -1,   109,    -1,   110,    -1,   114,
+      -1,   117,    -1,   123,    -1,   124,    -1,   125,    -1,   126,
+      -1,   115,    -1,   129,    -1,   130,    -1,   131,    -1,   132,
+      -1,   133,    -1,   145,    -1,   146,    -1,   147,    -1,   148,
+      -1,   149,    -1,   120,    -1,   150,    -1,   151,    -1,   154,
+      -1,   152,    -1,   153,    -1,   155,    -1,   156,    -1,   157,
+      -1,   164,    -1,   140,    -1,   141,    -1,   142,    -1,   143,
+      -1,   158,    -1,   167,    -1,   137,    -1,   139,    -1,   168,
+      -1,   170,    -1,   171,    -1,   172,    -1,   121,    -1,   144,
+      -1,   174,    -1,   175,    -1,   138,    -1,   173,    -1,   128,
+      -1,   116,    -1,   134,    -1,   165,    -1,   169,    -1,   159,
+      -1,   166,    -1,   177,    -1,   178,    -1,   122,    -1,   111,
+      -1,   127,    -1,   161,    -1,   112,    -1,   118,    -1,   119,
+      -1,   135,    -1,   136,    -1,   176,    -1,   160,    -1,   162,
+      -1,   163,    -1,   113,    -1,    38,    -1,   104,   105,    -1,
+      -1,   179,    -1,   180,    -1,   181,    -1,    44,    -1,   107,
+     108,    -1,    -1,   182,    -1,   183,    -1,   184,    -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,    77,    10,    -1,    66,    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,    54,    10,    -1,    64,    10,    -1,    55,
+      10,    -1,    48,    10,    -1,    49,    10,    -1,    50,    10,
+      -1,    51,    10,    -1,    61,    10,    -1,    26,    10,    -1,
+      27,    10,    -1,    28,    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,    85,    10,    -1,    78,    10,    -1,    86,    10,
+      -1,    87,    10,    -1,    47,    10,    -1,    69,    10,    -1,
+      72,    10,    10,    -1,    53,    10,    -1,    56,    10,    -1,
+      70,    10,    -1,    57,    10,    -1,    58,    10,    -1,    59,
+      10,    -1,    65,    10,    -1,    62,    10,    -1,    63,    10,
+      -1,    84,    10,    -1,    73,    10,    10,    -1,    74,    10,
+      -1,    37,    10,    -1,    39,    10,    -1,    40,    10,    -1,
+      37,    10,    -1,    45,    10,    -1,    46,    10,    -1,    88,
+      -1,   186,   187,    -1,    -1,   188,    -1,   190,    -1,   189,
+      -1,   191,    -1,   192,    -1,   193,    -1,   194,    -1,    89,
+      10,    -1,    91,    10,    -1,    90,    10,    -1,    92,    10,
+      -1,    93,    10,    -1,    94,    10,    -1,    95,    10,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   100,   100,   100,   101,   101,   102,   102,   106,   111,
-     112,   113,   113,   113,   114,   114,   115,   115,   115,   116,
-     116,   116,   117,   117,   117,   118,   118,   119,   119,   120,
-     120,   121,   121,   122,   122,   123,   123,   124,   124,   125,
-     125,   126,   126,   126,   127,   127,   127,   128,   128,   128,
-     129,   129,   130,   130,   131,   131,   132,   132,   133,   133,
-     133,   134,   134,   135,   135,   136,   136,   136,   137,   137,
-     138,   138,   139,   139,   140,   140,   140,   141,   141,   142,
-     144,   156,   157,   158,   158,   158,   160,   172,   173,   174,
-     174,   174,   176,   185,   194,   205,   214,   223,   236,   251,
-     260,   269,   278,   287,   296,   305,   314,   323,   332,   341,
-     350,   364,   371,   378,   385,   393,   400,   407,   414,   421,
-     429,   437,   444,   453,   462,   469,   476,   487,   495,   508,
-     517,   525,   538,   547,   556,   565,   574,   587,   594,   604,
-     614,   624,   634,   644,   654,   661,   668,   675,   685,   699,
-     706,   724,   733,   742,   752,   762,   769,   777,   790,   798,
-     817,   824,   831,   838,   845,   852,   859,   866,   871,   872,
-     873,   873,   873,   874,   874,   874,   875,   877,   887,   896,
-     903,   910,   917,   924
+       0,   101,   101,   101,   102,   102,   103,   103,   107,   112,
+     113,   114,   114,   114,   115,   115,   116,   116,   116,   117,
+     117,   117,   118,   118,   118,   119,   119,   120,   120,   121,
+     121,   122,   122,   123,   123,   124,   124,   125,   125,   126,
+     126,   127,   127,   127,   128,   128,   128,   129,   129,   129,
+     130,   130,   131,   131,   132,   132,   133,   133,   134,   134,
+     134,   135,   135,   136,   136,   137,   137,   137,   138,   138,
+     139,   139,   140,   140,   141,   141,   141,   142,   142,   143,
+     143,   145,   157,   158,   159,   159,   159,   161,   173,   174,
+     175,   175,   175,   177,   186,   195,   206,   215,   224,   233,
+     246,   261,   270,   279,   288,   297,   306,   315,   324,   333,
+     342,   351,   360,   374,   381,   388,   395,   403,   410,   417,
+     424,   431,   439,   447,   454,   463,   472,   479,   486,   497,
+     505,   518,   527,   535,   548,   557,   566,   575,   584,   597,
+     604,   614,   624,   634,   644,   654,   664,   671,   678,   685,
+     695,   709,   716,   734,   743,   752,   762,   772,   779,   787,
+     800,   808,   827,   834,   841,   848,   855,   862,   869,   876,
+     881,   882,   883,   883,   883,   884,   884,   884,   885,   887,
+     897,   906,   913,   920,   927,   934
 };
 #endif
 
@@ -737,11 +739,12 @@ static const char *const yytname[] =
   "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
   "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
   "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
-  "$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_port", "server_interface",
+  "VAR_EXTENDED_STATISTICS", "$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",
@@ -791,32 +794,32 @@ static const yytype_uint16 yytoknum[] =
      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
+     345,   346,   347,   348,   349,   350,   351
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    96,    97,    97,    98,    98,    98,    98,    99,   100,
-     100,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-     102,   103,   103,   104,   104,   104,   105,   106,   106,   107,
-     107,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+       0,    97,    98,    98,    99,    99,    99,    99,   100,   101,
+     101,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+     102,   103,   104,   104,   105,   105,   105,   106,   107,   107,
+     108,   108,   108,   109,   110,   111,   112,   113,   114,   115,
      116,   117,   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,   184,
-     185,   185,   185,   185,   185,   185,   185,   186,   187,   188,
-     189,   190,   191,   192
+     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     186,   186,   187,   187,   187,   187,   187,   187,   187,   188,
+     189,   190,   191,   192,   193,   194
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -830,17 +833,17 @@ 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,     2,     0,     1,
-       1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
+       1,     1,     2,     0,     1,     1,     1,     1,     2,     0,
+       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,     3,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
-       2,     2,     2,     2,     2,     2,     2,     1,     2,     0,
-       1,     1,     1,     1,     1,     1,     1,     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,     3,     2,     2,     2,     2,     2,     2,     2,     1,
+       2,     0,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     2,     2,     2
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -848,48 +851,49 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       2,     0,     1,     8,    80,    86,   167,     3,    10,    82,
-      88,   169,     4,     5,     6,     7,     0,     0,     0,     0,
+       2,     0,     1,     8,    81,    87,   169,     3,    10,    83,
+      89,   171,     4,     5,     6,     7,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     9,    11,    12,    68,    71,
-      13,    19,    59,    14,    72,    73,    30,    52,    67,    15,
-      16,    17,    18,    69,    58,    20,    21,    22,    23,    24,
-      60,    74,    75,    46,    56,    47,    40,    41,    42,    43,
-      53,    25,    26,    27,    28,    29,    31,    32,    34,    35,
-      33,    36,    37,    38,    44,    63,    77,    70,    78,    79,
-      39,    61,    64,    45,    48,    62,    49,    50,    51,    57,
-      54,    55,    76,    65,    66,     0,     0,     0,    81,    83,
-      84,    85,     0,     0,     0,    87,    89,    90,    91,     0,
-       0,     0,     0,     0,     0,     0,   168,   170,   172,   171,
-     173,   174,   175,   176,    93,    92,    96,    99,    97,   105,
-     106,   107,   108,   111,   112,   113,   114,   115,   127,   128,
-     129,   130,   131,   102,   132,   133,   136,   134,   135,   137,
-     138,   139,   146,   122,   123,   124,   125,   140,   149,   119,
-     121,   150,   152,   153,   154,   103,   126,   156,   157,   120,
-     155,   110,    98,   116,   147,   151,   141,     0,     0,   160,
-     104,    94,   109,   143,    95,   100,   101,   117,   118,   158,
-     142,   144,   145,   161,   162,   163,   164,   165,   166,   177,
-     179,   178,   180,   181,   182,   183,   148,   159
+       0,     0,     0,     0,     0,     0,     9,    11,    12,    68,
+      71,    80,    13,    19,    59,    14,    72,    73,    30,    52,
+      67,    15,    16,    17,    18,    69,    58,    20,    21,    22,
+      23,    24,    60,    74,    75,    46,    56,    47,    40,    41,
+      42,    43,    53,    25,    26,    27,    28,    29,    31,    32,
+      34,    35,    33,    36,    37,    38,    44,    63,    77,    70,
+      78,    79,    39,    61,    64,    45,    48,    62,    49,    50,
+      51,    57,    54,    55,    76,    65,    66,     0,     0,     0,
+      82,    84,    85,    86,     0,     0,     0,    88,    90,    91,
+      92,     0,     0,     0,     0,     0,     0,     0,   170,   172,
+     174,   173,   175,   176,   177,   178,    94,    93,    98,   101,
+      99,   107,   108,   109,   110,   113,   114,   115,   116,   117,
+     129,   130,   131,   132,   133,   104,   134,   135,   138,   136,
+     137,   139,   140,   141,   148,   124,   125,   126,   127,   142,
+     151,   121,   123,   152,   154,   155,   156,   105,   128,   158,
+     159,   122,   157,   112,   100,   118,   149,   153,   143,     0,
+       0,   162,   106,    95,   111,   145,    96,   102,   103,   119,
+     120,   160,   144,   146,   147,    97,   163,   164,   165,   166,
+     167,   168,   179,   181,   180,   182,   183,   184,   185,   150,
+     161
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,     7,     8,    12,    85,     9,    13,   158,    10,
-      14,   165,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    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,   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,   159,   160,   161,   166,   167,   168,    11,    15,   176,
-     177,   178,   179,   180,   181,   182,   183
+      -1,     1,     7,     8,    12,    86,     9,    13,   160,    10,
+      14,   167,    87,    88,    89,    90,    91,    92,    93,    94,
+      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,   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,   161,   162,   163,   168,   169,   170,    11,    15,
+     178,   179,   180,   181,   182,   183,   184,   185
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -903,27 +907,28 @@ static const yytype_int16 yypact[] =
       19,    20,    21,    22,    23,    24,    25,    26,    27,    29,
       30,    31,    32,    33,    35,    36,    37,    38,    39,    40,
       41,    43,    69,    70,    71,    72,    76,    77,   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,   -88,   -88,   -88,   -88,   -88,
+     122,   123,   124,   125,   126,   127,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
-     -88,   -88,   -88,   -88,   -88,   147,   148,   149,   -88,   -88,
-     -88,   -88,   150,   151,   152,   -88,   -88,   -88,   -88,   153,
-     154,   155,   156,   157,   158,   159,   -88,   -88,   -88,   -88,
+     -88,   -88,   -88,   -88,   -88,   -88,   -88,   149,   150,   151,
+     -88,   -88,   -88,   -88,   152,   153,   154,   -88,   -88,   -88,
+     -88,   155,   156,   157,   158,   159,   160,   161,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
-     -88,   -88,   -88,   -88,   -88,   -88,   -88,   160,   161,   -88,
+     -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   162,
+     163,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
-     -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88
+     -88
 };
 
 /* YYPGOTO[NTERM-NUM].  */
@@ -938,7 +943,7 @@ static const yytype_int8 yypgoto[] =
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
      -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88,
-     -88,   -88,   -88,   -88,   -88,   -88,   -88
+     -88,   -88,   -88,   -88,   -88,   -88,   -88,   -88
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -948,24 +953,24 @@ static const yytype_int8 yypgoto[] =
 #define YYTABLE_NINF -1
 static const yytype_uint16 yytable[] =
 {
-       2,   162,   169,   170,   171,   172,   173,   174,   175,   163,
-     164,     3,   155,   184,   156,   157,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
-     199,   200,   201,   202,   203,   204,   205,   206,     4,   207,
-     208,   209,   210,   211,     5,   212,   213,   214,   215,   216,
-     217,   218,     0,   219,    16,    17,    18,    19,    20,    21,
+       2,   164,   171,   172,   173,   174,   175,   176,   177,   165,
+     166,     3,   157,   186,   158,   159,   187,   188,   189,   190,
+     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,     4,   209,
+     210,   211,   212,   213,     5,   214,   215,   216,   217,   218,
+     219,   220,     0,   221,    16,    17,    18,    19,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,   220,
-     221,   222,   223,    41,    42,    43,   224,   225,     6,    44,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,   222,
+     223,   224,   225,    41,    42,    43,   226,   227,     6,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-     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,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-     266,   267
+     228,   229,   230,   231,   232,   233,   234,   235,    85,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
+     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
+     267,   268,   269,   270
 };
 
 static const yytype_int8 yycheck[] =
@@ -983,36 +988,37 @@ static const yytype_int8 yycheck[] =
       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,
+      10,    10,    10,    10,    10,    10,    10,    10,    96,    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_uint8 yystos[] =
 {
-       0,    97,     0,    11,    38,    44,    88,    98,    99,   102,
-     105,   183,   100,   103,   106,   184,    12,    13,    14,    15,
+       0,    98,     0,    11,    38,    44,    88,    99,   100,   103,
+     106,   185,   101,   104,   107,   186,    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,    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,   101,   108,   109,   110,   111,
+      83,    84,    85,    86,    87,    96,   102,   109,   110,   111,
      112,   113,   114,   115,   116,   117,   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,    37,    39,    40,   104,   177,
-     178,   179,    37,    45,    46,   107,   180,   181,   182,    89,
-      90,    91,    92,    93,    94,    95,   185,   186,   187,   188,
-     189,   190,   191,   192,    10,    10,    10,    10,    10,    10,
+     172,   173,   174,   175,   176,   177,   178,    37,    39,    40,
+     105,   179,   180,   181,    37,    45,    46,   108,   182,   183,
+     184,    89,    90,    91,    92,    93,    94,    95,   187,   188,
+     189,   190,   191,   192,   193,   194,    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,
@@ -1020,7 +1026,7 @@ static const yytype_uint8 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,    10,    10,    10
+      10
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1835,14 +1841,14 @@ yyreduce:
   switch (yyn)
     {
         case 8:
-#line 107 "util/configparser.y"
+#line 108 "util/configparser.y"
     { 
                OUTYY(("\nP(server:)\n")); 
        }
     break;
 
-  case 80:
-#line 145 "util/configparser.y"
+  case 81:
+#line 146 "util/configparser.y"
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -1855,8 +1861,8 @@ yyreduce:
        }
     break;
 
-  case 86:
-#line 161 "util/configparser.y"
+  case 87:
+#line 162 "util/configparser.y"
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -1869,8 +1875,8 @@ yyreduce:
        }
     break;
 
-  case 92:
-#line 177 "util/configparser.y"
+  case 93:
+#line 178 "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)
@@ -1880,8 +1886,8 @@ yyreduce:
        }
     break;
 
-  case 93:
-#line 186 "util/configparser.y"
+  case 94:
+#line 187 "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)
@@ -1891,8 +1897,8 @@ yyreduce:
        }
     break;
 
-  case 94:
-#line 195 "util/configparser.y"
+  case 95:
+#line 196 "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)
@@ -1904,8 +1910,8 @@ yyreduce:
        }
     break;
 
-  case 95:
-#line 206 "util/configparser.y"
+  case 96:
+#line 207 "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)
@@ -1915,8 +1921,19 @@ yyreduce:
        }
     break;
 
-  case 96:
-#line 215 "util/configparser.y"
+  case 97:
+#line 216 "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)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+               free((yyvsp[(2) - (2)].str));
+       }
+    break;
+
+  case 98:
+#line 225 "util/configparser.y"
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -1926,8 +1943,8 @@ yyreduce:
        }
     break;
 
-  case 97:
-#line 224 "util/configparser.y"
+  case 99:
+#line 234 "util/configparser.y"
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -1941,8 +1958,8 @@ yyreduce:
        }
     break;
 
-  case 98:
-#line 237 "util/configparser.y"
+  case 100:
+#line 247 "util/configparser.y"
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -1958,8 +1975,8 @@ yyreduce:
        }
     break;
 
-  case 99:
-#line 252 "util/configparser.y"
+  case 101:
+#line 262 "util/configparser.y"
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -1969,8 +1986,8 @@ yyreduce:
        }
     break;
 
-  case 100:
-#line 261 "util/configparser.y"
+  case 102:
+#line 271 "util/configparser.y"
     {
                OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, 
@@ -1980,8 +1997,8 @@ yyreduce:
        }
     break;
 
-  case 101:
-#line 270 "util/configparser.y"
+  case 103:
+#line 280 "util/configparser.y"
     {
                OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, 
@@ -1991,8 +2008,8 @@ yyreduce:
        }
     break;
 
-  case 102:
-#line 279 "util/configparser.y"
+  case 104:
+#line 289 "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)
@@ -2002,8 +2019,8 @@ yyreduce:
        }
     break;
 
-  case 103:
-#line 288 "util/configparser.y"
+  case 105:
+#line 298 "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)
@@ -2013,8 +2030,8 @@ yyreduce:
        }
     break;
 
-  case 104:
-#line 297 "util/configparser.y"
+  case 106:
+#line 307 "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)
@@ -2024,8 +2041,8 @@ yyreduce:
        }
     break;
 
-  case 105:
-#line 306 "util/configparser.y"
+  case 107:
+#line 316 "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)
@@ -2035,8 +2052,8 @@ yyreduce:
        }
     break;
 
-  case 106:
-#line 315 "util/configparser.y"
+  case 108:
+#line 325 "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)
@@ -2046,8 +2063,8 @@ yyreduce:
        }
     break;
 
-  case 107:
-#line 324 "util/configparser.y"
+  case 109:
+#line 334 "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)
@@ -2057,8 +2074,8 @@ yyreduce:
        }
     break;
 
-  case 108:
-#line 333 "util/configparser.y"
+  case 110:
+#line 343 "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)
@@ -2068,8 +2085,8 @@ yyreduce:
        }
     break;
 
-  case 109:
-#line 342 "util/configparser.y"
+  case 111:
+#line 352 "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)
@@ -2079,8 +2096,8 @@ yyreduce:
        }
     break;
 
-  case 110:
-#line 351 "util/configparser.y"
+  case 112:
+#line 361 "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)
@@ -2095,8 +2112,8 @@ yyreduce:
        }
     break;
 
-  case 111:
-#line 365 "util/configparser.y"
+  case 113:
+#line 375 "util/configparser.y"
     {
                OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->chrootdir);
@@ -2104,8 +2121,8 @@ yyreduce:
        }
     break;
 
-  case 112:
-#line 372 "util/configparser.y"
+  case 114:
+#line 382 "util/configparser.y"
     {
                OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->username);
@@ -2113,8 +2130,8 @@ yyreduce:
        }
     break;
 
-  case 113:
-#line 379 "util/configparser.y"
+  case 115:
+#line 389 "util/configparser.y"
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->directory);
@@ -2122,8 +2139,8 @@ yyreduce:
        }
     break;
 
-  case 114:
-#line 386 "util/configparser.y"
+  case 116:
+#line 396 "util/configparser.y"
     {
                OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->logfile);
@@ -2132,8 +2149,8 @@ yyreduce:
        }
     break;
 
-  case 115:
-#line 394 "util/configparser.y"
+  case 117:
+#line 404 "util/configparser.y"
     {
                OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->pidfile);
@@ -2141,8 +2158,8 @@ yyreduce:
        }
     break;
 
-  case 116:
-#line 401 "util/configparser.y"
+  case 118:
+#line 411 "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)))
@@ -2150,8 +2167,8 @@ yyreduce:
        }
     break;
 
-  case 117:
-#line 408 "util/configparser.y"
+  case 119:
+#line 418 "util/configparser.y"
     {
                OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->dlv_anchor_file);
@@ -2159,8 +2176,8 @@ yyreduce:
        }
     break;
 
-  case 118:
-#line 415 "util/configparser.y"
+  case 120:
+#line 425 "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)))
@@ -2168,8 +2185,8 @@ yyreduce:
        }
     break;
 
-  case 119:
-#line 422 "util/configparser.y"
+  case 121:
+#line 432 "util/configparser.y"
     {
                OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2178,8 +2195,8 @@ yyreduce:
        }
     break;
 
-  case 120:
-#line 430 "util/configparser.y"
+  case 122:
+#line 440 "util/configparser.y"
     {
                OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2188,8 +2205,8 @@ yyreduce:
        }
     break;
 
-  case 121:
-#line 438 "util/configparser.y"
+  case 123:
+#line 448 "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)))
@@ -2197,8 +2214,8 @@ yyreduce:
        }
     break;
 
-  case 122:
-#line 445 "util/configparser.y"
+  case 124:
+#line 455 "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)
@@ -2208,8 +2225,8 @@ yyreduce:
        }
     break;
 
-  case 123:
-#line 454 "util/configparser.y"
+  case 125:
+#line 464 "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)
@@ -2219,8 +2236,8 @@ yyreduce:
        }
     break;
 
-  case 124:
-#line 463 "util/configparser.y"
+  case 126:
+#line 473 "util/configparser.y"
     {
                OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->identity);
@@ -2228,8 +2245,8 @@ yyreduce:
        }
     break;
 
-  case 125:
-#line 470 "util/configparser.y"
+  case 127:
+#line 480 "util/configparser.y"
     {
                OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->version);
@@ -2237,8 +2254,8 @@ yyreduce:
        }
     break;
 
-  case 126:
-#line 477 "util/configparser.y"
+  case 128:
+#line 487 "util/configparser.y"
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2250,8 +2267,8 @@ yyreduce:
        }
     break;
 
-  case 127:
-#line 488 "util/configparser.y"
+  case 129:
+#line 498 "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))
@@ -2260,8 +2277,8 @@ yyreduce:
        }
     break;
 
-  case 128:
-#line 496 "util/configparser.y"
+  case 130:
+#line 506 "util/configparser.y"
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2275,8 +2292,8 @@ yyreduce:
        }
     break;
 
-  case 129:
-#line 509 "util/configparser.y"
+  case 131:
+#line 519 "util/configparser.y"
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2286,8 +2303,8 @@ yyreduce:
        }
     break;
 
-  case 130:
-#line 518 "util/configparser.y"
+  case 132:
+#line 528 "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))
@@ -2296,8 +2313,8 @@ yyreduce:
        }
     break;
 
-  case 131:
-#line 526 "util/configparser.y"
+  case 133:
+#line 536 "util/configparser.y"
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2311,8 +2328,8 @@ yyreduce:
        }
     break;
 
-  case 132:
-#line 539 "util/configparser.y"
+  case 134:
+#line 549 "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)
@@ -2322,8 +2339,8 @@ yyreduce:
        }
     break;
 
-  case 133:
-#line 548 "util/configparser.y"
+  case 135:
+#line 558 "util/configparser.y"
     {
                OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2333,8 +2350,8 @@ yyreduce:
        }
     break;
 
-  case 134:
-#line 557 "util/configparser.y"
+  case 136:
+#line 567 "util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2344,8 +2361,8 @@ yyreduce:
        }
     break;
 
-  case 135:
-#line 566 "util/configparser.y"
+  case 137:
+#line 576 "util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
                if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->
@@ -2355,8 +2372,8 @@ yyreduce:
        }
     break;
 
-  case 136:
-#line 575 "util/configparser.y"
+  case 138:
+#line 585 "util/configparser.y"
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2370,8 +2387,8 @@ yyreduce:
        }
     break;
 
-  case 137:
-#line 588 "util/configparser.y"
+  case 139:
+#line 598 "util/configparser.y"
     {
                OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->target_fetch_policy);
@@ -2379,8 +2396,8 @@ yyreduce:
        }
     break;
 
-  case 138:
-#line 595 "util/configparser.y"
+  case 140:
+#line 605 "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)
@@ -2391,8 +2408,8 @@ yyreduce:
        }
     break;
 
-  case 139:
-#line 605 "util/configparser.y"
+  case 141:
+#line 615 "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)
@@ -2403,8 +2420,8 @@ yyreduce:
        }
     break;
 
-  case 140:
-#line 615 "util/configparser.y"
+  case 142:
+#line 625 "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)
@@ -2415,8 +2432,8 @@ yyreduce:
        }
     break;
 
-  case 141:
-#line 625 "util/configparser.y"
+  case 143:
+#line 635 "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)
@@ -2427,8 +2444,8 @@ yyreduce:
        }
     break;
 
-  case 142:
-#line 635 "util/configparser.y"
+  case 144:
+#line 645 "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)
@@ -2439,8 +2456,8 @@ yyreduce:
        }
     break;
 
-  case 143:
-#line 645 "util/configparser.y"
+  case 145:
+#line 655 "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)
@@ -2451,8 +2468,8 @@ yyreduce:
        }
     break;
 
-  case 144:
-#line 655 "util/configparser.y"
+  case 146:
+#line 665 "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)))
@@ -2460,8 +2477,8 @@ yyreduce:
        }
     break;
 
-  case 145:
-#line 662 "util/configparser.y"
+  case 147:
+#line 672 "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)))
@@ -2469,8 +2486,8 @@ yyreduce:
        }
     break;
 
-  case 146:
-#line 669 "util/configparser.y"
+  case 148:
+#line 679 "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)))
@@ -2478,8 +2495,8 @@ yyreduce:
        }
     break;
 
-  case 147:
-#line 676 "util/configparser.y"
+  case 149:
+#line 686 "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)
@@ -2490,8 +2507,8 @@ yyreduce:
        }
     break;
 
-  case 148:
-#line 686 "util/configparser.y"
+  case 150:
+#line 696 "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 &&
@@ -2506,8 +2523,8 @@ yyreduce:
        }
     break;
 
-  case 149:
-#line 700 "util/configparser.y"
+  case 151:
+#line 710 "util/configparser.y"
     {
                OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->module_conf);
@@ -2515,8 +2532,8 @@ yyreduce:
        }
     break;
 
-  case 150:
-#line 707 "util/configparser.y"
+  case 152:
+#line 717 "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) {
@@ -2535,8 +2552,8 @@ yyreduce:
        }
     break;
 
-  case 151:
-#line 725 "util/configparser.y"
+  case 153:
+#line 735 "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)
@@ -2546,8 +2563,8 @@ yyreduce:
        }
     break;
 
-  case 152:
-#line 734 "util/configparser.y"
+  case 154:
+#line 744 "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)
@@ -2557,8 +2574,8 @@ yyreduce:
        }
     break;
 
-  case 153:
-#line 743 "util/configparser.y"
+  case 155:
+#line 753 "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)
@@ -2569,8 +2586,8 @@ yyreduce:
        }
     break;
 
-  case 154:
-#line 753 "util/configparser.y"
+  case 156:
+#line 763 "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)
@@ -2581,8 +2598,8 @@ yyreduce:
        }
     break;
 
-  case 155:
-#line 763 "util/configparser.y"
+  case 157:
+#line 773 "util/configparser.y"
     {
                OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->val_nsec3_key_iterations);
@@ -2590,8 +2607,8 @@ yyreduce:
        }
     break;
 
-  case 156:
-#line 770 "util/configparser.y"
+  case 158:
+#line 780 "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))
@@ -2600,8 +2617,8 @@ yyreduce:
        }
     break;
 
-  case 157:
-#line 778 "util/configparser.y"
+  case 159:
+#line 788 "util/configparser.y"
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2615,8 +2632,8 @@ yyreduce:
        }
     break;
 
-  case 158:
-#line 791 "util/configparser.y"
+  case 160:
+#line 801 "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))
@@ -2625,8 +2642,8 @@ yyreduce:
        }
     break;
 
-  case 159:
-#line 799 "util/configparser.y"
+  case 161:
+#line 809 "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 &&
@@ -2646,8 +2663,8 @@ yyreduce:
        }
     break;
 
-  case 160:
-#line 818 "util/configparser.y"
+  case 162:
+#line 828 "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)))
@@ -2655,8 +2672,8 @@ yyreduce:
        }
     break;
 
-  case 161:
-#line 825 "util/configparser.y"
+  case 163:
+#line 835 "util/configparser.y"
     {
                OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->stubs->name);
@@ -2664,8 +2681,8 @@ yyreduce:
        }
     break;
 
-  case 162:
-#line 832 "util/configparser.y"
+  case 164:
+#line 842 "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)))
@@ -2673,8 +2690,8 @@ yyreduce:
        }
     break;
 
-  case 163:
-#line 839 "util/configparser.y"
+  case 165:
+#line 849 "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)))
@@ -2682,8 +2699,8 @@ yyreduce:
        }
     break;
 
-  case 164:
-#line 846 "util/configparser.y"
+  case 166:
+#line 856 "util/configparser.y"
     {
                OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->forwards->name);
@@ -2691,8 +2708,8 @@ yyreduce:
        }
     break;
 
-  case 165:
-#line 853 "util/configparser.y"
+  case 167:
+#line 863 "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)))
@@ -2700,8 +2717,8 @@ yyreduce:
        }
     break;
 
-  case 166:
-#line 860 "util/configparser.y"
+  case 168:
+#line 870 "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)))
@@ -2709,15 +2726,15 @@ yyreduce:
        }
     break;
 
-  case 167:
-#line 867 "util/configparser.y"
+  case 169:
+#line 877 "util/configparser.y"
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
     break;
 
-  case 177:
-#line 878 "util/configparser.y"
+  case 179:
+#line 888 "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)
@@ -2728,8 +2745,8 @@ yyreduce:
        }
     break;
 
-  case 178:
-#line 888 "util/configparser.y"
+  case 180:
+#line 898 "util/configparser.y"
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
                if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2739,8 +2756,8 @@ yyreduce:
        }
     break;
 
-  case 179:
-#line 897 "util/configparser.y"
+  case 181:
+#line 907 "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)))
@@ -2748,8 +2765,8 @@ yyreduce:
        }
     break;
 
-  case 180:
-#line 904 "util/configparser.y"
+  case 182:
+#line 914 "util/configparser.y"
     {
                OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_key_file);
@@ -2757,8 +2774,8 @@ yyreduce:
        }
     break;
 
-  case 181:
-#line 911 "util/configparser.y"
+  case 183:
+#line 921 "util/configparser.y"
     {
                OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->server_cert_file);
@@ -2766,8 +2783,8 @@ yyreduce:
        }
     break;
 
-  case 182:
-#line 918 "util/configparser.y"
+  case 184:
+#line 928 "util/configparser.y"
     {
                OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_key_file);
@@ -2775,8 +2792,8 @@ yyreduce:
        }
     break;
 
-  case 183:
-#line 925 "util/configparser.y"
+  case 185:
+#line 935 "util/configparser.y"
     {
                OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
                free(cfg_parser->cfg->control_cert_file);
@@ -2786,7 +2803,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 2790 "util/configparser.c"
+#line 2807 "util/configparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3000,7 +3017,7 @@ yyreturn:
 }
 
 
-#line 931 "util/configparser.y"
+#line 941 "util/configparser.y"
 
 
 /* parse helper routines could be here */
index d6987c4f6731d5e61fe723d9c79fb9a4304d3bb1..fd074b8f81c1f530c1fcd73818ae71593ed07174 100644 (file)
      VAR_SERVER_KEY_FILE = 347,
      VAR_SERVER_CERT_FILE = 348,
      VAR_CONTROL_KEY_FILE = 349,
-     VAR_CONTROL_CERT_FILE = 350
+     VAR_CONTROL_CERT_FILE = 350,
+     VAR_EXTENDED_STATISTICS = 351
    };
 #endif
 /* Tokens.  */
 #define VAR_SERVER_CERT_FILE 348
 #define VAR_CONTROL_KEY_FILE 349
 #define VAR_CONTROL_CERT_FILE 350
+#define VAR_EXTENDED_STATISTICS 351
 
 
 
@@ -239,7 +241,7 @@ typedef union YYSTYPE
        char*   str;
 }
 /* Line 1489 of yacc.c.  */
-#line 243 "util/configparser.h"
+#line 245 "util/configparser.h"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
index 2a7f2079a99c2773dbce9973a103b4f31d85a255..9ffa1b5b0a88bd0f4d93189b2b840f83d8eac92c 100644 (file)
@@ -95,6 +95,7 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE
 %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE
 %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE
+%token VAR_EXTENDED_STATISTICS
 
 %%
 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -139,7 +140,7 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_outgoing_port_permit | server_outgoing_port_avoid |
        server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size |
        server_harden_referral_path | server_private_address |
-       server_private_domain
+       server_private_domain | server_extended_statistics
        ;
 stubstart: VAR_STUB_ZONE
        {
@@ -211,6 +212,15 @@ server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING
                free($2);
        }
        ;
+server_extended_statistics: VAR_EXTENDED_STATISTICS STRING
+       {
+               OUTYY(("P(server_extended_statistics:%s)\n", $2));
+               if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+                       yyerror("expected yes or no.");
+               else cfg_parser->cfg->stat_extended = (strcmp($2, "yes")==0);
+               free($2);
+       }
+       ;
 server_port: VAR_PORT STRING
        {
                OUTYY(("P(server_port:%s)\n", $2));