]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Many files:
authorDave Hart <hart@ntp.org>
Sat, 27 Feb 2010 22:48:05 +0000 (22:48 +0000)
committerDave Hart <hart@ntp.org>
Sat, 27 Feb 2010 22:48:05 +0000 (22:48 +0000)
  more MRU knobs
ntp_keyword.h, keyword-gen-utd:
  keyword-gen.c product
ntp_parser.h, ntp_parser.c:
  ntp_parser.y product
ntp_request.c:
  limit 'ntpdc -c monlist' response to most recent 600 entries, to
    be consistent with the historical maximum MRU list size.
ntpq-subs.c:
  read up to three named variables at once:
    ntpq -c "rv 0 version mru_depth mru_maxmem"

bk: 4b89a125iv8URwPu3FgcKpJt_BrQuQ

14 files changed:
include/ntp_control.h
include/ntpd.h
ntpd/complete.conf
ntpd/keyword-gen-utd
ntpd/keyword-gen.c
ntpd/ntp_config.c
ntpd/ntp_control.c
ntpd/ntp_keyword.h
ntpd/ntp_monitor.c
ntpd/ntp_parser.c
ntpd/ntp_parser.h
ntpd/ntp_parser.y
ntpd/ntp_request.c
ntpq/ntpq-subs.c

index e47aac5b7117b6a5ac61b7b555957dc7bf5a15f6..98d98612f10dcc831d42a0209f743e5f027d7fd6 100644 (file)
@@ -169,18 +169,26 @@ struct ntp_control {
 #define CS_LEAPTAB     21
 #define CS_LEAPEND     22
 #define        CS_RATE         23
+#define CS_MRU_ENABLED 24
+#define CS_MRU_DEPTH   25
+#define CS_MRU_DEEPEST 26
+#define CS_MRU_MINDEPTH        27
+#define CS_MRU_MAXAGE  28
+#define CS_MRU_MAXDEPTH        29
+#define CS_MRU_MEM     30
+#define CS_MRU_MAXMEM  31
 #ifdef OPENSSL
-#define CS_FLAGS       24
-#define CS_HOST                25
-#define CS_PUBLIC      26
-#define        CS_CERTIF       27
-#define        CS_SIGNATURE    28
-#define        CS_REVTIME      29
-#define        CS_GROUP        30
-#define CS_DIGEST      31
+#define CS_FLAGS       32
+#define CS_HOST                33
+#define CS_PUBLIC      34
+#define        CS_CERTIF       35
+#define        CS_SIGNATURE    36
+#define        CS_REVTIME      37
+#define        CS_GROUP        38
+#define CS_DIGEST      39
 #define        CS_MAXCODE      CS_DIGEST
 #else
-#define        CS_MAXCODE      CS_RATE
+#define        CS_MAXCODE      CS_MRU_MAXMEM
 #endif /* OPENSSL */
 
 /*
index 43570d796daedc9b50cab94e0e70ab0515b1b6c2..3eab313f48ac7f3302036d21fc8c0419114c9fd7 100644 (file)
@@ -420,9 +420,17 @@ extern double      sys_offset;             /* system offset (s) */
 extern double  sys_jitter;             /* system jitter (s) */
 
 /* ntp_monitor.c */
-extern mon_entry mon_mru_list;
-extern mon_entry mon_fifo_list;
-extern int     mon_enabled;
+extern mon_entry mon_mru_list;         /* mru listhead */
+extern u_int   mon_enabled;
+extern u_int   mru_alloc;              /* mru list + free list count */
+extern u_int   mru_entries;            /* mru list count */
+extern u_int   mru_peakentries;        /* highest mru_entries */
+extern u_int   mru_initalloc;          /* entries to preallocate */
+extern u_int   mru_incalloc;           /* allocation batch factor */
+extern u_int   mru_mindepth;           /* preempt above this */
+extern int     mru_maxage;             /* for entries older than */
+extern u_int   mru_maxdepth;           /* MRU size hard limit */
+extern int     mon_age;                /* preemption limit */
 
 /* ntp_peer.c */
 extern struct peer *peer_hash[NTP_HASH_SIZE];  /* peer hash table */
@@ -507,10 +515,6 @@ extern restrict_u *        restrictlist4;  /* IPv4 restriction list */
 extern restrict_u *    restrictlist6;  /* IPv6 restriction list */
 extern int             ntp_minpkt;
 extern u_char          ntp_minpoll;
-extern u_int   mon_mindepth;           /* preempt above this */
-extern int     mon_maxage;             /* for entries older than */
-extern u_int   mon_maxdepth;           /* MRU size hard limit */
-extern int     mon_age;                /* monitor preempt age */
 
 /* ntp_signd.c */
 #ifdef HAVE_NTP_SIGND
index d24daa3293e7da8f3904e62cb24c61c471b91da2..cb9004daf79052f5cac4efacbff74a43bfee9572 100644 (file)
@@ -37,7 +37,7 @@ manycastclient 224.0.1.1
 manycastclient ff05::101
 manycastserver 224.0.1.1 ff05::101
 multicastclient 224.0.1.1 ff05::101
-mru maxage 64 mindepth 600 maxdepth 1024 maxmem 4096
+mru maxage 64 mindepth 600 initalloc 600 initmem 16 incalloc 99 incmem 4 maxdepth 1024 maxmem 4096
 discard minimum 1 average 3 monitor 3000
 restrict default nomodify limited kod noserve
 restrict source nomodify limited kod
index bf0a32e1b8791484e4e125c0ffa63e137038ce76..4a2c23174e08ba05439a4c22cf3552b64af3445f 100644 (file)
@@ -1 +1 @@
- *      Generated 2010-02-27 09:53:45 UTC        diff_ignore_line
+ *      Generated 2010-02-27 22:24:58 UTC        diff_ignore_line
index ba58259223972d2a663a8be5dfa3b08159f3f85b..0cbc2eb34840253dfb40376c6f389dd73facfb15 100644 (file)
@@ -169,11 +169,15 @@ struct key_tok ntp_keywords[] = {
 { "minimum",           T_Minimum,              FOLLBY_TOKEN },
 { "monitor",           T_Monitor,              FOLLBY_TOKEN },
 /* mru_option */
-{ "mru",               T_Mru,                  FOLLBY_TOKEN },
+{ "incalloc",          T_Incalloc,             FOLLBY_TOKEN },
+{ "incmem",            T_Incmem,               FOLLBY_TOKEN },
+{ "initalloc",         T_Initalloc,            FOLLBY_TOKEN },
+{ "initmem",           T_Initmem,              FOLLBY_TOKEN },
 { "mindepth",          T_Mindepth,             FOLLBY_TOKEN },
 { "maxage",            T_Maxage,               FOLLBY_TOKEN },
 { "maxdepth",          T_Maxdepth,             FOLLBY_TOKEN },
 { "maxmem",            T_Maxmem,               FOLLBY_TOKEN },
+{ "mru",               T_Mru,                  FOLLBY_TOKEN },
 /* fudge_factor */
 { "flag1",             T_Flag1,                FOLLBY_TOKEN },
 { "flag2",             T_Flag2,                FOLLBY_TOKEN },
index 0d7c30d93925747c899048e989eca0da26ffc474..3b58c470e1bbf0a7df76bd177134ef96763873d4 100644 (file)
@@ -110,10 +110,8 @@ typedef struct peer_resolved_ctx_tag {
 /*
  * Miscellaneous macros
  */
-#define STRSAME(s1, s2)        (*(s1) == *(s2) && strcmp((s1), (s2)) == 0)
 #define ISEOL(c)       ((c) == '#' || (c) == '\n' || (c) == '\0')
 #define ISSPACE(c)     ((c) == ' ' || (c) == '\t')
-#define STREQ(a, b)    (*(a) == *(b) && strcmp((a), (b)) == 0)
 
 /*
  * Definitions of things either imported from or exported to outside
@@ -2120,6 +2118,7 @@ config_access(
        int                     restrict_default;
        u_short                 flags;
        u_short                 mflags;
+       int                     range_err;
        const char *            signd_warning =
 #ifdef HAVE_NTP_SIGND
            "MS-SNTP signd operations currently block ntpd degrading service to all clients.";
@@ -2131,42 +2130,76 @@ config_access(
        my_opt = queue_head(ptree->mru_opts);
        while (my_opt != NULL) {
 
-               switch(my_opt->attr) {
+               range_err = FALSE;
+
+               switch (my_opt->attr) {
+
+               case T_Incalloc:
+                       if (0 <= my_opt->value.i)
+                               mru_incalloc = my_opt->value.u;
+                       else
+                               range_err = TRUE;
+                       break;
+
+               case T_Incmem:
+                       if (0 <= my_opt->value.i)
+                               mru_incalloc = (my_opt->value.u * 1024)
+                                               / sizeof(mon_entry);
+                       else
+                               range_err = TRUE;
+                       break;
+
+               case T_Initalloc:
+                       if (0 <= my_opt->value.i)
+                               mru_initalloc = my_opt->value.u;
+                       else
+                               range_err = TRUE;
+                       break;
+
+               case T_Initmem:
+                       if (0 <= my_opt->value.i)
+                               mru_initalloc = (my_opt->value.u * 1024)
+                                                / sizeof(mon_entry);
+                       else
+                               range_err = TRUE;
+                       break;
 
                case T_Mindepth:
                        if (0 <= my_opt->value.i)
-                               mon_mindepth = my_opt->value.u;
+                               mru_mindepth = my_opt->value.u;
                        else
-                               msyslog(LOG_ERR,
-                                       "mon mindepth %d out of range, ignored.",
-                                       my_opt->value.i);
+                               range_err = TRUE;
                        break;
 
                case T_Maxage:
-                       mon_maxage = my_opt->value.i;
+                       mru_maxage = my_opt->value.i;
                        break;
 
                case T_Maxdepth:
                        if (0 <= my_opt->value.i)
-                               mon_maxdepth = my_opt->value.u;
+                               mru_maxdepth = my_opt->value.u;
                        else
-                               mon_maxdepth = UINT_MAX;
+                               mru_maxdepth = UINT_MAX;
                        break;
 
                case T_Maxmem:
                        if (0 <= my_opt->value.i)
-                               mon_maxdepth = my_opt->value.u * 1024 /
+                               mru_maxdepth = my_opt->value.u * 1024 /
                                               sizeof(mon_entry);
                        else
-                               mon_maxdepth = UINT_MAX;
+                               mru_maxdepth = UINT_MAX;
                        break;
 
                default:
                        msyslog(LOG_ERR,
-                               "Unknown mru option token %s (%d)",
+                               "Unknown mru option %s (%d)",
                                keyword(my_opt->attr), my_opt->attr);
                        exit(1);
                }
+               if (range_err)
+                       msyslog(LOG_ERR,
+                               "mru %s %d out of range, ignored.",
+                               keyword(my_opt->attr), my_opt->value.i);
                my_opt = next_node(my_opt);
        }
 
@@ -2174,7 +2207,7 @@ config_access(
        my_opt = queue_head(ptree->discard_opts);
        while (my_opt != NULL) {
 
-               switch(my_opt->attr) {
+               switch (my_opt->attr) {
 
                case T_Average:
                        if (0 <= my_opt->value.i &&
@@ -2196,7 +2229,7 @@ config_access(
 
                default:
                        msyslog(LOG_ERR,
-                               "Unknown discard option token %s (%d)",
+                               "Unknown discard option %s (%d)",
                                keyword(my_opt->attr), my_opt->attr);
                        exit(1);
                }
index d7c6b9ff7afe8c3665d273b49727c0796d35f4f6..98771a9d59117b7c3d82c37e80864e4b05aae349 100644 (file)
@@ -126,17 +126,25 @@ static struct ctl_var sys_var[] = {
        { CS_LEAPTAB,   RO, "leapsec" },        /* 21 */
        { CS_LEAPEND,   RO, "expire" },         /* 22 */
        { CS_RATE,      RO, "mintc" },          /* 23 */
+       { CS_MRU_ENABLED,  RO, "mru_enabled" }, /* 24 */
+       { CS_MRU_DEPTH,    RO, "mru_depth" },   /* 25 */
+       { CS_MRU_DEEPEST,  RO, "mru_deepest" }, /* 26 */
+       { CS_MRU_MINDEPTH, RO, "mru_mindepth" },/* 27 */
+       { CS_MRU_MAXAGE,   RO, "mru_maxage" },  /* 28 */
+       { CS_MRU_MAXDEPTH, RO, "mru_maxdepth" },/* 29 */
+       { CS_MRU_MEM,      RO, "mru_mem" },     /* 30 */
+       { CS_MRU_MAXMEM,   RO, "mru_maxmem" },  /* 31 */
 #ifdef OPENSSL
-       { CS_FLAGS,     RO, "flags" },          /* 24 */
-       { CS_HOST,      RO, "host" },           /* 25 */
-       { CS_PUBLIC,    RO, "update" },         /* 26 */
-       { CS_CERTIF,    RO, "cert" },           /* 27 */
-       { CS_SIGNATURE, RO, "signature" },      /* 28 */
-       { CS_REVTIME,   RO, "until" },          /* 29 */
-       { CS_GROUP,     RO, "group" },          /* 30 */
-       { CS_DIGEST,    RO, "digest" },         /* 31 */
+       { CS_FLAGS,     RO, "flags" },          /* 32 */
+       { CS_HOST,      RO, "host" },           /* 33 */
+       { CS_PUBLIC,    RO, "update" },         /* 34 */
+       { CS_CERTIF,    RO, "cert" },           /* 35 */
+       { CS_SIGNATURE, RO, "signature" },      /* 36 */
+       { CS_REVTIME,   RO, "until" },          /* 37 */
+       { CS_GROUP,     RO, "group" },          /* 38 */
+       { CS_DIGEST,    RO, "digest" },         /* 39 */
 #endif /* OPENSSL */
-       { 0,            EOV, "" }               /* 24/32 */
+       { 0,            EOV, "" }               /* 32/40 */
 };
 
 static struct ctl_var *ext_sys_var = (struct ctl_var *)0;
@@ -1329,6 +1337,8 @@ ctl_putsys(
 {
        l_fp tmp;
        char str[256];
+       u_int u;
+       double kb;
 #ifdef OPENSSL
        struct cert_info *cp;
        char cbuf[256];
@@ -1517,6 +1527,46 @@ ctl_putsys(
                ctl_putuint(sys_var[CS_RATE].text, ntp_minpoll);
                break;
 
+           case CS_MRU_ENABLED:
+               ctl_puthex(sys_var[varid].text, mon_enabled);
+               break;
+
+           case CS_MRU_DEPTH:
+               ctl_putuint(sys_var[varid].text, mru_entries);
+               break;
+
+           case CS_MRU_MEM:
+               kb = mru_entries * (sizeof(mon_entry) / 1024.);
+               u = (u_int)kb;
+               if (kb - u >= 0.5)
+                       u++;
+               ctl_putuint(sys_var[varid].text, u);
+               break;
+
+           case CS_MRU_DEEPEST:
+               ctl_putuint(sys_var[varid].text, mru_peakentries);
+               break;
+
+           case CS_MRU_MINDEPTH:
+               ctl_putuint(sys_var[varid].text, mru_mindepth);
+               break;
+
+           case CS_MRU_MAXAGE:
+               ctl_putint(sys_var[varid].text, mru_maxage);
+               break;
+
+           case CS_MRU_MAXDEPTH:
+               ctl_putuint(sys_var[varid].text, mru_maxdepth);
+               break;
+
+           case CS_MRU_MAXMEM:
+               kb = mru_maxdepth * (sizeof(mon_entry) / 1024.);
+               u = (u_int)kb;
+               if (kb - u >= 0.5)
+                       u++;
+               ctl_putuint(sys_var[varid].text, u);
+               break;
+
 #ifdef OPENSSL
            case CS_FLAGS:
                if (crypto_flags)
index 2b58a64d057b5ee09bab197ba37fc6fb0f2b9cd1..56d448c598fb6047a616594a30f5595a0b86ca90 100644 (file)
@@ -2,7 +2,7 @@
  * ntp_keyword.h
  * 
  * NOTE: edit this file with caution, it is generated by keyword-gen.c
- *      Generated 2010-02-27 09:53:45 UTC        diff_ignore_line
+ *      Generated 2010-02-27 22:24:58 UTC        diff_ignore_line
  *
  */
 #include "ntp_scanner.h"
@@ -10,7 +10,7 @@
 
 #define LOWEST_KEYWORD_ID 258
 
-const char * const keyword_text[168] = {
+const char * const keyword_text[172] = {
        /* 0       258                T_Age */  "age",
        /* 1       259                T_All */  "all",
        /* 2       260              T_Allan */  "allan",
@@ -60,133 +60,137 @@ const char * const keyword_text[168] = {
        /* 46      304             T_Iburst */  "iburst",
        /* 47      305              T_Ident */  "ident",
        /* 48      306             T_Ignore */  "ignore",
-       /* 49      307        T_Includefile */  "includefile",
-       /* 50      308            T_Integer */  NULL,
-       /* 51      309          T_Interface */  "interface",
-       /* 52      310               T_Ipv4 */  "ipv4",
-       /* 53      311          T_Ipv4_flag */  "-4",
-       /* 54      312               T_Ipv6 */  "ipv6",
-       /* 55      313          T_Ipv6_flag */  "-6",
-       /* 56      314             T_Kernel */  "kernel",
-       /* 57      315                T_Key */  "key",
-       /* 58      316               T_Keys */  "keys",
-       /* 59      317            T_Keysdir */  "keysdir",
-       /* 60      318                T_Kod */  "kod",
-       /* 61      319             T_Mssntp */  "mssntp",
-       /* 62      320           T_Leapfile */  "leapfile",
-       /* 63      321            T_Limited */  "limited",
-       /* 64      322               T_Link */  "link",
-       /* 65      323             T_Listen */  "listen",
-       /* 66      324          T_Logconfig */  "logconfig",
-       /* 67      325            T_Logfile */  "logfile",
-       /* 68      326          T_Loopstats */  "loopstats",
-       /* 69      327        T_Lowpriotrap */  "lowpriotrap",
-       /* 70      328     T_Manycastclient */  "manycastclient",
-       /* 71      329     T_Manycastserver */  "manycastserver",
-       /* 72      330               T_Mask */  "mask",
-       /* 73      331             T_Maxage */  "maxage",
-       /* 74      332           T_Maxclock */  "maxclock",
-       /* 75      333           T_Maxdepth */  "maxdepth",
-       /* 76      334            T_Maxdist */  "maxdist",
-       /* 77      335             T_Maxmem */  "maxmem",
-       /* 78      336            T_Maxpoll */  "maxpoll",
-       /* 79      337           T_Minclock */  "minclock",
-       /* 80      338           T_Mindepth */  "mindepth",
-       /* 81      339            T_Mindist */  "mindist",
-       /* 82      340            T_Minimum */  "minimum",
-       /* 83      341            T_Minpoll */  "minpoll",
-       /* 84      342            T_Minsane */  "minsane",
-       /* 85      343               T_Mode */  "mode",
-       /* 86      344            T_Monitor */  "monitor",
-       /* 87      345              T_Month */  "month",
-       /* 88      346                T_Mru */  "mru",
-       /* 89      347    T_Multicastclient */  "multicastclient",
-       /* 90      348                T_Nic */  "nic",
-       /* 91      349             T_Nolink */  "nolink",
-       /* 92      350           T_Nomodify */  "nomodify",
-       /* 93      351               T_None */  "none",
-       /* 94      352             T_Nopeer */  "nopeer",
-       /* 95      353            T_Noquery */  "noquery",
-       /* 96      354           T_Noselect */  "noselect",
-       /* 97      355            T_Noserve */  "noserve",
-       /* 98      356             T_Notrap */  "notrap",
-       /* 99      357            T_Notrust */  "notrust",
-       /* 100     358                T_Ntp */  "ntp",
-       /* 101     359            T_Ntpport */  "ntpport",
-       /* 102     360     T_NtpSignDsocket */  "ntpsigndsocket",
-       /* 103     361             T_Orphan */  "orphan",
-       /* 104     362              T_Panic */  "panic",
-       /* 105     363               T_Peer */  "peer",
-       /* 106     364          T_Peerstats */  "peerstats",
-       /* 107     365              T_Phone */  "phone",
-       /* 108     366                T_Pid */  "pid",
-       /* 109     367            T_Pidfile */  "pidfile",
-       /* 110     368               T_Pool */  "pool",
-       /* 111     369               T_Port */  "port",
-       /* 112     370            T_Preempt */  "preempt",
-       /* 113     371             T_Prefer */  "prefer",
-       /* 114     372         T_Protostats */  "protostats",
-       /* 115     373                 T_Pw */  "pw",
-       /* 116     374                T_Qos */  "qos",
-       /* 117     375           T_Randfile */  "randfile",
-       /* 118     376           T_Rawstats */  "rawstats",
-       /* 119     377              T_Refid */  "refid",
-       /* 120     378         T_Requestkey */  "requestkey",
-       /* 121     379           T_Restrict */  "restrict",
-       /* 122     380             T_Revoke */  "revoke",
-       /* 123     381      T_Saveconfigdir */  "saveconfigdir",
-       /* 124     382             T_Server */  "server",
-       /* 125     383             T_Setvar */  "setvar",
-       /* 126     384               T_Sign */  "sign",
-       /* 127     385             T_Source */  "source",
-       /* 128     386         T_Statistics */  "statistics",
-       /* 129     387              T_Stats */  "stats",
-       /* 130     388           T_Statsdir */  "statsdir",
-       /* 131     389               T_Step */  "step",
-       /* 132     390            T_Stepout */  "stepout",
-       /* 133     391            T_Stratum */  "stratum",
-       /* 134     392             T_String */  NULL,
-       /* 135     393           T_Sysstats */  "sysstats",
-       /* 136     394               T_Tick */  "tick",
-       /* 137     395              T_Time1 */  "time1",
-       /* 138     396              T_Time2 */  "time2",
-       /* 139     397        T_Timingstats */  "timingstats",
-       /* 140     398             T_Tinker */  "tinker",
-       /* 141     399                T_Tos */  "tos",
-       /* 142     400               T_Trap */  "trap",
-       /* 143     401               T_True */  "true",
-       /* 144     402         T_Trustedkey */  "trustedkey",
-       /* 145     403                T_Ttl */  "ttl",
-       /* 146     404               T_Type */  "type",
-       /* 147     405           T_Unconfig */  "unconfig",
-       /* 148     406             T_Unpeer */  "unpeer",
-       /* 149     407            T_Version */  "version",
-       /* 150     408    T_WanderThreshold */  NULL,
-       /* 151     409               T_Week */  "week",
-       /* 152     410           T_Wildcard */  "wildcard",
-       /* 153     411             T_Xleave */  "xleave",
-       /* 154     412               T_Year */  "year",
-       /* 155     413               T_Flag */  NULL,
-       /* 156     414               T_Void */  NULL,
-       /* 157     415                T_EOC */  NULL,
-       /* 158     416           T_Simulate */  "simulate",
-       /* 159     417         T_Beep_Delay */  "beep_delay",
-       /* 160     418       T_Sim_Duration */  "simulation_duration",
-       /* 161     419      T_Server_Offset */  "server_offset",
-       /* 162     420           T_Duration */  "duration",
-       /* 163     421        T_Freq_Offset */  "freq_offset",
-       /* 164     422             T_Wander */  "wander",
-       /* 165     423             T_Jitter */  "jitter",
-       /* 166     424         T_Prop_Delay */  "prop_delay",
-       /* 167     425         T_Proc_Delay */  "proc_delay"
+       /* 49      307           T_Incalloc */  "incalloc",
+       /* 50      308             T_Incmem */  "incmem",
+       /* 51      309          T_Initalloc */  "initalloc",
+       /* 52      310            T_Initmem */  "initmem",
+       /* 53      311        T_Includefile */  "includefile",
+       /* 54      312            T_Integer */  NULL,
+       /* 55      313          T_Interface */  "interface",
+       /* 56      314               T_Ipv4 */  "ipv4",
+       /* 57      315          T_Ipv4_flag */  "-4",
+       /* 58      316               T_Ipv6 */  "ipv6",
+       /* 59      317          T_Ipv6_flag */  "-6",
+       /* 60      318             T_Kernel */  "kernel",
+       /* 61      319                T_Key */  "key",
+       /* 62      320               T_Keys */  "keys",
+       /* 63      321            T_Keysdir */  "keysdir",
+       /* 64      322                T_Kod */  "kod",
+       /* 65      323             T_Mssntp */  "mssntp",
+       /* 66      324           T_Leapfile */  "leapfile",
+       /* 67      325            T_Limited */  "limited",
+       /* 68      326               T_Link */  "link",
+       /* 69      327             T_Listen */  "listen",
+       /* 70      328          T_Logconfig */  "logconfig",
+       /* 71      329            T_Logfile */  "logfile",
+       /* 72      330          T_Loopstats */  "loopstats",
+       /* 73      331        T_Lowpriotrap */  "lowpriotrap",
+       /* 74      332     T_Manycastclient */  "manycastclient",
+       /* 75      333     T_Manycastserver */  "manycastserver",
+       /* 76      334               T_Mask */  "mask",
+       /* 77      335             T_Maxage */  "maxage",
+       /* 78      336           T_Maxclock */  "maxclock",
+       /* 79      337           T_Maxdepth */  "maxdepth",
+       /* 80      338            T_Maxdist */  "maxdist",
+       /* 81      339             T_Maxmem */  "maxmem",
+       /* 82      340            T_Maxpoll */  "maxpoll",
+       /* 83      341           T_Minclock */  "minclock",
+       /* 84      342           T_Mindepth */  "mindepth",
+       /* 85      343            T_Mindist */  "mindist",
+       /* 86      344            T_Minimum */  "minimum",
+       /* 87      345            T_Minpoll */  "minpoll",
+       /* 88      346            T_Minsane */  "minsane",
+       /* 89      347               T_Mode */  "mode",
+       /* 90      348            T_Monitor */  "monitor",
+       /* 91      349              T_Month */  "month",
+       /* 92      350                T_Mru */  "mru",
+       /* 93      351    T_Multicastclient */  "multicastclient",
+       /* 94      352                T_Nic */  "nic",
+       /* 95      353             T_Nolink */  "nolink",
+       /* 96      354           T_Nomodify */  "nomodify",
+       /* 97      355               T_None */  "none",
+       /* 98      356             T_Nopeer */  "nopeer",
+       /* 99      357            T_Noquery */  "noquery",
+       /* 100     358           T_Noselect */  "noselect",
+       /* 101     359            T_Noserve */  "noserve",
+       /* 102     360             T_Notrap */  "notrap",
+       /* 103     361            T_Notrust */  "notrust",
+       /* 104     362                T_Ntp */  "ntp",
+       /* 105     363            T_Ntpport */  "ntpport",
+       /* 106     364     T_NtpSignDsocket */  "ntpsigndsocket",
+       /* 107     365             T_Orphan */  "orphan",
+       /* 108     366              T_Panic */  "panic",
+       /* 109     367               T_Peer */  "peer",
+       /* 110     368          T_Peerstats */  "peerstats",
+       /* 111     369              T_Phone */  "phone",
+       /* 112     370                T_Pid */  "pid",
+       /* 113     371            T_Pidfile */  "pidfile",
+       /* 114     372               T_Pool */  "pool",
+       /* 115     373               T_Port */  "port",
+       /* 116     374            T_Preempt */  "preempt",
+       /* 117     375             T_Prefer */  "prefer",
+       /* 118     376         T_Protostats */  "protostats",
+       /* 119     377                 T_Pw */  "pw",
+       /* 120     378                T_Qos */  "qos",
+       /* 121     379           T_Randfile */  "randfile",
+       /* 122     380           T_Rawstats */  "rawstats",
+       /* 123     381              T_Refid */  "refid",
+       /* 124     382         T_Requestkey */  "requestkey",
+       /* 125     383           T_Restrict */  "restrict",
+       /* 126     384             T_Revoke */  "revoke",
+       /* 127     385      T_Saveconfigdir */  "saveconfigdir",
+       /* 128     386             T_Server */  "server",
+       /* 129     387             T_Setvar */  "setvar",
+       /* 130     388               T_Sign */  "sign",
+       /* 131     389             T_Source */  "source",
+       /* 132     390         T_Statistics */  "statistics",
+       /* 133     391              T_Stats */  "stats",
+       /* 134     392           T_Statsdir */  "statsdir",
+       /* 135     393               T_Step */  "step",
+       /* 136     394            T_Stepout */  "stepout",
+       /* 137     395            T_Stratum */  "stratum",
+       /* 138     396             T_String */  NULL,
+       /* 139     397           T_Sysstats */  "sysstats",
+       /* 140     398               T_Tick */  "tick",
+       /* 141     399              T_Time1 */  "time1",
+       /* 142     400              T_Time2 */  "time2",
+       /* 143     401        T_Timingstats */  "timingstats",
+       /* 144     402             T_Tinker */  "tinker",
+       /* 145     403                T_Tos */  "tos",
+       /* 146     404               T_Trap */  "trap",
+       /* 147     405               T_True */  "true",
+       /* 148     406         T_Trustedkey */  "trustedkey",
+       /* 149     407                T_Ttl */  "ttl",
+       /* 150     408               T_Type */  "type",
+       /* 151     409           T_Unconfig */  "unconfig",
+       /* 152     410             T_Unpeer */  "unpeer",
+       /* 153     411            T_Version */  "version",
+       /* 154     412    T_WanderThreshold */  NULL,
+       /* 155     413               T_Week */  "week",
+       /* 156     414           T_Wildcard */  "wildcard",
+       /* 157     415             T_Xleave */  "xleave",
+       /* 158     416               T_Year */  "year",
+       /* 159     417               T_Flag */  NULL,
+       /* 160     418               T_Void */  NULL,
+       /* 161     419                T_EOC */  NULL,
+       /* 162     420           T_Simulate */  "simulate",
+       /* 163     421         T_Beep_Delay */  "beep_delay",
+       /* 164     422       T_Sim_Duration */  "simulation_duration",
+       /* 165     423      T_Server_Offset */  "server_offset",
+       /* 166     424           T_Duration */  "duration",
+       /* 167     425        T_Freq_Offset */  "freq_offset",
+       /* 168     426             T_Wander */  "wander",
+       /* 169     427             T_Jitter */  "jitter",
+       /* 170     428         T_Prop_Delay */  "prop_delay",
+       /* 171     429         T_Proc_Delay */  "proc_delay"
 };
 
-#define SCANNER_INIT_S 760
+#define SCANNER_INIT_S 778
 
-const scan_state sst[763] = {
+const scan_state sst[781] = {
 /*SS_T( ch,    f-by, match, other ),                            */
   0,                                 /*     0                   */
-  S_ST( '-',   3,      313,     0 ), /*     1                   */
+  S_ST( '-',   3,      317,     0 ), /*     1                   */
   S_ST( 'a',   3,       13,     1 ), /*     2                   */
   S_ST( 'g',   3,      258,     0 ), /*     3 a                 */
   S_ST( 'l',   3,      259,     3 ), /*     4 a                 */
@@ -219,7 +223,7 @@ const scan_state sst[763] = {
   S_ST( 'd',   3,       32,     0 ), /*    31 beep_             */
   S_ST( 'e',   3,       33,     0 ), /*    32 beep_d            */
   S_ST( 'l',   3,       34,     0 ), /*    33 beep_de           */
-  S_ST( 'a',   3,      417,     0 ), /*    34 beep_del          */
+  S_ST( 'a',   3,      421,     0 ), /*    34 beep_del          */
   S_ST( 'i',   3,       36,    24 ), /*    35 b                 */
   S_ST( 'a',   3,      267,     0 ), /*    36 bi                */
   S_ST( 'r',   3,       38,    35 ), /*    37 b                 */
@@ -323,7 +327,7 @@ const scan_state sst[763] = {
   S_ST( 'a',   3,      136,     0 ), /*   135 dur               */
   S_ST( 't',   3,      137,     0 ), /*   136 dura              */
   S_ST( 'i',   3,      138,     0 ), /*   137 durat             */
-  S_ST( 'o',   3,      420,     0 ), /*   138 durati            */
+  S_ST( 'o',   3,      424,     0 ), /*   138 durati            */
   S_ST( 'e',   3,      140,   101 ), /*   139                   */
   S_ST( 'n',   3,      290,     0 ), /*   140 e                 */
   S_ST( 'a',   3,      142,     0 ), /*   141 en                */
@@ -347,7 +351,7 @@ const scan_state sst[763] = {
   S_ST( 'f',   3,      160,     0 ), /*   159 freq_o            */
   S_ST( 'f',   3,      161,     0 ), /*   160 freq_of           */
   S_ST( 's',   3,      162,     0 ), /*   161 freq_off          */
-  S_ST( 'e',   3,      421,     0 ), /*   162 freq_offs         */
+  S_ST( 'e',   3,      425,     0 ), /*   162 freq_offs         */
   S_ST( 'u',   3,      164,   155 ), /*   163 f                 */
   S_ST( 'd',   3,      165,     0 ), /*   164 fu                */
   S_ST( 'g',   3,      301,     0 ), /*   165 fud               */
@@ -360,7 +364,7 @@ const scan_state sst[763] = {
   S_ST( 'p',   3,      173,     0 ), /*   172 huff              */
   S_ST( 'u',   3,      174,     0 ), /*   173 huffp             */
   S_ST( 'f',   3,      303,     0 ), /*   174 huffpu            */
-  S_ST( 'i',   3,      202,   166 ), /*   175                   */
+  S_ST( 'i',   3,      216,   166 ), /*   175                   */
   S_ST( 'b',   3,      177,     0 ), /*   176 i                 */
   S_ST( 'u',   3,      178,     0 ), /*   177 ib                */
   S_ST( 'r',   3,      179,     0 ), /*   178 ibu               */
@@ -372,77 +376,77 @@ const scan_state sst[763] = {
   S_ST( 'n',   3,      185,     0 ), /*   184 ig                */
   S_ST( 'o',   3,      186,     0 ), /*   185 ign               */
   S_ST( 'r',   3,      306,     0 ), /*   186 igno              */
-  S_ST( 'n',   3,      196,   183 ), /*   187 i                 */
-  S_ST( 'c',   3,      189,     0 ), /*   188 in                */
-  S_ST( 'l',   3,      190,     0 ), /*   189 inc               */
-  S_ST( 'u',   3,      191,     0 ), /*   190 incl              */
-  S_ST( 'd',   3,      192,     0 ), /*   191 inclu             */
-  S_ST( 'e',   3,      193,     0 ), /*   192 includ            */
-  S_ST( 'f',   3,      194,     0 ), /*   193 include           */
-  S_ST( 'i',   3,      195,     0 ), /*   194 includef          */
-  S_ST( 'l',   3,      307,     0 ), /*   195 includefi         */
-  S_ST( 't',   3,      197,   188 ), /*   196 in                */
-  S_ST( 'e',   3,      198,     0 ), /*   197 int               */
-  S_ST( 'r',   3,      199,     0 ), /*   198 inte              */
-  S_ST( 'f',   3,      200,     0 ), /*   199 inter             */
-  S_ST( 'a',   3,      201,     0 ), /*   200 interf            */
-  S_ST( 'c',   3,      309,     0 ), /*   201 interfa           */
-  S_ST( 'p',   3,      203,   187 ), /*   202 i                 */
-  S_ST( 'v',   3,      312,     0 ), /*   203 ip                */
-  S_ST( 'j',   3,      205,   175 ), /*   204                   */
-  S_ST( 'i',   3,      206,     0 ), /*   205 j                 */
-  S_ST( 't',   3,      207,     0 ), /*   206 ji                */
-  S_ST( 't',   3,      208,     0 ), /*   207 jit               */
-  S_ST( 'e',   3,      423,     0 ), /*   208 jitt              */
-  S_ST( 'k',   3,      216,   204 ), /*   209                   */
-  S_ST( 'e',   3,      315,     0 ), /*   210 k                 */
-  S_ST( 'r',   3,      212,     0 ), /*   211 ke                */
-  S_ST( 'n',   3,      213,     0 ), /*   212 ker               */
-  S_ST( 'e',   3,      314,     0 ), /*   213 kern              */
-  S_ST( 'd',   3,      215,     0 ), /*   214 keys              */
-  S_ST( 'i',   3,      317,     0 ), /*   215 keysd             */
-  S_ST( 'o',   3,      318,   210 ), /*   216 k                 */
-  S_ST( 'l',   3,      233,   209 ), /*   217                   */
-  S_ST( 'e',   3,      219,     0 ), /*   218 l                 */
-  S_ST( 'a',   3,      220,     0 ), /*   219 le                */
-  S_ST( 'p',   3,      221,     0 ), /*   220 lea               */
-  S_ST( 'f',   3,      222,     0 ), /*   221 leap              */
-  S_ST( 'i',   3,      223,     0 ), /*   222 leapf             */
-  S_ST( 'l',   3,      320,     0 ), /*   223 leapfi            */
-  S_ST( 'i',   3,      230,   218 ), /*   224 l                 */
-  S_ST( 'm',   3,      226,     0 ), /*   225 li                */
-  S_ST( 'i',   3,      227,     0 ), /*   226 lim               */
-  S_ST( 't',   3,      228,     0 ), /*   227 limi              */
-  S_ST( 'e',   3,      321,     0 ), /*   228 limit             */
-  S_ST( 'n',   3,      322,   225 ), /*   229 li                */
-  S_ST( 's',   3,      231,   229 ), /*   230 li                */
-  S_ST( 't',   3,      232,     0 ), /*   231 lis               */
-  S_ST( 'e',   3,      323,     0 ), /*   232 list              */
-  S_ST( 'o',   3,      249,   224 ), /*   233 l                 */
-  S_ST( 'g',   3,      240,     0 ), /*   234 lo                */
-  S_ST( 'c',   3,      236,     0 ), /*   235 log               */
-  S_ST( 'o',   3,      237,     0 ), /*   236 logc              */
-  S_ST( 'n',   3,      238,     0 ), /*   237 logco             */
-  S_ST( 'f',   3,      239,     0 ), /*   238 logcon            */
-  S_ST( 'i',   3,      324,     0 ), /*   239 logconf           */
-  S_ST( 'f',   3,      241,   235 ), /*   240 log               */
-  S_ST( 'i',   3,      242,     0 ), /*   241 logf              */
-  S_ST( 'l',   3,      325,     0 ), /*   242 logfi             */
-  S_ST( 'o',   3,      244,   234 ), /*   243 lo                */
-  S_ST( 'p',   3,      245,     0 ), /*   244 loo               */
-  S_ST( 's',   3,      246,     0 ), /*   245 loop              */
-  S_ST( 't',   3,      247,     0 ), /*   246 loops             */
-  S_ST( 'a',   3,      248,     0 ), /*   247 loopst            */
-  S_ST( 't',   3,      326,     0 ), /*   248 loopsta           */
-  S_ST( 'w',   3,      250,   243 ), /*   249 lo                */
-  S_ST( 'p',   3,      251,     0 ), /*   250 low               */
-  S_ST( 'r',   3,      252,     0 ), /*   251 lowp              */
-  S_ST( 'i',   3,      253,     0 ), /*   252 lowpr             */
-  S_ST( 'o',   3,      254,     0 ), /*   253 lowpri            */
-  S_ST( 't',   3,      255,     0 ), /*   254 lowprio           */
-  S_ST( 'r',   3,      256,     0 ), /*   255 lowpriot          */
-  S_ST( 'a',   3,      327,     0 ), /*   256 lowpriotr         */
-  S_ST( 'm',   3,      487,   217 ), /*   257                   */
+  S_ST( 'n',   3,      210,   183 ), /*   187 i                 */
+  S_ST( 'c',   3,      200,     0 ), /*   188 in                */
+  S_ST( 'a',   3,      190,     0 ), /*   189 inc               */
+  S_ST( 'l',   3,      191,     0 ), /*   190 inca              */
+  S_ST( 'l',   3,      192,     0 ), /*   191 incal             */
+  S_ST( 'o',   3,      307,     0 ), /*   192 incall            */
+  S_ST( 'l',   3,      194,   189 ), /*   193 inc               */
+  S_ST( 'u',   3,      195,     0 ), /*   194 incl              */
+  S_ST( 'd',   3,      196,     0 ), /*   195 inclu             */
+  S_ST( 'e',   3,      197,     0 ), /*   196 includ            */
+  S_ST( 'f',   3,      198,     0 ), /*   197 include           */
+  S_ST( 'i',   3,      199,     0 ), /*   198 includef          */
+  S_ST( 'l',   3,      311,     0 ), /*   199 includefi         */
+  S_ST( 'm',   3,      201,   193 ), /*   200 inc               */
+  S_ST( 'e',   3,      308,     0 ), /*   201 incm              */
+  S_ST( 'i',   3,      203,   188 ), /*   202 in                */
+  S_ST( 't',   3,      208,     0 ), /*   203 ini               */
+  S_ST( 'a',   3,      205,     0 ), /*   204 init              */
+  S_ST( 'l',   3,      206,     0 ), /*   205 inita             */
+  S_ST( 'l',   3,      207,     0 ), /*   206 inital            */
+  S_ST( 'o',   3,      309,     0 ), /*   207 initall           */
+  S_ST( 'm',   3,      209,   204 ), /*   208 init              */
+  S_ST( 'e',   3,      310,     0 ), /*   209 initm             */
+  S_ST( 't',   3,      211,   202 ), /*   210 in                */
+  S_ST( 'e',   3,      212,     0 ), /*   211 int               */
+  S_ST( 'r',   3,      213,     0 ), /*   212 inte              */
+  S_ST( 'f',   3,      214,     0 ), /*   213 inter             */
+  S_ST( 'a',   3,      215,     0 ), /*   214 interf            */
+  S_ST( 'c',   3,      313,     0 ), /*   215 interfa           */
+  S_ST( 'p',   3,      217,   187 ), /*   216 i                 */
+  S_ST( 'v',   3,      316,     0 ), /*   217 ip                */
+  S_ST( 'j',   3,      219,   175 ), /*   218                   */
+  S_ST( 'i',   3,      220,     0 ), /*   219 j                 */
+  S_ST( 't',   3,      221,     0 ), /*   220 ji                */
+  S_ST( 't',   3,      222,     0 ), /*   221 jit               */
+  S_ST( 'e',   3,      427,     0 ), /*   222 jitt              */
+  S_ST( 'k',   3,      230,   218 ), /*   223                   */
+  S_ST( 'e',   3,      319,     0 ), /*   224 k                 */
+  S_ST( 'r',   3,      226,     0 ), /*   225 ke                */
+  S_ST( 'n',   3,      227,     0 ), /*   226 ker               */
+  S_ST( 'e',   3,      318,     0 ), /*   227 kern              */
+  S_ST( 'd',   3,      229,     0 ), /*   228 keys              */
+  S_ST( 'i',   3,      321,     0 ), /*   229 keysd             */
+  S_ST( 'o',   3,      322,   224 ), /*   230 k                 */
+  S_ST( 'l',   3,      247,   223 ), /*   231                   */
+  S_ST( 'e',   3,      233,     0 ), /*   232 l                 */
+  S_ST( 'a',   3,      234,     0 ), /*   233 le                */
+  S_ST( 'p',   3,      235,     0 ), /*   234 lea               */
+  S_ST( 'f',   3,      236,     0 ), /*   235 leap              */
+  S_ST( 'i',   3,      237,     0 ), /*   236 leapf             */
+  S_ST( 'l',   3,      324,     0 ), /*   237 leapfi            */
+  S_ST( 'i',   3,      244,   232 ), /*   238 l                 */
+  S_ST( 'm',   3,      240,     0 ), /*   239 li                */
+  S_ST( 'i',   3,      241,     0 ), /*   240 lim               */
+  S_ST( 't',   3,      242,     0 ), /*   241 limi              */
+  S_ST( 'e',   3,      325,     0 ), /*   242 limit             */
+  S_ST( 'n',   3,      326,   239 ), /*   243 li                */
+  S_ST( 's',   3,      245,   243 ), /*   244 li                */
+  S_ST( 't',   3,      246,     0 ), /*   245 lis               */
+  S_ST( 'e',   3,      327,     0 ), /*   246 list              */
+  S_ST( 'o',   3,      417,   238 ), /*   247 l                 */
+  S_ST( 'g',   3,      254,     0 ), /*   248 lo                */
+  S_ST( 'c',   3,      250,     0 ), /*   249 log               */
+  S_ST( 'o',   3,      251,     0 ), /*   250 logc              */
+  S_ST( 'n',   3,      252,     0 ), /*   251 logco             */
+  S_ST( 'f',   3,      253,     0 ), /*   252 logcon            */
+  S_ST( 'i',   3,      328,     0 ), /*   253 logconf           */
+  S_ST( 'f',   3,      255,   249 ), /*   254 log               */
+  S_ST( 'i',   3,      256,     0 ), /*   255 logf              */
+  S_ST( 'l',   3,      329,     0 ), /*   256 logfi             */
+  S_ST( 'o',   3,      286,   248 ), /*   257 lo                */
   S_ST( 'e',   0,        0,     0 ), /*   258 T_Age             */
   S_ST( 'l',   0,        5,     0 ), /*   259 T_All             */
   S_ST( 'n',   0,        0,     0 ), /*   260 T_Allan           */
@@ -471,12 +475,12 @@ const scan_state sst[763] = {
   S_ST( 'e',   0,        0,     0 ), /*   283 T_Disable         */
   S_ST( 'd',   0,        0,     0 ), /*   284 T_Discard         */
   S_ST( 'n',   0,        0,     0 ), /*   285 T_Dispersion      */
-  S_ST( 'a',   3,      436,     0 ), /*   286 m                 */
+  S_ST( 'p',   3,      291,     0 ), /*   286 loo               */
   S_ST( 'e',   1,        0,     0 ), /*   287 T_Driftfile       */
   S_ST( 'p',   0,        0,     0 ), /*   288 T_Drop            */
   S_ST( 'e',   0,        0,     0 ), /*   289 T_Enable          */
   S_ST( 'd',   0,        0,   141 ), /*   290 T_End             */
-  S_ST( 'n',   3,      308,     0 ), /*   291 ma                */
+  S_ST( 's',   3,      312,     0 ), /*   291 loop              */
   S_ST( 'e',   1,      147,     0 ), /*   292 T_File            */
   S_ST( 'n',   0,        0,     0 ), /*   293 T_Filegen         */
   S_ST( '1',   0,        0,     0 ), /*   294 T_Flag1           */
@@ -492,461 +496,479 @@ const scan_state sst[763] = {
   S_ST( 't',   0,        0,     0 ), /*   304 T_Iburst          */
   S_ST( 't',   1,        0,     0 ), /*   305 T_Ident           */
   S_ST( 'e',   0,        0,     0 ), /*   306 T_Ignore          */
-  S_ST( 'e',   1,        0,     0 ), /*   307 T_Includefile     */
-  S_ST( 'y',   3,      392,     0 ), /*   308 man               */
-  S_ST( 'e',   0,        0,     0 ), /*   309 T_Interface       */
-  S_ST( '4',   0,        0,     0 ), /*   310 T_Ipv4            */
-  S_ST( '4',   0,        0,     0 ), /*   311 T_Ipv4_flag       */
-  S_ST( '6',   0,        0,   310 ), /*   312 T_Ipv6            */
-  S_ST( '6',   0,        0,   311 ), /*   313 T_Ipv6_flag       */
-  S_ST( 'l',   0,        0,     0 ), /*   314 T_Kernel          */
-  S_ST( 'y',   0,      316,   211 ), /*   315 T_Key             */
-  S_ST( 's',   1,      214,     0 ), /*   316 T_Keys            */
-  S_ST( 'r',   1,        0,     0 ), /*   317 T_Keysdir         */
-  S_ST( 'd',   0,        0,     0 ), /*   318 T_Kod             */
-  S_ST( 'p',   0,        0,     0 ), /*   319 T_Mssntp          */
-  S_ST( 'e',   1,        0,     0 ), /*   320 T_Leapfile        */
-  S_ST( 'd',   0,        0,     0 ), /*   321 T_Limited         */
-  S_ST( 'k',   0,        0,     0 ), /*   322 T_Link            */
-  S_ST( 'n',   0,        0,     0 ), /*   323 T_Listen          */
-  S_ST( 'g',   2,        0,     0 ), /*   324 T_Logconfig       */
-  S_ST( 'e',   1,        0,     0 ), /*   325 T_Logfile         */
-  S_ST( 's',   0,        0,     0 ), /*   326 T_Loopstats       */
-  S_ST( 'p',   0,        0,     0 ), /*   327 T_Lowpriotrap     */
-  S_ST( 't',   1,        0,     0 ), /*   328 T_Manycastclient  */
-  S_ST( 'r',   2,        0,     0 ), /*   329 T_Manycastserver  */
-  S_ST( 'k',   0,        0,     0 ), /*   330 T_Mask            */
-  S_ST( 'e',   0,        0,     0 ), /*   331 T_Maxage          */
-  S_ST( 'k',   0,        0,     0 ), /*   332 T_Maxclock        */
-  S_ST( 'h',   0,        0,     0 ), /*   333 T_Maxdepth        */
-  S_ST( 't',   0,        0,     0 ), /*   334 T_Maxdist         */
-  S_ST( 'm',   0,        0,     0 ), /*   335 T_Maxmem          */
-  S_ST( 'l',   0,        0,     0 ), /*   336 T_Maxpoll         */
-  S_ST( 'k',   0,        0,     0 ), /*   337 T_Minclock        */
-  S_ST( 'h',   0,        0,     0 ), /*   338 T_Mindepth        */
-  S_ST( 't',   0,        0,     0 ), /*   339 T_Mindist         */
-  S_ST( 'm',   0,        0,     0 ), /*   340 T_Minimum         */
-  S_ST( 'l',   0,        0,     0 ), /*   341 T_Minpoll         */
-  S_ST( 'e',   0,        0,     0 ), /*   342 T_Minsane         */
-  S_ST( 'e',   0,        0,     0 ), /*   343 T_Mode            */
-  S_ST( 'r',   0,        0,     0 ), /*   344 T_Monitor         */
-  S_ST( 'h',   0,        0,     0 ), /*   345 T_Month           */
-  S_ST( 'u',   0,        0,     0 ), /*   346 T_Mru             */
-  S_ST( 't',   2,        0,     0 ), /*   347 T_Multicastclient */
-  S_ST( 'c',   0,        0,     0 ), /*   348 T_Nic             */
-  S_ST( 'k',   0,        0,     0 ), /*   349 T_Nolink          */
-  S_ST( 'y',   0,        0,     0 ), /*   350 T_Nomodify        */
-  S_ST( 'e',   0,        0,     0 ), /*   351 T_None            */
-  S_ST( 'r',   0,        0,     0 ), /*   352 T_Nopeer          */
-  S_ST( 'y',   0,        0,     0 ), /*   353 T_Noquery         */
-  S_ST( 't',   0,        0,     0 ), /*   354 T_Noselect        */
-  S_ST( 'e',   0,        0,     0 ), /*   355 T_Noserve         */
-  S_ST( 'p',   0,        0,     0 ), /*   356 T_Notrap          */
-  S_ST( 't',   0,        0,     0 ), /*   357 T_Notrust         */
-  S_ST( 'p',   0,      535,     0 ), /*   358 T_Ntp             */
-  S_ST( 't',   0,        0,     0 ), /*   359 T_Ntpport         */
-  S_ST( 't',   1,        0,     0 ), /*   360 T_NtpSignDsocket  */
-  S_ST( 'n',   0,        0,     0 ), /*   361 T_Orphan          */
-  S_ST( 'c',   0,        0,     0 ), /*   362 T_Panic           */
-  S_ST( 'r',   1,      556,     0 ), /*   363 T_Peer            */
-  S_ST( 's',   0,        0,     0 ), /*   364 T_Peerstats       */
-  S_ST( 'e',   2,        0,     0 ), /*   365 T_Phone           */
-  S_ST( 'd',   0,      564,     0 ), /*   366 T_Pid             */
-  S_ST( 'e',   1,        0,     0 ), /*   367 T_Pidfile         */
-  S_ST( 'l',   1,        0,     0 ), /*   368 T_Pool            */
-  S_ST( 't',   0,        0,     0 ), /*   369 T_Port            */
-  S_ST( 't',   0,        0,     0 ), /*   370 T_Preempt         */
-  S_ST( 'r',   0,        0,     0 ), /*   371 T_Prefer          */
-  S_ST( 's',   0,        0,     0 ), /*   372 T_Protostats      */
-  S_ST( 'w',   1,        0,   570 ), /*   373 T_Pw              */
-  S_ST( 's',   0,        0,     0 ), /*   374 T_Qos             */
-  S_ST( 'e',   1,        0,     0 ), /*   375 T_Randfile        */
-  S_ST( 's',   0,        0,     0 ), /*   376 T_Rawstats        */
-  S_ST( 'd',   1,        0,     0 ), /*   377 T_Refid           */
-  S_ST( 'y',   0,        0,     0 ), /*   378 T_Requestkey      */
-  S_ST( 't',   0,        0,     0 ), /*   379 T_Restrict        */
-  S_ST( 'e',   0,        0,     0 ), /*   380 T_Revoke          */
-  S_ST( 'r',   1,        0,     0 ), /*   381 T_Saveconfigdir   */
-  S_ST( 'r',   1,      644,     0 ), /*   382 T_Server          */
-  S_ST( 'r',   1,        0,     0 ), /*   383 T_Setvar          */
-  S_ST( 'n',   1,        0,     0 ), /*   384 T_Sign            */
-  S_ST( 'e',   0,        0,     0 ), /*   385 T_Source          */
-  S_ST( 's',   0,        0,     0 ), /*   386 T_Statistics      */
-  S_ST( 's',   0,      683,   678 ), /*   387 T_Stats           */
-  S_ST( 'r',   1,        0,     0 ), /*   388 T_Statsdir        */
-  S_ST( 'p',   0,      686,     0 ), /*   389 T_Step            */
-  S_ST( 't',   0,        0,     0 ), /*   390 T_Stepout         */
-  S_ST( 'm',   0,        0,     0 ), /*   391 T_Stratum         */
-  S_ST( 'c',   3,      408,     0 ), /*   392 many              */
-  S_ST( 's',   0,        0,     0 ), /*   393 T_Sysstats        */
-  S_ST( 'k',   0,        0,     0 ), /*   394 T_Tick            */
-  S_ST( '1',   0,        0,     0 ), /*   395 T_Time1           */
-  S_ST( '2',   0,        0,   395 ), /*   396 T_Time2           */
-  S_ST( 's',   0,        0,     0 ), /*   397 T_Timingstats     */
-  S_ST( 'r',   0,        0,     0 ), /*   398 T_Tinker          */
-  S_ST( 's',   0,        0,     0 ), /*   399 T_Tos             */
-  S_ST( 'p',   1,        0,     0 ), /*   400 T_Trap            */
-  S_ST( 'e',   0,        0,     0 ), /*   401 T_True            */
-  S_ST( 'y',   0,        0,     0 ), /*   402 T_Trustedkey      */
-  S_ST( 'l',   0,        0,     0 ), /*   403 T_Ttl             */
-  S_ST( 'e',   0,        0,     0 ), /*   404 T_Type            */
-  S_ST( 'g',   1,        0,     0 ), /*   405 T_Unconfig        */
-  S_ST( 'r',   1,        0,     0 ), /*   406 T_Unpeer          */
-  S_ST( 'n',   0,        0,     0 ), /*   407 T_Version         */
-  S_ST( 'a',   3,      413,     0 ), /*   408 manyc             */
-  S_ST( 'k',   0,        0,     0 ), /*   409 T_Week            */
-  S_ST( 'd',   0,        0,     0 ), /*   410 T_Wildcard        */
-  S_ST( 'e',   0,        0,     0 ), /*   411 T_Xleave          */
-  S_ST( 'r',   0,        0,     0 ), /*   412 T_Year            */
-  S_ST( 's',   3,      414,     0 ), /*   413 manyca            */
-  S_ST( 't',   3,      430,     0 ), /*   414 manycas           */
-  S_ST( 'c',   3,      426,     0 ), /*   415 manycast          */
-  S_ST( 'e',   0,        0,     0 ), /*   416 T_Simulate        */
-  S_ST( 'y',   0,        0,     0 ), /*   417 T_Beep_Delay      */
-  S_ST( 'n',   0,        0,     0 ), /*   418 T_Sim_Duration    */
-  S_ST( 't',   0,        0,     0 ), /*   419 T_Server_Offset   */
-  S_ST( 'n',   0,        0,     0 ), /*   420 T_Duration        */
-  S_ST( 't',   0,        0,     0 ), /*   421 T_Freq_Offset     */
-  S_ST( 'r',   0,        0,     0 ), /*   422 T_Wander          */
-  S_ST( 'r',   0,        0,     0 ), /*   423 T_Jitter          */
-  S_ST( 'y',   0,        0,     0 ), /*   424 T_Prop_Delay      */
-  S_ST( 'y',   0,        0,     0 ), /*   425 T_Proc_Delay      */
-  S_ST( 'l',   3,      427,     0 ), /*   426 manycastc         */
-  S_ST( 'i',   3,      428,     0 ), /*   427 manycastcl        */
-  S_ST( 'e',   3,      429,     0 ), /*   428 manycastcli       */
-  S_ST( 'n',   3,      328,     0 ), /*   429 manycastclie      */
-  S_ST( 's',   3,      431,   415 ), /*   430 manycast          */
-  S_ST( 'e',   3,      432,     0 ), /*   431 manycasts         */
-  S_ST( 'r',   3,      433,     0 ), /*   432 manycastse        */
-  S_ST( 'v',   3,      434,     0 ), /*   433 manycastser       */
-  S_ST( 'e',   3,      329,     0 ), /*   434 manycastserv      */
-  S_ST( 's',   3,      330,   291 ), /*   435 ma                */
-  S_ST( 'x',   3,      451,   435 ), /*   436 ma                */
-  S_ST( 'a',   3,      438,     0 ), /*   437 max               */
-  S_ST( 'g',   3,      331,     0 ), /*   438 maxa              */
-  S_ST( 'c',   3,      440,   437 ), /*   439 max               */
-  S_ST( 'l',   3,      441,     0 ), /*   440 maxc              */
-  S_ST( 'o',   3,      442,     0 ), /*   441 maxcl             */
-  S_ST( 'c',   3,      332,     0 ), /*   442 maxclo            */
-  S_ST( 'd',   3,      447,   439 ), /*   443 max               */
-  S_ST( 'e',   3,      445,     0 ), /*   444 maxd              */
-  S_ST( 'p',   3,      446,     0 ), /*   445 maxde             */
-  S_ST( 't',   3,      333,     0 ), /*   446 maxdep            */
-  S_ST( 'i',   3,      448,   444 ), /*   447 maxd              */
-  S_ST( 's',   3,      334,     0 ), /*   448 maxdi             */
-  S_ST( 'm',   3,      450,   443 ), /*   449 max               */
-  S_ST( 'e',   3,      335,     0 ), /*   450 maxm              */
-  S_ST( 'p',   3,      452,   449 ), /*   451 max               */
-  S_ST( 'o',   3,      453,     0 ), /*   452 maxp              */
-  S_ST( 'l',   3,      336,     0 ), /*   453 maxpo             */
-  S_ST( 'i',   3,      455,   286 ), /*   454 m                 */
-  S_ST( 'n',   3,      472,     0 ), /*   455 mi                */
-  S_ST( 'c',   3,      457,     0 ), /*   456 min               */
-  S_ST( 'l',   3,      458,     0 ), /*   457 minc              */
-  S_ST( 'o',   3,      459,     0 ), /*   458 mincl             */
-  S_ST( 'c',   3,      337,     0 ), /*   459 minclo            */
-  S_ST( 'd',   3,      464,   456 ), /*   460 min               */
-  S_ST( 'e',   3,      462,     0 ), /*   461 mind              */
-  S_ST( 'p',   3,      463,     0 ), /*   462 minde             */
-  S_ST( 't',   3,      338,     0 ), /*   463 mindep            */
-  S_ST( 'i',   3,      465,   461 ), /*   464 mind              */
-  S_ST( 's',   3,      339,     0 ), /*   465 mindi             */
-  S_ST( 'i',   3,      467,   460 ), /*   466 min               */
-  S_ST( 'm',   3,      468,     0 ), /*   467 mini              */
-  S_ST( 'u',   3,      340,     0 ), /*   468 minim             */
-  S_ST( 'p',   3,      470,   466 ), /*   469 min               */
-  S_ST( 'o',   3,      471,     0 ), /*   470 minp              */
-  S_ST( 'l',   3,      341,     0 ), /*   471 minpo             */
-  S_ST( 's',   3,      473,   469 ), /*   472 min               */
-  S_ST( 'a',   3,      474,     0 ), /*   473 mins              */
-  S_ST( 'n',   3,      342,     0 ), /*   474 minsa             */
-  S_ST( 'o',   3,      477,   454 ), /*   475 m                 */
-  S_ST( 'd',   3,      343,     0 ), /*   476 mo                */
-  S_ST( 'n',   3,      481,   476 ), /*   477 mo                */
-  S_ST( 'i',   3,      479,     0 ), /*   478 mon               */
-  S_ST( 't',   3,      480,     0 ), /*   479 moni              */
-  S_ST( 'o',   3,      344,     0 ), /*   480 monit             */
-  S_ST( 't',   3,      345,   478 ), /*   481 mon               */
-  S_ST( 'r',   3,      346,   475 ), /*   482 m                 */
-  S_ST( 's',   3,      484,   482 ), /*   483 m                 */
-  S_ST( 's',   3,      485,     0 ), /*   484 ms                */
-  S_ST( 'n',   3,      486,     0 ), /*   485 mss               */
-  S_ST( 't',   3,      319,     0 ), /*   486 mssn              */
-  S_ST( 'u',   3,      488,   483 ), /*   487 m                 */
-  S_ST( 'l',   3,      489,     0 ), /*   488 mu                */
-  S_ST( 't',   3,      490,     0 ), /*   489 mul               */
-  S_ST( 'i',   3,      491,     0 ), /*   490 mult              */
-  S_ST( 'c',   3,      492,     0 ), /*   491 multi             */
-  S_ST( 'a',   3,      493,     0 ), /*   492 multic            */
-  S_ST( 's',   3,      494,     0 ), /*   493 multica           */
-  S_ST( 't',   3,      495,     0 ), /*   494 multicas          */
-  S_ST( 'c',   3,      496,     0 ), /*   495 multicast         */
-  S_ST( 'l',   3,      497,     0 ), /*   496 multicastc        */
-  S_ST( 'i',   3,      498,     0 ), /*   497 multicastcl       */
-  S_ST( 'e',   3,      499,     0 ), /*   498 multicastcli      */
-  S_ST( 'n',   3,      347,     0 ), /*   499 multicastclie     */
-  S_ST( 'n',   3,      531,   257 ), /*   500                   */
-  S_ST( 'i',   3,      348,     0 ), /*   501 n                 */
-  S_ST( 'o',   3,      526,   501 ), /*   502 n                 */
-  S_ST( 'l',   3,      504,     0 ), /*   503 no                */
-  S_ST( 'i',   3,      505,     0 ), /*   504 nol               */
-  S_ST( 'n',   3,      349,     0 ), /*   505 noli              */
-  S_ST( 'm',   3,      507,   503 ), /*   506 no                */
-  S_ST( 'o',   3,      508,     0 ), /*   507 nom               */
-  S_ST( 'd',   3,      509,     0 ), /*   508 nomo              */
-  S_ST( 'i',   3,      510,     0 ), /*   509 nomod             */
-  S_ST( 'f',   3,      350,     0 ), /*   510 nomodi            */
-  S_ST( 'n',   3,      351,   506 ), /*   511 no                */
-  S_ST( 'p',   3,      513,   511 ), /*   512 no                */
-  S_ST( 'e',   3,      514,     0 ), /*   513 nop               */
-  S_ST( 'e',   3,      352,     0 ), /*   514 nope              */
-  S_ST( 'q',   3,      516,   512 ), /*   515 no                */
-  S_ST( 'u',   3,      517,     0 ), /*   516 noq               */
-  S_ST( 'e',   3,      518,     0 ), /*   517 noqu              */
-  S_ST( 'r',   3,      353,     0 ), /*   518 noque             */
-  S_ST( 's',   3,      520,   515 ), /*   519 no                */
-  S_ST( 'e',   3,      524,     0 ), /*   520 nos               */
-  S_ST( 'l',   3,      522,     0 ), /*   521 nose              */
-  S_ST( 'e',   3,      523,     0 ), /*   522 nosel             */
-  S_ST( 'c',   3,      354,     0 ), /*   523 nosele            */
-  S_ST( 'r',   3,      525,   521 ), /*   524 nose              */
-  S_ST( 'v',   3,      355,     0 ), /*   525 noser             */
-  S_ST( 't',   3,      527,   519 ), /*   526 no                */
-  S_ST( 'r',   3,      529,     0 ), /*   527 not               */
-  S_ST( 'a',   3,      356,     0 ), /*   528 notr              */
-  S_ST( 'u',   3,      530,   528 ), /*   529 notr              */
-  S_ST( 's',   3,      357,     0 ), /*   530 notru             */
-  S_ST( 't',   3,      358,   502 ), /*   531 n                 */
-  S_ST( 'p',   3,      533,     0 ), /*   532 ntp               */
-  S_ST( 'o',   3,      534,     0 ), /*   533 ntpp              */
-  S_ST( 'r',   3,      359,     0 ), /*   534 ntppo             */
-  S_ST( 's',   3,      536,   532 ), /*   535 ntp               */
-  S_ST( 'i',   3,      537,     0 ), /*   536 ntps              */
-  S_ST( 'g',   3,      538,     0 ), /*   537 ntpsi             */
-  S_ST( 'n',   3,      539,     0 ), /*   538 ntpsig            */
-  S_ST( 'd',   3,      540,     0 ), /*   539 ntpsign           */
-  S_ST( 's',   3,      541,     0 ), /*   540 ntpsignd          */
-  S_ST( 'o',   3,      542,     0 ), /*   541 ntpsignds         */
-  S_ST( 'c',   3,      543,     0 ), /*   542 ntpsigndso        */
-  S_ST( 'k',   3,      544,     0 ), /*   543 ntpsigndsoc       */
-  S_ST( 'e',   3,      360,     0 ), /*   544 ntpsigndsock      */
-  S_ST( 'o',   3,      546,   500 ), /*   545                   */
-  S_ST( 'r',   3,      547,     0 ), /*   546 o                 */
-  S_ST( 'p',   3,      548,     0 ), /*   547 or                */
-  S_ST( 'h',   3,      549,     0 ), /*   548 orp               */
-  S_ST( 'a',   3,      361,     0 ), /*   549 orph              */
-  S_ST( 'p',   3,      373,   545 ), /*   550                   */
-  S_ST( 'a',   3,      552,     0 ), /*   551 p                 */
-  S_ST( 'n',   3,      553,     0 ), /*   552 pa                */
-  S_ST( 'i',   3,      362,     0 ), /*   553 pan               */
-  S_ST( 'e',   3,      555,   551 ), /*   554 p                 */
-  S_ST( 'e',   3,      363,     0 ), /*   555 pe                */
-  S_ST( 's',   3,      557,     0 ), /*   556 peer              */
-  S_ST( 't',   3,      558,     0 ), /*   557 peers             */
-  S_ST( 'a',   3,      559,     0 ), /*   558 peerst            */
-  S_ST( 't',   3,      364,     0 ), /*   559 peersta           */
-  S_ST( 'h',   3,      561,   554 ), /*   560 p                 */
-  S_ST( 'o',   3,      562,     0 ), /*   561 ph                */
-  S_ST( 'n',   3,      365,     0 ), /*   562 pho               */
-  S_ST( 'i',   3,      366,   560 ), /*   563 p                 */
-  S_ST( 'f',   3,      565,     0 ), /*   564 pid               */
-  S_ST( 'i',   3,      566,     0 ), /*   565 pidf              */
-  S_ST( 'l',   3,      367,     0 ), /*   566 pidfi             */
-  S_ST( 'o',   3,      569,   563 ), /*   567 p                 */
-  S_ST( 'o',   3,      368,     0 ), /*   568 po                */
-  S_ST( 'r',   3,      369,   568 ), /*   569 po                */
-  S_ST( 'r',   3,      577,   567 ), /*   570 p                 */
-  S_ST( 'e',   3,      575,     0 ), /*   571 pr                */
-  S_ST( 'e',   3,      573,     0 ), /*   572 pre               */
-  S_ST( 'm',   3,      574,     0 ), /*   573 pree              */
-  S_ST( 'p',   3,      370,     0 ), /*   574 preem             */
-  S_ST( 'f',   3,      576,   572 ), /*   575 pre               */
-  S_ST( 'e',   3,      371,     0 ), /*   576 pref              */
-  S_ST( 'o',   3,      590,   571 ), /*   577 pr                */
-  S_ST( 'c',   3,      579,     0 ), /*   578 pro               */
-  S_ST( '_',   3,      580,     0 ), /*   579 proc              */
-  S_ST( 'd',   3,      581,     0 ), /*   580 proc_             */
-  S_ST( 'e',   3,      582,     0 ), /*   581 proc_d            */
-  S_ST( 'l',   3,      583,     0 ), /*   582 proc_de           */
-  S_ST( 'a',   3,      425,     0 ), /*   583 proc_del          */
-  S_ST( 'p',   3,      585,   578 ), /*   584 pro               */
-  S_ST( '_',   3,      586,     0 ), /*   585 prop              */
-  S_ST( 'd',   3,      587,     0 ), /*   586 prop_             */
-  S_ST( 'e',   3,      588,     0 ), /*   587 prop_d            */
-  S_ST( 'l',   3,      589,     0 ), /*   588 prop_de           */
-  S_ST( 'a',   3,      424,     0 ), /*   589 prop_del          */
-  S_ST( 't',   3,      591,   584 ), /*   590 pro               */
-  S_ST( 'o',   3,      592,     0 ), /*   591 prot              */
-  S_ST( 's',   3,      593,     0 ), /*   592 proto             */
-  S_ST( 't',   3,      594,     0 ), /*   593 protos            */
-  S_ST( 'a',   3,      595,     0 ), /*   594 protost           */
-  S_ST( 't',   3,      372,     0 ), /*   595 protosta          */
-  S_ST( 'q',   3,      597,   550 ), /*   596                   */
-  S_ST( 'o',   3,      374,     0 ), /*   597 q                 */
-  S_ST( 'r',   3,      610,   596 ), /*   598                   */
-  S_ST( 'a',   3,      605,     0 ), /*   599 r                 */
-  S_ST( 'n',   3,      601,     0 ), /*   600 ra                */
-  S_ST( 'd',   3,      602,     0 ), /*   601 ran               */
-  S_ST( 'f',   3,      603,     0 ), /*   602 rand              */
-  S_ST( 'i',   3,      604,     0 ), /*   603 randf             */
-  S_ST( 'l',   3,      375,     0 ), /*   604 randfi            */
-  S_ST( 'w',   3,      606,   600 ), /*   605 ra                */
-  S_ST( 's',   3,      607,     0 ), /*   606 raw               */
-  S_ST( 't',   3,      608,     0 ), /*   607 raws              */
-  S_ST( 'a',   3,      609,     0 ), /*   608 rawst             */
-  S_ST( 't',   3,      376,     0 ), /*   609 rawsta            */
-  S_ST( 'e',   3,      625,   599 ), /*   610 r                 */
-  S_ST( 'f',   3,      612,     0 ), /*   611 re                */
-  S_ST( 'i',   3,      377,     0 ), /*   612 ref               */
-  S_ST( 'q',   3,      614,   611 ), /*   613 re                */
-  S_ST( 'u',   3,      615,     0 ), /*   614 req               */
-  S_ST( 'e',   3,      616,     0 ), /*   615 requ              */
-  S_ST( 's',   3,      617,     0 ), /*   616 reque             */
-  S_ST( 't',   3,      618,     0 ), /*   617 reques            */
-  S_ST( 'k',   3,      619,     0 ), /*   618 request           */
-  S_ST( 'e',   3,      378,     0 ), /*   619 requestk          */
-  S_ST( 's',   3,      621,   613 ), /*   620 re                */
-  S_ST( 't',   3,      622,     0 ), /*   621 res               */
-  S_ST( 'r',   3,      623,     0 ), /*   622 rest              */
-  S_ST( 'i',   3,      624,     0 ), /*   623 restr             */
-  S_ST( 'c',   3,      379,     0 ), /*   624 restri            */
-  S_ST( 'v',   3,      626,   620 ), /*   625 re                */
-  S_ST( 'o',   3,      627,     0 ), /*   626 rev               */
-  S_ST( 'k',   3,      380,     0 ), /*   627 revo              */
-  S_ST( 's',   3,      692,   598 ), /*   628                   */
-  S_ST( 'a',   3,      630,     0 ), /*   629 s                 */
-  S_ST( 'v',   3,      631,     0 ), /*   630 sa                */
-  S_ST( 'e',   3,      632,     0 ), /*   631 sav               */
-  S_ST( 'c',   3,      633,     0 ), /*   632 save              */
-  S_ST( 'o',   3,      634,     0 ), /*   633 savec             */
-  S_ST( 'n',   3,      635,     0 ), /*   634 saveco            */
-  S_ST( 'f',   3,      636,     0 ), /*   635 savecon           */
-  S_ST( 'i',   3,      637,     0 ), /*   636 saveconf          */
-  S_ST( 'g',   3,      638,     0 ), /*   637 saveconfi         */
-  S_ST( 'd',   3,      639,     0 ), /*   638 saveconfig        */
-  S_ST( 'i',   3,      381,     0 ), /*   639 saveconfigd       */
-  S_ST( 'e',   3,      650,   629 ), /*   640 s                 */
-  S_ST( 'r',   3,      642,     0 ), /*   641 se                */
-  S_ST( 'v',   3,      643,     0 ), /*   642 ser               */
-  S_ST( 'e',   3,      382,     0 ), /*   643 serv              */
-  S_ST( '_',   3,      645,     0 ), /*   644 server            */
-  S_ST( 'o',   3,      646,     0 ), /*   645 server_           */
-  S_ST( 'f',   3,      647,     0 ), /*   646 server_o          */
-  S_ST( 'f',   3,      648,     0 ), /*   647 server_of         */
-  S_ST( 's',   3,      649,     0 ), /*   648 server_off        */
-  S_ST( 'e',   3,      419,     0 ), /*   649 server_offs       */
-  S_ST( 't',   3,      651,   641 ), /*   650 se                */
-  S_ST( 'v',   3,      652,     0 ), /*   651 set               */
-  S_ST( 'a',   3,      383,     0 ), /*   652 setv              */
-  S_ST( 'i',   3,      655,   640 ), /*   653 s                 */
-  S_ST( 'g',   3,      384,     0 ), /*   654 si                */
-  S_ST( 'm',   3,      656,   654 ), /*   655 si                */
-  S_ST( 'u',   3,      657,     0 ), /*   656 sim               */
-  S_ST( 'l',   3,      658,     0 ), /*   657 simu              */
-  S_ST( 'a',   3,      659,     0 ), /*   658 simul             */
-  S_ST( 't',   3,      660,     0 ), /*   659 simula            */
-  S_ST( 'i',   3,      661,   416 ), /*   660 simulat           */
-  S_ST( 'o',   3,      662,     0 ), /*   661 simulati          */
-  S_ST( 'n',   3,      663,     0 ), /*   662 simulatio         */
-  S_ST( '_',   3,      664,     0 ), /*   663 simulation        */
-  S_ST( 'd',   3,      665,     0 ), /*   664 simulation_       */
-  S_ST( 'u',   3,      666,     0 ), /*   665 simulation_d      */
-  S_ST( 'r',   3,      667,     0 ), /*   666 simulation_du     */
-  S_ST( 'a',   3,      668,     0 ), /*   667 simulation_dur    */
-  S_ST( 't',   3,      669,     0 ), /*   668 simulation_dura   */
-  S_ST( 'i',   3,      670,     0 ), /*   669 simulation_durat  */
-  S_ST( 'o',   3,      418,     0 ), /*   670 simulation_durati */
-  S_ST( 'o',   3,      672,   653 ), /*   671 s                 */
-  S_ST( 'u',   3,      673,     0 ), /*   672 so                */
-  S_ST( 'r',   3,      674,     0 ), /*   673 sou               */
-  S_ST( 'c',   3,      385,     0 ), /*   674 sour              */
-  S_ST( 't',   3,      688,   671 ), /*   675 s                 */
-  S_ST( 'a',   3,      677,     0 ), /*   676 st                */
-  S_ST( 't',   3,      387,     0 ), /*   677 sta               */
-  S_ST( 'i',   3,      679,     0 ), /*   678 stat              */
-  S_ST( 's',   3,      680,     0 ), /*   679 stati             */
-  S_ST( 't',   3,      681,     0 ), /*   680 statis            */
-  S_ST( 'i',   3,      682,     0 ), /*   681 statist           */
-  S_ST( 'c',   3,      386,     0 ), /*   682 statisti          */
-  S_ST( 'd',   3,      684,     0 ), /*   683 stats             */
-  S_ST( 'i',   3,      388,     0 ), /*   684 statsd            */
-  S_ST( 'e',   3,      389,   676 ), /*   685 st                */
-  S_ST( 'o',   3,      687,     0 ), /*   686 step              */
-  S_ST( 'u',   3,      390,     0 ), /*   687 stepo             */
-  S_ST( 'r',   3,      689,   685 ), /*   688 st                */
-  S_ST( 'a',   3,      690,     0 ), /*   689 str               */
-  S_ST( 't',   3,      691,     0 ), /*   690 stra              */
-  S_ST( 'u',   3,      391,     0 ), /*   691 strat             */
-  S_ST( 'y',   3,      693,   675 ), /*   692 s                 */
-  S_ST( 's',   3,      694,     0 ), /*   693 sy                */
-  S_ST( 's',   3,      695,     0 ), /*   694 sys               */
-  S_ST( 't',   3,      696,     0 ), /*   695 syss              */
-  S_ST( 'a',   3,      697,     0 ), /*   696 sysst             */
-  S_ST( 't',   3,      393,     0 ), /*   697 syssta            */
-  S_ST( 't',   3,      724,   628 ), /*   698                   */
-  S_ST( 'i',   3,      710,     0 ), /*   699 t                 */
-  S_ST( 'c',   3,      394,     0 ), /*   700 ti                */
-  S_ST( 'm',   3,      703,   700 ), /*   701 ti                */
-  S_ST( 'e',   3,      396,     0 ), /*   702 tim               */
-  S_ST( 'i',   3,      704,   702 ), /*   703 tim               */
-  S_ST( 'n',   3,      705,     0 ), /*   704 timi              */
-  S_ST( 'g',   3,      706,     0 ), /*   705 timin             */
-  S_ST( 's',   3,      707,     0 ), /*   706 timing            */
-  S_ST( 't',   3,      708,     0 ), /*   707 timings           */
-  S_ST( 'a',   3,      709,     0 ), /*   708 timingst          */
-  S_ST( 't',   3,      397,     0 ), /*   709 timingsta         */
-  S_ST( 'n',   3,      711,   701 ), /*   710 ti                */
-  S_ST( 'k',   3,      712,     0 ), /*   711 tin               */
-  S_ST( 'e',   3,      398,     0 ), /*   712 tink              */
-  S_ST( 'o',   3,      399,   699 ), /*   713 t                 */
-  S_ST( 'r',   3,      716,   713 ), /*   714 t                 */
-  S_ST( 'a',   3,      400,     0 ), /*   715 tr                */
-  S_ST( 'u',   3,      717,   715 ), /*   716 tr                */
-  S_ST( 's',   3,      718,   401 ), /*   717 tru               */
-  S_ST( 't',   3,      719,     0 ), /*   718 trus              */
-  S_ST( 'e',   3,      720,     0 ), /*   719 trust             */
-  S_ST( 'd',   3,      721,     0 ), /*   720 truste            */
-  S_ST( 'k',   3,      722,     0 ), /*   721 trusted           */
-  S_ST( 'e',   3,      402,     0 ), /*   722 trustedk          */
-  S_ST( 't',   3,      403,   714 ), /*   723 t                 */
-  S_ST( 'y',   3,      725,   723 ), /*   724 t                 */
-  S_ST( 'p',   3,      404,     0 ), /*   725 ty                */
-  S_ST( 'u',   3,      727,   698 ), /*   726                   */
-  S_ST( 'n',   3,      733,     0 ), /*   727 u                 */
-  S_ST( 'c',   3,      729,     0 ), /*   728 un                */
-  S_ST( 'o',   3,      730,     0 ), /*   729 unc               */
-  S_ST( 'n',   3,      731,     0 ), /*   730 unco              */
-  S_ST( 'f',   3,      732,     0 ), /*   731 uncon             */
-  S_ST( 'i',   3,      405,     0 ), /*   732 unconf            */
-  S_ST( 'p',   3,      734,   728 ), /*   733 un                */
-  S_ST( 'e',   3,      735,     0 ), /*   734 unp               */
-  S_ST( 'e',   3,      406,     0 ), /*   735 unpe              */
-  S_ST( 'v',   3,      737,   726 ), /*   736                   */
-  S_ST( 'e',   3,      738,     0 ), /*   737 v                 */
-  S_ST( 'r',   3,      739,     0 ), /*   738 ve                */
-  S_ST( 's',   3,      740,     0 ), /*   739 ver               */
-  S_ST( 'i',   3,      741,     0 ), /*   740 vers              */
-  S_ST( 'o',   3,      407,     0 ), /*   741 versi             */
-  S_ST( 'w',   3,      749,   736 ), /*   742                   */
-  S_ST( 'a',   3,      744,     0 ), /*   743 w                 */
-  S_ST( 'n',   3,      745,     0 ), /*   744 wa                */
-  S_ST( 'd',   3,      746,     0 ), /*   745 wan               */
-  S_ST( 'e',   3,      422,     0 ), /*   746 wand              */
-  S_ST( 'e',   3,      748,   743 ), /*   747 w                 */
-  S_ST( 'e',   3,      409,     0 ), /*   748 we                */
-  S_ST( 'i',   3,      750,   747 ), /*   749 w                 */
-  S_ST( 'l',   3,      751,     0 ), /*   750 wi                */
-  S_ST( 'd',   3,      752,     0 ), /*   751 wil               */
-  S_ST( 'c',   3,      753,     0 ), /*   752 wild              */
-  S_ST( 'a',   3,      754,     0 ), /*   753 wildc             */
-  S_ST( 'r',   3,      410,     0 ), /*   754 wildca            */
-  S_ST( 'x',   3,      756,   742 ), /*   755                   */
-  S_ST( 'l',   3,      757,     0 ), /*   756 x                 */
-  S_ST( 'e',   3,      758,     0 ), /*   757 xl                */
-  S_ST( 'a',   3,      759,     0 ), /*   758 xle               */
-  S_ST( 'v',   3,      411,     0 ), /*   759 xlea              */
-  S_ST( 'y',   3,      761,   755 ), /*   760 [initial state]   */
-  S_ST( 'e',   3,      762,     0 ), /*   761 y                 */
-  S_ST( 'a',   3,      412,     0 )  /*   762 ye                */
+  S_ST( 'c',   0,        0,     0 ), /*   307 T_Incalloc        */
+  S_ST( 'm',   0,        0,     0 ), /*   308 T_Incmem          */
+  S_ST( 'c',   0,        0,     0 ), /*   309 T_Initalloc       */
+  S_ST( 'm',   0,        0,     0 ), /*   310 T_Initmem         */
+  S_ST( 'e',   1,        0,     0 ), /*   311 T_Includefile     */
+  S_ST( 't',   3,      396,     0 ), /*   312 loops             */
+  S_ST( 'e',   0,        0,     0 ), /*   313 T_Interface       */
+  S_ST( '4',   0,        0,     0 ), /*   314 T_Ipv4            */
+  S_ST( '4',   0,        0,     0 ), /*   315 T_Ipv4_flag       */
+  S_ST( '6',   0,        0,   314 ), /*   316 T_Ipv6            */
+  S_ST( '6',   0,        0,   315 ), /*   317 T_Ipv6_flag       */
+  S_ST( 'l',   0,        0,     0 ), /*   318 T_Kernel          */
+  S_ST( 'y',   0,      320,   225 ), /*   319 T_Key             */
+  S_ST( 's',   1,      228,     0 ), /*   320 T_Keys            */
+  S_ST( 'r',   1,        0,     0 ), /*   321 T_Keysdir         */
+  S_ST( 'd',   0,        0,     0 ), /*   322 T_Kod             */
+  S_ST( 'p',   0,        0,     0 ), /*   323 T_Mssntp          */
+  S_ST( 'e',   1,        0,     0 ), /*   324 T_Leapfile        */
+  S_ST( 'd',   0,        0,     0 ), /*   325 T_Limited         */
+  S_ST( 'k',   0,        0,     0 ), /*   326 T_Link            */
+  S_ST( 'n',   0,        0,     0 ), /*   327 T_Listen          */
+  S_ST( 'g',   2,        0,     0 ), /*   328 T_Logconfig       */
+  S_ST( 'e',   1,        0,     0 ), /*   329 T_Logfile         */
+  S_ST( 's',   0,        0,     0 ), /*   330 T_Loopstats       */
+  S_ST( 'p',   0,        0,     0 ), /*   331 T_Lowpriotrap     */
+  S_ST( 't',   1,        0,     0 ), /*   332 T_Manycastclient  */
+  S_ST( 'r',   2,        0,     0 ), /*   333 T_Manycastserver  */
+  S_ST( 'k',   0,        0,     0 ), /*   334 T_Mask            */
+  S_ST( 'e',   0,        0,     0 ), /*   335 T_Maxage          */
+  S_ST( 'k',   0,        0,     0 ), /*   336 T_Maxclock        */
+  S_ST( 'h',   0,        0,     0 ), /*   337 T_Maxdepth        */
+  S_ST( 't',   0,        0,     0 ), /*   338 T_Maxdist         */
+  S_ST( 'm',   0,        0,     0 ), /*   339 T_Maxmem          */
+  S_ST( 'l',   0,        0,     0 ), /*   340 T_Maxpoll         */
+  S_ST( 'k',   0,        0,     0 ), /*   341 T_Minclock        */
+  S_ST( 'h',   0,        0,     0 ), /*   342 T_Mindepth        */
+  S_ST( 't',   0,        0,     0 ), /*   343 T_Mindist         */
+  S_ST( 'm',   0,        0,     0 ), /*   344 T_Minimum         */
+  S_ST( 'l',   0,        0,     0 ), /*   345 T_Minpoll         */
+  S_ST( 'e',   0,        0,     0 ), /*   346 T_Minsane         */
+  S_ST( 'e',   0,        0,     0 ), /*   347 T_Mode            */
+  S_ST( 'r',   0,        0,     0 ), /*   348 T_Monitor         */
+  S_ST( 'h',   0,        0,     0 ), /*   349 T_Month           */
+  S_ST( 'u',   0,        0,     0 ), /*   350 T_Mru             */
+  S_ST( 't',   2,        0,     0 ), /*   351 T_Multicastclient */
+  S_ST( 'c',   0,        0,     0 ), /*   352 T_Nic             */
+  S_ST( 'k',   0,        0,     0 ), /*   353 T_Nolink          */
+  S_ST( 'y',   0,        0,     0 ), /*   354 T_Nomodify        */
+  S_ST( 'e',   0,        0,     0 ), /*   355 T_None            */
+  S_ST( 'r',   0,        0,     0 ), /*   356 T_Nopeer          */
+  S_ST( 'y',   0,        0,     0 ), /*   357 T_Noquery         */
+  S_ST( 't',   0,        0,     0 ), /*   358 T_Noselect        */
+  S_ST( 'e',   0,        0,     0 ), /*   359 T_Noserve         */
+  S_ST( 'p',   0,        0,     0 ), /*   360 T_Notrap          */
+  S_ST( 't',   0,        0,     0 ), /*   361 T_Notrust         */
+  S_ST( 'p',   0,      553,     0 ), /*   362 T_Ntp             */
+  S_ST( 't',   0,        0,     0 ), /*   363 T_Ntpport         */
+  S_ST( 't',   1,        0,     0 ), /*   364 T_NtpSignDsocket  */
+  S_ST( 'n',   0,        0,     0 ), /*   365 T_Orphan          */
+  S_ST( 'c',   0,        0,     0 ), /*   366 T_Panic           */
+  S_ST( 'r',   1,      574,     0 ), /*   367 T_Peer            */
+  S_ST( 's',   0,        0,     0 ), /*   368 T_Peerstats       */
+  S_ST( 'e',   2,        0,     0 ), /*   369 T_Phone           */
+  S_ST( 'd',   0,      582,     0 ), /*   370 T_Pid             */
+  S_ST( 'e',   1,        0,     0 ), /*   371 T_Pidfile         */
+  S_ST( 'l',   1,        0,     0 ), /*   372 T_Pool            */
+  S_ST( 't',   0,        0,     0 ), /*   373 T_Port            */
+  S_ST( 't',   0,        0,     0 ), /*   374 T_Preempt         */
+  S_ST( 'r',   0,        0,     0 ), /*   375 T_Prefer          */
+  S_ST( 's',   0,        0,     0 ), /*   376 T_Protostats      */
+  S_ST( 'w',   1,        0,   588 ), /*   377 T_Pw              */
+  S_ST( 's',   0,        0,     0 ), /*   378 T_Qos             */
+  S_ST( 'e',   1,        0,     0 ), /*   379 T_Randfile        */
+  S_ST( 's',   0,        0,     0 ), /*   380 T_Rawstats        */
+  S_ST( 'd',   1,        0,     0 ), /*   381 T_Refid           */
+  S_ST( 'y',   0,        0,     0 ), /*   382 T_Requestkey      */
+  S_ST( 't',   0,        0,     0 ), /*   383 T_Restrict        */
+  S_ST( 'e',   0,        0,     0 ), /*   384 T_Revoke          */
+  S_ST( 'r',   1,        0,     0 ), /*   385 T_Saveconfigdir   */
+  S_ST( 'r',   1,      662,     0 ), /*   386 T_Server          */
+  S_ST( 'r',   1,        0,     0 ), /*   387 T_Setvar          */
+  S_ST( 'n',   1,        0,     0 ), /*   388 T_Sign            */
+  S_ST( 'e',   0,        0,     0 ), /*   389 T_Source          */
+  S_ST( 's',   0,        0,     0 ), /*   390 T_Statistics      */
+  S_ST( 's',   0,      701,   696 ), /*   391 T_Stats           */
+  S_ST( 'r',   1,        0,     0 ), /*   392 T_Statsdir        */
+  S_ST( 'p',   0,      704,     0 ), /*   393 T_Step            */
+  S_ST( 't',   0,        0,     0 ), /*   394 T_Stepout         */
+  S_ST( 'm',   0,        0,     0 ), /*   395 T_Stratum         */
+  S_ST( 'a',   3,      412,     0 ), /*   396 loopst            */
+  S_ST( 's',   0,        0,     0 ), /*   397 T_Sysstats        */
+  S_ST( 'k',   0,        0,     0 ), /*   398 T_Tick            */
+  S_ST( '1',   0,        0,     0 ), /*   399 T_Time1           */
+  S_ST( '2',   0,        0,   399 ), /*   400 T_Time2           */
+  S_ST( 's',   0,        0,     0 ), /*   401 T_Timingstats     */
+  S_ST( 'r',   0,        0,     0 ), /*   402 T_Tinker          */
+  S_ST( 's',   0,        0,     0 ), /*   403 T_Tos             */
+  S_ST( 'p',   1,        0,     0 ), /*   404 T_Trap            */
+  S_ST( 'e',   0,        0,     0 ), /*   405 T_True            */
+  S_ST( 'y',   0,        0,     0 ), /*   406 T_Trustedkey      */
+  S_ST( 'l',   0,        0,     0 ), /*   407 T_Ttl             */
+  S_ST( 'e',   0,        0,     0 ), /*   408 T_Type            */
+  S_ST( 'g',   1,        0,     0 ), /*   409 T_Unconfig        */
+  S_ST( 'r',   1,        0,     0 ), /*   410 T_Unpeer          */
+  S_ST( 'n',   0,        0,     0 ), /*   411 T_Version         */
+  S_ST( 't',   3,      330,     0 ), /*   412 loopsta           */
+  S_ST( 'k',   0,        0,     0 ), /*   413 T_Week            */
+  S_ST( 'd',   0,        0,     0 ), /*   414 T_Wildcard        */
+  S_ST( 'e',   0,        0,     0 ), /*   415 T_Xleave          */
+  S_ST( 'r',   0,        0,     0 ), /*   416 T_Year            */
+  S_ST( 'w',   3,      418,   257 ), /*   417 lo                */
+  S_ST( 'p',   3,      419,     0 ), /*   418 low               */
+  S_ST( 'r',   3,      430,     0 ), /*   419 lowp              */
+  S_ST( 'e',   0,        0,     0 ), /*   420 T_Simulate        */
+  S_ST( 'y',   0,        0,     0 ), /*   421 T_Beep_Delay      */
+  S_ST( 'n',   0,        0,     0 ), /*   422 T_Sim_Duration    */
+  S_ST( 't',   0,        0,     0 ), /*   423 T_Server_Offset   */
+  S_ST( 'n',   0,        0,     0 ), /*   424 T_Duration        */
+  S_ST( 't',   0,        0,     0 ), /*   425 T_Freq_Offset     */
+  S_ST( 'r',   0,        0,     0 ), /*   426 T_Wander          */
+  S_ST( 'r',   0,        0,     0 ), /*   427 T_Jitter          */
+  S_ST( 'y',   0,        0,     0 ), /*   428 T_Prop_Delay      */
+  S_ST( 'y',   0,        0,     0 ), /*   429 T_Proc_Delay      */
+  S_ST( 'i',   3,      431,     0 ), /*   430 lowpr             */
+  S_ST( 'o',   3,      432,     0 ), /*   431 lowpri            */
+  S_ST( 't',   3,      433,     0 ), /*   432 lowprio           */
+  S_ST( 'r',   3,      434,     0 ), /*   433 lowpriot          */
+  S_ST( 'a',   3,      331,     0 ), /*   434 lowpriotr         */
+  S_ST( 'm',   3,      505,   231 ), /*   435                   */
+  S_ST( 'a',   3,      454,     0 ), /*   436 m                 */
+  S_ST( 'n',   3,      438,     0 ), /*   437 ma                */
+  S_ST( 'y',   3,      439,     0 ), /*   438 man               */
+  S_ST( 'c',   3,      440,     0 ), /*   439 many              */
+  S_ST( 'a',   3,      441,     0 ), /*   440 manyc             */
+  S_ST( 's',   3,      442,     0 ), /*   441 manyca            */
+  S_ST( 't',   3,      448,     0 ), /*   442 manycas           */
+  S_ST( 'c',   3,      444,     0 ), /*   443 manycast          */
+  S_ST( 'l',   3,      445,     0 ), /*   444 manycastc         */
+  S_ST( 'i',   3,      446,     0 ), /*   445 manycastcl        */
+  S_ST( 'e',   3,      447,     0 ), /*   446 manycastcli       */
+  S_ST( 'n',   3,      332,     0 ), /*   447 manycastclie      */
+  S_ST( 's',   3,      449,   443 ), /*   448 manycast          */
+  S_ST( 'e',   3,      450,     0 ), /*   449 manycasts         */
+  S_ST( 'r',   3,      451,     0 ), /*   450 manycastse        */
+  S_ST( 'v',   3,      452,     0 ), /*   451 manycastser       */
+  S_ST( 'e',   3,      333,     0 ), /*   452 manycastserv      */
+  S_ST( 's',   3,      334,   437 ), /*   453 ma                */
+  S_ST( 'x',   3,      469,   453 ), /*   454 ma                */
+  S_ST( 'a',   3,      456,     0 ), /*   455 max               */
+  S_ST( 'g',   3,      335,     0 ), /*   456 maxa              */
+  S_ST( 'c',   3,      458,   455 ), /*   457 max               */
+  S_ST( 'l',   3,      459,     0 ), /*   458 maxc              */
+  S_ST( 'o',   3,      460,     0 ), /*   459 maxcl             */
+  S_ST( 'c',   3,      336,     0 ), /*   460 maxclo            */
+  S_ST( 'd',   3,      465,   457 ), /*   461 max               */
+  S_ST( 'e',   3,      463,     0 ), /*   462 maxd              */
+  S_ST( 'p',   3,      464,     0 ), /*   463 maxde             */
+  S_ST( 't',   3,      337,     0 ), /*   464 maxdep            */
+  S_ST( 'i',   3,      466,   462 ), /*   465 maxd              */
+  S_ST( 's',   3,      338,     0 ), /*   466 maxdi             */
+  S_ST( 'm',   3,      468,   461 ), /*   467 max               */
+  S_ST( 'e',   3,      339,     0 ), /*   468 maxm              */
+  S_ST( 'p',   3,      470,   467 ), /*   469 max               */
+  S_ST( 'o',   3,      471,     0 ), /*   470 maxp              */
+  S_ST( 'l',   3,      340,     0 ), /*   471 maxpo             */
+  S_ST( 'i',   3,      473,   436 ), /*   472 m                 */
+  S_ST( 'n',   3,      490,     0 ), /*   473 mi                */
+  S_ST( 'c',   3,      475,     0 ), /*   474 min               */
+  S_ST( 'l',   3,      476,     0 ), /*   475 minc              */
+  S_ST( 'o',   3,      477,     0 ), /*   476 mincl             */
+  S_ST( 'c',   3,      341,     0 ), /*   477 minclo            */
+  S_ST( 'd',   3,      482,   474 ), /*   478 min               */
+  S_ST( 'e',   3,      480,     0 ), /*   479 mind              */
+  S_ST( 'p',   3,      481,     0 ), /*   480 minde             */
+  S_ST( 't',   3,      342,     0 ), /*   481 mindep            */
+  S_ST( 'i',   3,      483,   479 ), /*   482 mind              */
+  S_ST( 's',   3,      343,     0 ), /*   483 mindi             */
+  S_ST( 'i',   3,      485,   478 ), /*   484 min               */
+  S_ST( 'm',   3,      486,     0 ), /*   485 mini              */
+  S_ST( 'u',   3,      344,     0 ), /*   486 minim             */
+  S_ST( 'p',   3,      488,   484 ), /*   487 min               */
+  S_ST( 'o',   3,      489,     0 ), /*   488 minp              */
+  S_ST( 'l',   3,      345,     0 ), /*   489 minpo             */
+  S_ST( 's',   3,      491,   487 ), /*   490 min               */
+  S_ST( 'a',   3,      492,     0 ), /*   491 mins              */
+  S_ST( 'n',   3,      346,     0 ), /*   492 minsa             */
+  S_ST( 'o',   3,      495,   472 ), /*   493 m                 */
+  S_ST( 'd',   3,      347,     0 ), /*   494 mo                */
+  S_ST( 'n',   3,      499,   494 ), /*   495 mo                */
+  S_ST( 'i',   3,      497,     0 ), /*   496 mon               */
+  S_ST( 't',   3,      498,     0 ), /*   497 moni              */
+  S_ST( 'o',   3,      348,     0 ), /*   498 monit             */
+  S_ST( 't',   3,      349,   496 ), /*   499 mon               */
+  S_ST( 'r',   3,      350,   493 ), /*   500 m                 */
+  S_ST( 's',   3,      502,   500 ), /*   501 m                 */
+  S_ST( 's',   3,      503,     0 ), /*   502 ms                */
+  S_ST( 'n',   3,      504,     0 ), /*   503 mss               */
+  S_ST( 't',   3,      323,     0 ), /*   504 mssn              */
+  S_ST( 'u',   3,      506,   501 ), /*   505 m                 */
+  S_ST( 'l',   3,      507,     0 ), /*   506 mu                */
+  S_ST( 't',   3,      508,     0 ), /*   507 mul               */
+  S_ST( 'i',   3,      509,     0 ), /*   508 mult              */
+  S_ST( 'c',   3,      510,     0 ), /*   509 multi             */
+  S_ST( 'a',   3,      511,     0 ), /*   510 multic            */
+  S_ST( 's',   3,      512,     0 ), /*   511 multica           */
+  S_ST( 't',   3,      513,     0 ), /*   512 multicas          */
+  S_ST( 'c',   3,      514,     0 ), /*   513 multicast         */
+  S_ST( 'l',   3,      515,     0 ), /*   514 multicastc        */
+  S_ST( 'i',   3,      516,     0 ), /*   515 multicastcl       */
+  S_ST( 'e',   3,      517,     0 ), /*   516 multicastcli      */
+  S_ST( 'n',   3,      351,     0 ), /*   517 multicastclie     */
+  S_ST( 'n',   3,      549,   435 ), /*   518                   */
+  S_ST( 'i',   3,      352,     0 ), /*   519 n                 */
+  S_ST( 'o',   3,      544,   519 ), /*   520 n                 */
+  S_ST( 'l',   3,      522,     0 ), /*   521 no                */
+  S_ST( 'i',   3,      523,     0 ), /*   522 nol               */
+  S_ST( 'n',   3,      353,     0 ), /*   523 noli              */
+  S_ST( 'm',   3,      525,   521 ), /*   524 no                */
+  S_ST( 'o',   3,      526,     0 ), /*   525 nom               */
+  S_ST( 'd',   3,      527,     0 ), /*   526 nomo              */
+  S_ST( 'i',   3,      528,     0 ), /*   527 nomod             */
+  S_ST( 'f',   3,      354,     0 ), /*   528 nomodi            */
+  S_ST( 'n',   3,      355,   524 ), /*   529 no                */
+  S_ST( 'p',   3,      531,   529 ), /*   530 no                */
+  S_ST( 'e',   3,      532,     0 ), /*   531 nop               */
+  S_ST( 'e',   3,      356,     0 ), /*   532 nope              */
+  S_ST( 'q',   3,      534,   530 ), /*   533 no                */
+  S_ST( 'u',   3,      535,     0 ), /*   534 noq               */
+  S_ST( 'e',   3,      536,     0 ), /*   535 noqu              */
+  S_ST( 'r',   3,      357,     0 ), /*   536 noque             */
+  S_ST( 's',   3,      538,   533 ), /*   537 no                */
+  S_ST( 'e',   3,      542,     0 ), /*   538 nos               */
+  S_ST( 'l',   3,      540,     0 ), /*   539 nose              */
+  S_ST( 'e',   3,      541,     0 ), /*   540 nosel             */
+  S_ST( 'c',   3,      358,     0 ), /*   541 nosele            */
+  S_ST( 'r',   3,      543,   539 ), /*   542 nose              */
+  S_ST( 'v',   3,      359,     0 ), /*   543 noser             */
+  S_ST( 't',   3,      545,   537 ), /*   544 no                */
+  S_ST( 'r',   3,      547,     0 ), /*   545 not               */
+  S_ST( 'a',   3,      360,     0 ), /*   546 notr              */
+  S_ST( 'u',   3,      548,   546 ), /*   547 notr              */
+  S_ST( 's',   3,      361,     0 ), /*   548 notru             */
+  S_ST( 't',   3,      362,   520 ), /*   549 n                 */
+  S_ST( 'p',   3,      551,     0 ), /*   550 ntp               */
+  S_ST( 'o',   3,      552,     0 ), /*   551 ntpp              */
+  S_ST( 'r',   3,      363,     0 ), /*   552 ntppo             */
+  S_ST( 's',   3,      554,   550 ), /*   553 ntp               */
+  S_ST( 'i',   3,      555,     0 ), /*   554 ntps              */
+  S_ST( 'g',   3,      556,     0 ), /*   555 ntpsi             */
+  S_ST( 'n',   3,      557,     0 ), /*   556 ntpsig            */
+  S_ST( 'd',   3,      558,     0 ), /*   557 ntpsign           */
+  S_ST( 's',   3,      559,     0 ), /*   558 ntpsignd          */
+  S_ST( 'o',   3,      560,     0 ), /*   559 ntpsignds         */
+  S_ST( 'c',   3,      561,     0 ), /*   560 ntpsigndso        */
+  S_ST( 'k',   3,      562,     0 ), /*   561 ntpsigndsoc       */
+  S_ST( 'e',   3,      364,     0 ), /*   562 ntpsigndsock      */
+  S_ST( 'o',   3,      564,   518 ), /*   563                   */
+  S_ST( 'r',   3,      565,     0 ), /*   564 o                 */
+  S_ST( 'p',   3,      566,     0 ), /*   565 or                */
+  S_ST( 'h',   3,      567,     0 ), /*   566 orp               */
+  S_ST( 'a',   3,      365,     0 ), /*   567 orph              */
+  S_ST( 'p',   3,      377,   563 ), /*   568                   */
+  S_ST( 'a',   3,      570,     0 ), /*   569 p                 */
+  S_ST( 'n',   3,      571,     0 ), /*   570 pa                */
+  S_ST( 'i',   3,      366,     0 ), /*   571 pan               */
+  S_ST( 'e',   3,      573,   569 ), /*   572 p                 */
+  S_ST( 'e',   3,      367,     0 ), /*   573 pe                */
+  S_ST( 's',   3,      575,     0 ), /*   574 peer              */
+  S_ST( 't',   3,      576,     0 ), /*   575 peers             */
+  S_ST( 'a',   3,      577,     0 ), /*   576 peerst            */
+  S_ST( 't',   3,      368,     0 ), /*   577 peersta           */
+  S_ST( 'h',   3,      579,   572 ), /*   578 p                 */
+  S_ST( 'o',   3,      580,     0 ), /*   579 ph                */
+  S_ST( 'n',   3,      369,     0 ), /*   580 pho               */
+  S_ST( 'i',   3,      370,   578 ), /*   581 p                 */
+  S_ST( 'f',   3,      583,     0 ), /*   582 pid               */
+  S_ST( 'i',   3,      584,     0 ), /*   583 pidf              */
+  S_ST( 'l',   3,      371,     0 ), /*   584 pidfi             */
+  S_ST( 'o',   3,      587,   581 ), /*   585 p                 */
+  S_ST( 'o',   3,      372,     0 ), /*   586 po                */
+  S_ST( 'r',   3,      373,   586 ), /*   587 po                */
+  S_ST( 'r',   3,      595,   585 ), /*   588 p                 */
+  S_ST( 'e',   3,      593,     0 ), /*   589 pr                */
+  S_ST( 'e',   3,      591,     0 ), /*   590 pre               */
+  S_ST( 'm',   3,      592,     0 ), /*   591 pree              */
+  S_ST( 'p',   3,      374,     0 ), /*   592 preem             */
+  S_ST( 'f',   3,      594,   590 ), /*   593 pre               */
+  S_ST( 'e',   3,      375,     0 ), /*   594 pref              */
+  S_ST( 'o',   3,      608,   589 ), /*   595 pr                */
+  S_ST( 'c',   3,      597,     0 ), /*   596 pro               */
+  S_ST( '_',   3,      598,     0 ), /*   597 proc              */
+  S_ST( 'd',   3,      599,     0 ), /*   598 proc_             */
+  S_ST( 'e',   3,      600,     0 ), /*   599 proc_d            */
+  S_ST( 'l',   3,      601,     0 ), /*   600 proc_de           */
+  S_ST( 'a',   3,      429,     0 ), /*   601 proc_del          */
+  S_ST( 'p',   3,      603,   596 ), /*   602 pro               */
+  S_ST( '_',   3,      604,     0 ), /*   603 prop              */
+  S_ST( 'd',   3,      605,     0 ), /*   604 prop_             */
+  S_ST( 'e',   3,      606,     0 ), /*   605 prop_d            */
+  S_ST( 'l',   3,      607,     0 ), /*   606 prop_de           */
+  S_ST( 'a',   3,      428,     0 ), /*   607 prop_del          */
+  S_ST( 't',   3,      609,   602 ), /*   608 pro               */
+  S_ST( 'o',   3,      610,     0 ), /*   609 prot              */
+  S_ST( 's',   3,      611,     0 ), /*   610 proto             */
+  S_ST( 't',   3,      612,     0 ), /*   611 protos            */
+  S_ST( 'a',   3,      613,     0 ), /*   612 protost           */
+  S_ST( 't',   3,      376,     0 ), /*   613 protosta          */
+  S_ST( 'q',   3,      615,   568 ), /*   614                   */
+  S_ST( 'o',   3,      378,     0 ), /*   615 q                 */
+  S_ST( 'r',   3,      628,   614 ), /*   616                   */
+  S_ST( 'a',   3,      623,     0 ), /*   617 r                 */
+  S_ST( 'n',   3,      619,     0 ), /*   618 ra                */
+  S_ST( 'd',   3,      620,     0 ), /*   619 ran               */
+  S_ST( 'f',   3,      621,     0 ), /*   620 rand              */
+  S_ST( 'i',   3,      622,     0 ), /*   621 randf             */
+  S_ST( 'l',   3,      379,     0 ), /*   622 randfi            */
+  S_ST( 'w',   3,      624,   618 ), /*   623 ra                */
+  S_ST( 's',   3,      625,     0 ), /*   624 raw               */
+  S_ST( 't',   3,      626,     0 ), /*   625 raws              */
+  S_ST( 'a',   3,      627,     0 ), /*   626 rawst             */
+  S_ST( 't',   3,      380,     0 ), /*   627 rawsta            */
+  S_ST( 'e',   3,      643,   617 ), /*   628 r                 */
+  S_ST( 'f',   3,      630,     0 ), /*   629 re                */
+  S_ST( 'i',   3,      381,     0 ), /*   630 ref               */
+  S_ST( 'q',   3,      632,   629 ), /*   631 re                */
+  S_ST( 'u',   3,      633,     0 ), /*   632 req               */
+  S_ST( 'e',   3,      634,     0 ), /*   633 requ              */
+  S_ST( 's',   3,      635,     0 ), /*   634 reque             */
+  S_ST( 't',   3,      636,     0 ), /*   635 reques            */
+  S_ST( 'k',   3,      637,     0 ), /*   636 request           */
+  S_ST( 'e',   3,      382,     0 ), /*   637 requestk          */
+  S_ST( 's',   3,      639,   631 ), /*   638 re                */
+  S_ST( 't',   3,      640,     0 ), /*   639 res               */
+  S_ST( 'r',   3,      641,     0 ), /*   640 rest              */
+  S_ST( 'i',   3,      642,     0 ), /*   641 restr             */
+  S_ST( 'c',   3,      383,     0 ), /*   642 restri            */
+  S_ST( 'v',   3,      644,   638 ), /*   643 re                */
+  S_ST( 'o',   3,      645,     0 ), /*   644 rev               */
+  S_ST( 'k',   3,      384,     0 ), /*   645 revo              */
+  S_ST( 's',   3,      710,   616 ), /*   646                   */
+  S_ST( 'a',   3,      648,     0 ), /*   647 s                 */
+  S_ST( 'v',   3,      649,     0 ), /*   648 sa                */
+  S_ST( 'e',   3,      650,     0 ), /*   649 sav               */
+  S_ST( 'c',   3,      651,     0 ), /*   650 save              */
+  S_ST( 'o',   3,      652,     0 ), /*   651 savec             */
+  S_ST( 'n',   3,      653,     0 ), /*   652 saveco            */
+  S_ST( 'f',   3,      654,     0 ), /*   653 savecon           */
+  S_ST( 'i',   3,      655,     0 ), /*   654 saveconf          */
+  S_ST( 'g',   3,      656,     0 ), /*   655 saveconfi         */
+  S_ST( 'd',   3,      657,     0 ), /*   656 saveconfig        */
+  S_ST( 'i',   3,      385,     0 ), /*   657 saveconfigd       */
+  S_ST( 'e',   3,      668,   647 ), /*   658 s                 */
+  S_ST( 'r',   3,      660,     0 ), /*   659 se                */
+  S_ST( 'v',   3,      661,     0 ), /*   660 ser               */
+  S_ST( 'e',   3,      386,     0 ), /*   661 serv              */
+  S_ST( '_',   3,      663,     0 ), /*   662 server            */
+  S_ST( 'o',   3,      664,     0 ), /*   663 server_           */
+  S_ST( 'f',   3,      665,     0 ), /*   664 server_o          */
+  S_ST( 'f',   3,      666,     0 ), /*   665 server_of         */
+  S_ST( 's',   3,      667,     0 ), /*   666 server_off        */
+  S_ST( 'e',   3,      423,     0 ), /*   667 server_offs       */
+  S_ST( 't',   3,      669,   659 ), /*   668 se                */
+  S_ST( 'v',   3,      670,     0 ), /*   669 set               */
+  S_ST( 'a',   3,      387,     0 ), /*   670 setv              */
+  S_ST( 'i',   3,      673,   658 ), /*   671 s                 */
+  S_ST( 'g',   3,      388,     0 ), /*   672 si                */
+  S_ST( 'm',   3,      674,   672 ), /*   673 si                */
+  S_ST( 'u',   3,      675,     0 ), /*   674 sim               */
+  S_ST( 'l',   3,      676,     0 ), /*   675 simu              */
+  S_ST( 'a',   3,      677,     0 ), /*   676 simul             */
+  S_ST( 't',   3,      678,     0 ), /*   677 simula            */
+  S_ST( 'i',   3,      679,   420 ), /*   678 simulat           */
+  S_ST( 'o',   3,      680,     0 ), /*   679 simulati          */
+  S_ST( 'n',   3,      681,     0 ), /*   680 simulatio         */
+  S_ST( '_',   3,      682,     0 ), /*   681 simulation        */
+  S_ST( 'd',   3,      683,     0 ), /*   682 simulation_       */
+  S_ST( 'u',   3,      684,     0 ), /*   683 simulation_d      */
+  S_ST( 'r',   3,      685,     0 ), /*   684 simulation_du     */
+  S_ST( 'a',   3,      686,     0 ), /*   685 simulation_dur    */
+  S_ST( 't',   3,      687,     0 ), /*   686 simulation_dura   */
+  S_ST( 'i',   3,      688,     0 ), /*   687 simulation_durat  */
+  S_ST( 'o',   3,      422,     0 ), /*   688 simulation_durati */
+  S_ST( 'o',   3,      690,   671 ), /*   689 s                 */
+  S_ST( 'u',   3,      691,     0 ), /*   690 so                */
+  S_ST( 'r',   3,      692,     0 ), /*   691 sou               */
+  S_ST( 'c',   3,      389,     0 ), /*   692 sour              */
+  S_ST( 't',   3,      706,   689 ), /*   693 s                 */
+  S_ST( 'a',   3,      695,     0 ), /*   694 st                */
+  S_ST( 't',   3,      391,     0 ), /*   695 sta               */
+  S_ST( 'i',   3,      697,     0 ), /*   696 stat              */
+  S_ST( 's',   3,      698,     0 ), /*   697 stati             */
+  S_ST( 't',   3,      699,     0 ), /*   698 statis            */
+  S_ST( 'i',   3,      700,     0 ), /*   699 statist           */
+  S_ST( 'c',   3,      390,     0 ), /*   700 statisti          */
+  S_ST( 'd',   3,      702,     0 ), /*   701 stats             */
+  S_ST( 'i',   3,      392,     0 ), /*   702 statsd            */
+  S_ST( 'e',   3,      393,   694 ), /*   703 st                */
+  S_ST( 'o',   3,      705,     0 ), /*   704 step              */
+  S_ST( 'u',   3,      394,     0 ), /*   705 stepo             */
+  S_ST( 'r',   3,      707,   703 ), /*   706 st                */
+  S_ST( 'a',   3,      708,     0 ), /*   707 str               */
+  S_ST( 't',   3,      709,     0 ), /*   708 stra              */
+  S_ST( 'u',   3,      395,     0 ), /*   709 strat             */
+  S_ST( 'y',   3,      711,   693 ), /*   710 s                 */
+  S_ST( 's',   3,      712,     0 ), /*   711 sy                */
+  S_ST( 's',   3,      713,     0 ), /*   712 sys               */
+  S_ST( 't',   3,      714,     0 ), /*   713 syss              */
+  S_ST( 'a',   3,      715,     0 ), /*   714 sysst             */
+  S_ST( 't',   3,      397,     0 ), /*   715 syssta            */
+  S_ST( 't',   3,      742,   646 ), /*   716                   */
+  S_ST( 'i',   3,      728,     0 ), /*   717 t                 */
+  S_ST( 'c',   3,      398,     0 ), /*   718 ti                */
+  S_ST( 'm',   3,      721,   718 ), /*   719 ti                */
+  S_ST( 'e',   3,      400,     0 ), /*   720 tim               */
+  S_ST( 'i',   3,      722,   720 ), /*   721 tim               */
+  S_ST( 'n',   3,      723,     0 ), /*   722 timi              */
+  S_ST( 'g',   3,      724,     0 ), /*   723 timin             */
+  S_ST( 's',   3,      725,     0 ), /*   724 timing            */
+  S_ST( 't',   3,      726,     0 ), /*   725 timings           */
+  S_ST( 'a',   3,      727,     0 ), /*   726 timingst          */
+  S_ST( 't',   3,      401,     0 ), /*   727 timingsta         */
+  S_ST( 'n',   3,      729,   719 ), /*   728 ti                */
+  S_ST( 'k',   3,      730,     0 ), /*   729 tin               */
+  S_ST( 'e',   3,      402,     0 ), /*   730 tink              */
+  S_ST( 'o',   3,      403,   717 ), /*   731 t                 */
+  S_ST( 'r',   3,      734,   731 ), /*   732 t                 */
+  S_ST( 'a',   3,      404,     0 ), /*   733 tr                */
+  S_ST( 'u',   3,      735,   733 ), /*   734 tr                */
+  S_ST( 's',   3,      736,   405 ), /*   735 tru               */
+  S_ST( 't',   3,      737,     0 ), /*   736 trus              */
+  S_ST( 'e',   3,      738,     0 ), /*   737 trust             */
+  S_ST( 'd',   3,      739,     0 ), /*   738 truste            */
+  S_ST( 'k',   3,      740,     0 ), /*   739 trusted           */
+  S_ST( 'e',   3,      406,     0 ), /*   740 trustedk          */
+  S_ST( 't',   3,      407,   732 ), /*   741 t                 */
+  S_ST( 'y',   3,      743,   741 ), /*   742 t                 */
+  S_ST( 'p',   3,      408,     0 ), /*   743 ty                */
+  S_ST( 'u',   3,      745,   716 ), /*   744                   */
+  S_ST( 'n',   3,      751,     0 ), /*   745 u                 */
+  S_ST( 'c',   3,      747,     0 ), /*   746 un                */
+  S_ST( 'o',   3,      748,     0 ), /*   747 unc               */
+  S_ST( 'n',   3,      749,     0 ), /*   748 unco              */
+  S_ST( 'f',   3,      750,     0 ), /*   749 uncon             */
+  S_ST( 'i',   3,      409,     0 ), /*   750 unconf            */
+  S_ST( 'p',   3,      752,   746 ), /*   751 un                */
+  S_ST( 'e',   3,      753,     0 ), /*   752 unp               */
+  S_ST( 'e',   3,      410,     0 ), /*   753 unpe              */
+  S_ST( 'v',   3,      755,   744 ), /*   754                   */
+  S_ST( 'e',   3,      756,     0 ), /*   755 v                 */
+  S_ST( 'r',   3,      757,     0 ), /*   756 ve                */
+  S_ST( 's',   3,      758,     0 ), /*   757 ver               */
+  S_ST( 'i',   3,      759,     0 ), /*   758 vers              */
+  S_ST( 'o',   3,      411,     0 ), /*   759 versi             */
+  S_ST( 'w',   3,      767,   754 ), /*   760                   */
+  S_ST( 'a',   3,      762,     0 ), /*   761 w                 */
+  S_ST( 'n',   3,      763,     0 ), /*   762 wa                */
+  S_ST( 'd',   3,      764,     0 ), /*   763 wan               */
+  S_ST( 'e',   3,      426,     0 ), /*   764 wand              */
+  S_ST( 'e',   3,      766,   761 ), /*   765 w                 */
+  S_ST( 'e',   3,      413,     0 ), /*   766 we                */
+  S_ST( 'i',   3,      768,   765 ), /*   767 w                 */
+  S_ST( 'l',   3,      769,     0 ), /*   768 wi                */
+  S_ST( 'd',   3,      770,     0 ), /*   769 wil               */
+  S_ST( 'c',   3,      771,     0 ), /*   770 wild              */
+  S_ST( 'a',   3,      772,     0 ), /*   771 wildc             */
+  S_ST( 'r',   3,      414,     0 ), /*   772 wildca            */
+  S_ST( 'x',   3,      774,   760 ), /*   773                   */
+  S_ST( 'l',   3,      775,     0 ), /*   774 x                 */
+  S_ST( 'e',   3,      776,     0 ), /*   775 xl                */
+  S_ST( 'a',   3,      777,     0 ), /*   776 xle               */
+  S_ST( 'v',   3,      415,     0 ), /*   777 xlea              */
+  S_ST( 'y',   3,      779,   773 ), /*   778 [initial state]   */
+  S_ST( 'e',   3,      780,     0 ), /*   779 y                 */
+  S_ST( 'a',   3,      416,     0 )  /*   780 ye                */
 };
 
index 4c3a2a1ef009a5278c2c5cac789e59c3d47f634d..950001e2f6bb7c625ad47795ba4bcb76f8272c82 100644 (file)
  * the memory limit. Then we free memory by grabbing entries off the
  * tail for the MRU list, unlinking from the hash table, and
  * reinitializing.
+ *
+ * INC_MONLIST is the default allocation granularity in entries.
+ * INIT_MONLIST is the default initial allocation in entries.
  */
-/* INC_MONLIST is the allocation granularity in entries */
 #ifdef MONMEMINC               /* old name */
 # define       INC_MONLIST     MONMEMINC
 #elif !defined(INC_MONLIST)
-# define       INC_MONLIST     (4096 / sizeof(mon_entry))
+# define       INC_MONLIST     (4 * 1024 / sizeof(mon_entry))
+#endif
+#ifndef INIT_MONLIST
+# define       INIT_MONLIST    (16 * 1024 / sizeof(mon_entry))
 #endif
 
 /*
 #define        MON_HASH(addr)  NTP_HASH_ADDR(addr)
 
 /*
- * Pointers to the hash table, the MRU list and the count table.  Memory
- * for the hash and count tables is only allocated if monitoring is
- * turned on.
+ * Pointers to the hash table and the MRU list.  Memory for the hash
+ * table is allocated only if monitoring is enabled.
  */
-static mon_entry *mon_hash[MON_HASH_SIZE];  /* list ptrs */
-struct mon_data mon_mru_list;
+static mon_entry *     mon_hash[MON_HASH_SIZE];
+       mon_entry       mon_mru_list;   /* mru listhead */
 
 /*
- * List of free structures structures, and counters of free and total
+ * List of free structures structures, and counters of in-use and total
  * structures. The free structures are linked with the hash_next field.
  */
 static  mon_entry *mon_free;           /* free list or null if none */
-static u_int mon_mru_entries;          /* total structures allocated */
+       u_int mru_alloc;                /* mru list + free list count */
+       u_int mru_entries;              /* mru list count */
+       u_int mru_peakentries;          /* highest mru_entries seen */
+       u_int mru_initalloc = INIT_MONLIST;/* entries to preallocate */
+       u_int mru_incalloc = INC_MONLIST;/* allocation batch factor */
 static u_int mon_mem_increments;       /* times called malloc() */
 
 /*
@@ -80,17 +88,17 @@ u_char      ntp_minpoll = NTP_MINPOLL;      /* increment (log 2 s) */
  * Initialization state.  We may be monitoring, we may not.  If
  * we aren't, we may not even have allocated any memory yet.
  */
-       int     mon_enabled;            /* enable switch */
-       u_int   mon_mindepth = 600;     /* preempt above this */
-       int     mon_maxage = 64;        /* for entries older than */
-       u_int   mon_maxdepth =          /* MRU size hard limit */
+       u_int   mon_enabled;            /* enable switch */
+       u_int   mru_mindepth = 600;     /* preempt above this */
+       int     mru_maxage = 64;        /* for entries older than */
+       u_int   mru_maxdepth =          /* MRU size hard limit */
                4 * 1024 * 1024 / sizeof(mon_entry);
        int     mon_age = 3000;         /* preemption limit */
-static int     mon_have_memory;
 
-static void    mon_getmoremem(void);
-static void    remove_from_hash(mon_entry *);
-static void    mon_reclaim_entry(mon_entry *);
+static void            mon_getmoremem(void);
+static void            remove_from_hash(mon_entry *);
+static inline void     mon_free_entry(mon_entry *);
+static inline void     mon_reclaim_entry(mon_entry *);
 
 
 /*
@@ -104,6 +112,80 @@ init_mon(void)
         * until someone explicitly starts us.
         */
        mon_enabled = MON_OFF;
+       INIT_DLIST(mon_mru_list, mru);
+}
+
+
+/*
+ * remove_from_hash - removes an entry from the address hash table and
+ *                   decrements mru_entries.
+ */
+static void
+remove_from_hash(
+       mon_entry *mon
+       )
+{
+       u_int hash;
+       mon_entry *punlinked;
+
+       mru_entries--;
+       hash = MON_HASH(&mon->rmtadr);
+       UNLINK_SLIST(punlinked, mon_hash[hash], mon, hash_next,
+                    mon_entry);
+       NTP_ENSURE(punlinked == mon);
+}
+
+
+static inline void
+mon_free_entry(
+       mon_entry *m
+       )
+{
+       memset(m, 0, sizeof(*m));
+       LINK_SLIST(mon_free, m, hash_next);
+}
+
+
+/*
+ * mon_reclaim_entry - Remove an entry from the MRU list and from the
+ *                    hash array, then zero-initialize it.  Indirectly
+ *                    decrements mru_entries.
+
+ * The entry is prepared to be reused.  Before return, in
+ * remove_from_hash(), mru_entries is decremented.  It is the caller's
+ * responsibility to increment it again.
+ */
+static inline void
+mon_reclaim_entry(
+       mon_entry *m
+       )
+{
+       UNLINK_DLIST(m, mru);
+       remove_from_hash(m);
+       memset(m, 0, sizeof(*m));
+}
+
+
+/*
+ * mon_getmoremem - get more memory and put it on the free list
+ */
+static void
+mon_getmoremem(void)
+{
+       mon_entry *chunk;
+       mon_entry *mon;
+       u_int entries;
+
+       entries = (0 == mon_mem_increments)
+                     ? mru_initalloc
+                     : mru_incalloc;
+
+       chunk = emalloc(entries * sizeof(*chunk));
+       for (mon = chunk + entries - 1; mon >= chunk; mon--)
+               mon_free_entry(mon);
+
+       mru_alloc += entries;
+       mon_mem_increments++;
 }
 
 
@@ -121,10 +203,9 @@ mon_start(
                mon_enabled |= mode;
                return;
        }
-       if (!mon_have_memory)
+       if (0 == mon_mem_increments)
                mon_getmoremem();
 
-       INIT_DLIST(mon_mru_list, mru);
        mon_enabled = mode;
 }
 
@@ -137,8 +218,7 @@ mon_stop(
        int mode
        )
 {
-       mon_entry *md;
-       int i;
+       mon_entry *mon;
 
        if (MON_OFF == mon_enabled)
                return;
@@ -150,19 +230,24 @@ mon_stop(
                return;
        
        /*
-        * Put everything back on the free list
+        * Move everything on the MRU list to the free list quickly,
+        * without bothering to remove each from either the MRU list or
+        * the hash table.
         */
-       for (i = 0; i < MON_HASH_SIZE; i++) {
-               while (mon_hash[i] != NULL) {
-                       UNLINK_HEAD_SLIST(md, mon_hash[i], hash_next);
-                       memset(md, 0, sizeof(*md));
-                       LINK_SLIST(mon_free, md, hash_next);
-               }
-       }
+       ITER_DLIST_BEGIN(mon_mru_list, mon, mru, mon_entry)
+               mon_free_entry(mon);
+       ITER_DLIST_END()
+
+       /* empty the MRU list and hash table. */
+       mru_entries = 0;
        INIT_DLIST(mon_mru_list, mru);
+       memset(&mon_hash, 0, sizeof(mon_hash));
 }
 
-
+/*
+ * mon_clearinterface -- remove mru entries referring to a local address
+ *                      which is going away.
+ */
 void
 mon_clearinterface(
        struct interface *lcladr
@@ -172,31 +257,18 @@ mon_clearinterface(
 
        /* iterate mon over mon_mru_list */
        ITER_DLIST_BEGIN(mon_mru_list, mon, mru, mon_entry)
-
                if (mon->lcladr == lcladr) {
-                       /* remove from mru list and hash */
+                       /* remove from mru list */
                        UNLINK_DLIST(mon, mru);
+                       /* remove from hash list, adjust mru_entries */
                        remove_from_hash(mon);
                        /* put on free list */
-                       memset(mon, 0, sizeof(*mon));
-                       LINK_SLIST(mon_free, mon, hash_next);
+                       mon_free_entry(mon);
                }
-
        ITER_DLIST_END()
 }
 
 
-static void
-mon_reclaim_entry(
-       mon_entry *m
-       )
-{
-       UNLINK_DLIST(m, mru);
-       remove_from_hash(m);
-       memset(m, 0, sizeof(*m));
-}
-
-
 /*
  * ntp_monitor - record stats about this packet
  *
@@ -231,9 +303,6 @@ ntp_monitor(
                int     leak;           /* new headway */
                int     limit;          /* average threshold */
 
-               /*
-                * Match address only to conserve MRU size.
-                */
                if (SOCK_EQ(&md->rmtadr, &addr)) {
                        interval = current_time - md->lasttime;
                        md->lasttime = current_time;
@@ -297,34 +366,45 @@ ntp_monitor(
         * If we got here, this is the first we've heard of this
         * guy.  Get him some memory, either from the free list
         * or from the tail of the MRU list.
-        * Four ntp.conf "mru" knobs come into play determining the
-        * depth (or count) of the MRU list:
-        * - mon_mindepth ("mru mindepth") is a floor beneath which
+        * The following ntp.conf "mru" knobs come into play determining
+        * the depth (or count) of the MRU list:
+        * - mru_mindepth ("mru mindepth") is a floor beneath which
         *   entries are kept without regard to their age.  The
         *   default is 600 which matches the longtime implementation
         *   limit on the total number of entries.
-        * - mon_maxage ("mru maxage") is a ceiling on the age in
+        * - mru_maxage ("mru maxage") is a ceiling on the age in
         *   seconds of entries.  Entries older than this are
         *   reclaimed once mon_mindepth is exceeded.  64s default.
-        * - mon_maxdepth ("mru maxdepth") is a hard limit on the
+        *   Note that entries older than this can easily survive
+        *   as they are reclaimed only as needed.
+        * - mru_maxdepth ("mru maxdepth") is a hard limit on the
         *   number of entries.
-        * - "mru maxmem" sets mon_maxdepth to the number of entries
+        * - "mru maxmem" sets mru_maxdepth to the number of entries
         *   which fit in the given number of kilobytes.  4096 default.
+        * - mru_initalloc ("mru initalloc" sets the count of the
+        *   initial allocation of MRU entries.
+        * - "mru initmem" sets mru_initalloc in units of kilobytes.
+        *   The default is 16.
+        * - mru_incalloc ("mru incalloc" sets the number of entries to
+        *   allocate on-demand each time the free list is empty.
+        * - "mru incmem" sets mru_incalloc in units of kilobytes.
+        *   The default is 4.
         * Whichever of "mru maxmem" or "mru maxdepth" occurs last in
-        * ntp.conf controls.
+        * ntp.conf controls.  Similarly for "mru initalloc" and "mru
+        * initmem", and for "mru incalloc" and "mru incmem".
         */
-       if (NULL == mon_free && mon_mru_entries < mon_mindepth) {
+       if (NULL == mon_free && mru_alloc < mru_mindepth) {
                mon_getmoremem();
                UNLINK_HEAD_SLIST(md, mon_free, hash_next);
        } else {
                tail = TAIL_DLIST(mon_mru_list, mru);
-               /* note -1 is legal for mon_maxage (disables) */
-               if (tail != NULL && mon_maxage < (int)(current_time -
+               /* note -1 is legal for mru_maxage (disables) */
+               if (tail != NULL && mru_maxage < (int)(current_time -
                    tail->lasttime)) {
                        mon_reclaim_entry(tail);
                        md = tail;
-               } else if (mon_free != NULL || mon_mru_entries <
-                          mon_maxdepth) {
+               } else if (mon_free != NULL || mru_alloc <
+                          mru_maxdepth) {
                        if (NULL == mon_free)
                                mon_getmoremem();
                        UNLINK_HEAD_SLIST(md, mon_free, hash_next);
@@ -344,7 +424,10 @@ ntp_monitor(
        /*
         * Got one, initialize it
         */
-       md->lasttime = md->firsttime = current_time;
+       mru_entries++;
+       mru_peakentries = max(mru_peakentries, mru_entries);
+       md->lasttime = current_time;
+       md->firsttime = current_time;
        md->count = 1;
        md->flags = flags & ~RES_LIMITED;
        md->leak = 0;
@@ -367,37 +450,3 @@ ntp_monitor(
 }
 
 
-/*
- * mon_getmoremem - get more memory and put it on the free list
- */
-static void
-mon_getmoremem(void)
-{
-       mon_entry *md;
-       int i;
-
-       md = emalloc(INC_MONLIST * sizeof(*md));
-       memset(md, 0, INC_MONLIST * sizeof(*md));
-
-       for (i = INC_MONLIST - 1; i >= 0; i--)
-               LINK_SLIST(mon_free, &md[i], hash_next);
-
-       mon_mru_entries += INC_MONLIST;
-       mon_mem_increments++;
-       mon_have_memory = 1;
-}
-
-
-static void
-remove_from_hash(
-       mon_entry *mon
-       )
-{
-       u_int hash;
-       mon_entry *punlinked;
-
-       hash = MON_HASH(&mon->rmtadr);
-       UNLINK_SLIST(punlinked, mon_hash[hash], mon, hash_next,
-                    mon_entry);
-       NTP_ENSURE(punlinked == mon);
-}
index d3c1bc38cb5b4d57e2554484bc225f422abf36d8..0bc907c007729752bee809db87ebdf387a25baa4 100644 (file)
      T_Iburst = 304,
      T_Ident = 305,
      T_Ignore = 306,
-     T_Includefile = 307,
-     T_Integer = 308,
-     T_Interface = 309,
-     T_Ipv4 = 310,
-     T_Ipv4_flag = 311,
-     T_Ipv6 = 312,
-     T_Ipv6_flag = 313,
-     T_Kernel = 314,
-     T_Key = 315,
-     T_Keys = 316,
-     T_Keysdir = 317,
-     T_Kod = 318,
-     T_Mssntp = 319,
-     T_Leapfile = 320,
-     T_Limited = 321,
-     T_Link = 322,
-     T_Listen = 323,
-     T_Logconfig = 324,
-     T_Logfile = 325,
-     T_Loopstats = 326,
-     T_Lowpriotrap = 327,
-     T_Manycastclient = 328,
-     T_Manycastserver = 329,
-     T_Mask = 330,
-     T_Maxage = 331,
-     T_Maxclock = 332,
-     T_Maxdepth = 333,
-     T_Maxdist = 334,
-     T_Maxmem = 335,
-     T_Maxpoll = 336,
-     T_Minclock = 337,
-     T_Mindepth = 338,
-     T_Mindist = 339,
-     T_Minimum = 340,
-     T_Minpoll = 341,
-     T_Minsane = 342,
-     T_Mode = 343,
-     T_Monitor = 344,
-     T_Month = 345,
-     T_Mru = 346,
-     T_Multicastclient = 347,
-     T_Nic = 348,
-     T_Nolink = 349,
-     T_Nomodify = 350,
-     T_None = 351,
-     T_Nopeer = 352,
-     T_Noquery = 353,
-     T_Noselect = 354,
-     T_Noserve = 355,
-     T_Notrap = 356,
-     T_Notrust = 357,
-     T_Ntp = 358,
-     T_Ntpport = 359,
-     T_NtpSignDsocket = 360,
-     T_Orphan = 361,
-     T_Panic = 362,
-     T_Peer = 363,
-     T_Peerstats = 364,
-     T_Phone = 365,
-     T_Pid = 366,
-     T_Pidfile = 367,
-     T_Pool = 368,
-     T_Port = 369,
-     T_Preempt = 370,
-     T_Prefer = 371,
-     T_Protostats = 372,
-     T_Pw = 373,
-     T_Qos = 374,
-     T_Randfile = 375,
-     T_Rawstats = 376,
-     T_Refid = 377,
-     T_Requestkey = 378,
-     T_Restrict = 379,
-     T_Revoke = 380,
-     T_Saveconfigdir = 381,
-     T_Server = 382,
-     T_Setvar = 383,
-     T_Sign = 384,
-     T_Source = 385,
-     T_Statistics = 386,
-     T_Stats = 387,
-     T_Statsdir = 388,
-     T_Step = 389,
-     T_Stepout = 390,
-     T_Stratum = 391,
-     T_String = 392,
-     T_Sysstats = 393,
-     T_Tick = 394,
-     T_Time1 = 395,
-     T_Time2 = 396,
-     T_Timingstats = 397,
-     T_Tinker = 398,
-     T_Tos = 399,
-     T_Trap = 400,
-     T_True = 401,
-     T_Trustedkey = 402,
-     T_Ttl = 403,
-     T_Type = 404,
-     T_Unconfig = 405,
-     T_Unpeer = 406,
-     T_Version = 407,
-     T_WanderThreshold = 408,
-     T_Week = 409,
-     T_Wildcard = 410,
-     T_Xleave = 411,
-     T_Year = 412,
-     T_Flag = 413,
-     T_Void = 414,
-     T_EOC = 415,
-     T_Simulate = 416,
-     T_Beep_Delay = 417,
-     T_Sim_Duration = 418,
-     T_Server_Offset = 419,
-     T_Duration = 420,
-     T_Freq_Offset = 421,
-     T_Wander = 422,
-     T_Jitter = 423,
-     T_Prop_Delay = 424,
-     T_Proc_Delay = 425
+     T_Incalloc = 307,
+     T_Incmem = 308,
+     T_Initalloc = 309,
+     T_Initmem = 310,
+     T_Includefile = 311,
+     T_Integer = 312,
+     T_Interface = 313,
+     T_Ipv4 = 314,
+     T_Ipv4_flag = 315,
+     T_Ipv6 = 316,
+     T_Ipv6_flag = 317,
+     T_Kernel = 318,
+     T_Key = 319,
+     T_Keys = 320,
+     T_Keysdir = 321,
+     T_Kod = 322,
+     T_Mssntp = 323,
+     T_Leapfile = 324,
+     T_Limited = 325,
+     T_Link = 326,
+     T_Listen = 327,
+     T_Logconfig = 328,
+     T_Logfile = 329,
+     T_Loopstats = 330,
+     T_Lowpriotrap = 331,
+     T_Manycastclient = 332,
+     T_Manycastserver = 333,
+     T_Mask = 334,
+     T_Maxage = 335,
+     T_Maxclock = 336,
+     T_Maxdepth = 337,
+     T_Maxdist = 338,
+     T_Maxmem = 339,
+     T_Maxpoll = 340,
+     T_Minclock = 341,
+     T_Mindepth = 342,
+     T_Mindist = 343,
+     T_Minimum = 344,
+     T_Minpoll = 345,
+     T_Minsane = 346,
+     T_Mode = 347,
+     T_Monitor = 348,
+     T_Month = 349,
+     T_Mru = 350,
+     T_Multicastclient = 351,
+     T_Nic = 352,
+     T_Nolink = 353,
+     T_Nomodify = 354,
+     T_None = 355,
+     T_Nopeer = 356,
+     T_Noquery = 357,
+     T_Noselect = 358,
+     T_Noserve = 359,
+     T_Notrap = 360,
+     T_Notrust = 361,
+     T_Ntp = 362,
+     T_Ntpport = 363,
+     T_NtpSignDsocket = 364,
+     T_Orphan = 365,
+     T_Panic = 366,
+     T_Peer = 367,
+     T_Peerstats = 368,
+     T_Phone = 369,
+     T_Pid = 370,
+     T_Pidfile = 371,
+     T_Pool = 372,
+     T_Port = 373,
+     T_Preempt = 374,
+     T_Prefer = 375,
+     T_Protostats = 376,
+     T_Pw = 377,
+     T_Qos = 378,
+     T_Randfile = 379,
+     T_Rawstats = 380,
+     T_Refid = 381,
+     T_Requestkey = 382,
+     T_Restrict = 383,
+     T_Revoke = 384,
+     T_Saveconfigdir = 385,
+     T_Server = 386,
+     T_Setvar = 387,
+     T_Sign = 388,
+     T_Source = 389,
+     T_Statistics = 390,
+     T_Stats = 391,
+     T_Statsdir = 392,
+     T_Step = 393,
+     T_Stepout = 394,
+     T_Stratum = 395,
+     T_String = 396,
+     T_Sysstats = 397,
+     T_Tick = 398,
+     T_Time1 = 399,
+     T_Time2 = 400,
+     T_Timingstats = 401,
+     T_Tinker = 402,
+     T_Tos = 403,
+     T_Trap = 404,
+     T_True = 405,
+     T_Trustedkey = 406,
+     T_Ttl = 407,
+     T_Type = 408,
+     T_Unconfig = 409,
+     T_Unpeer = 410,
+     T_Version = 411,
+     T_WanderThreshold = 412,
+     T_Week = 413,
+     T_Wildcard = 414,
+     T_Xleave = 415,
+     T_Year = 416,
+     T_Flag = 417,
+     T_Void = 418,
+     T_EOC = 419,
+     T_Simulate = 420,
+     T_Beep_Delay = 421,
+     T_Sim_Duration = 422,
+     T_Server_Offset = 423,
+     T_Duration = 424,
+     T_Freq_Offset = 425,
+     T_Wander = 426,
+     T_Jitter = 427,
+     T_Prop_Delay = 428,
+     T_Proc_Delay = 429
    };
 #endif
 /* Tokens.  */
 #define T_Iburst 304
 #define T_Ident 305
 #define T_Ignore 306
-#define T_Includefile 307
-#define T_Integer 308
-#define T_Interface 309
-#define T_Ipv4 310
-#define T_Ipv4_flag 311
-#define T_Ipv6 312
-#define T_Ipv6_flag 313
-#define T_Kernel 314
-#define T_Key 315
-#define T_Keys 316
-#define T_Keysdir 317
-#define T_Kod 318
-#define T_Mssntp 319
-#define T_Leapfile 320
-#define T_Limited 321
-#define T_Link 322
-#define T_Listen 323
-#define T_Logconfig 324
-#define T_Logfile 325
-#define T_Loopstats 326
-#define T_Lowpriotrap 327
-#define T_Manycastclient 328
-#define T_Manycastserver 329
-#define T_Mask 330
-#define T_Maxage 331
-#define T_Maxclock 332
-#define T_Maxdepth 333
-#define T_Maxdist 334
-#define T_Maxmem 335
-#define T_Maxpoll 336
-#define T_Minclock 337
-#define T_Mindepth 338
-#define T_Mindist 339
-#define T_Minimum 340
-#define T_Minpoll 341
-#define T_Minsane 342
-#define T_Mode 343
-#define T_Monitor 344
-#define T_Month 345
-#define T_Mru 346
-#define T_Multicastclient 347
-#define T_Nic 348
-#define T_Nolink 349
-#define T_Nomodify 350
-#define T_None 351
-#define T_Nopeer 352
-#define T_Noquery 353
-#define T_Noselect 354
-#define T_Noserve 355
-#define T_Notrap 356
-#define T_Notrust 357
-#define T_Ntp 358
-#define T_Ntpport 359
-#define T_NtpSignDsocket 360
-#define T_Orphan 361
-#define T_Panic 362
-#define T_Peer 363
-#define T_Peerstats 364
-#define T_Phone 365
-#define T_Pid 366
-#define T_Pidfile 367
-#define T_Pool 368
-#define T_Port 369
-#define T_Preempt 370
-#define T_Prefer 371
-#define T_Protostats 372
-#define T_Pw 373
-#define T_Qos 374
-#define T_Randfile 375
-#define T_Rawstats 376
-#define T_Refid 377
-#define T_Requestkey 378
-#define T_Restrict 379
-#define T_Revoke 380
-#define T_Saveconfigdir 381
-#define T_Server 382
-#define T_Setvar 383
-#define T_Sign 384
-#define T_Source 385
-#define T_Statistics 386
-#define T_Stats 387
-#define T_Statsdir 388
-#define T_Step 389
-#define T_Stepout 390
-#define T_Stratum 391
-#define T_String 392
-#define T_Sysstats 393
-#define T_Tick 394
-#define T_Time1 395
-#define T_Time2 396
-#define T_Timingstats 397
-#define T_Tinker 398
-#define T_Tos 399
-#define T_Trap 400
-#define T_True 401
-#define T_Trustedkey 402
-#define T_Ttl 403
-#define T_Type 404
-#define T_Unconfig 405
-#define T_Unpeer 406
-#define T_Version 407
-#define T_WanderThreshold 408
-#define T_Week 409
-#define T_Wildcard 410
-#define T_Xleave 411
-#define T_Year 412
-#define T_Flag 413
-#define T_Void 414
-#define T_EOC 415
-#define T_Simulate 416
-#define T_Beep_Delay 417
-#define T_Sim_Duration 418
-#define T_Server_Offset 419
-#define T_Duration 420
-#define T_Freq_Offset 421
-#define T_Wander 422
-#define T_Jitter 423
-#define T_Prop_Delay 424
-#define T_Proc_Delay 425
+#define T_Incalloc 307
+#define T_Incmem 308
+#define T_Initalloc 309
+#define T_Initmem 310
+#define T_Includefile 311
+#define T_Integer 312
+#define T_Interface 313
+#define T_Ipv4 314
+#define T_Ipv4_flag 315
+#define T_Ipv6 316
+#define T_Ipv6_flag 317
+#define T_Kernel 318
+#define T_Key 319
+#define T_Keys 320
+#define T_Keysdir 321
+#define T_Kod 322
+#define T_Mssntp 323
+#define T_Leapfile 324
+#define T_Limited 325
+#define T_Link 326
+#define T_Listen 327
+#define T_Logconfig 328
+#define T_Logfile 329
+#define T_Loopstats 330
+#define T_Lowpriotrap 331
+#define T_Manycastclient 332
+#define T_Manycastserver 333
+#define T_Mask 334
+#define T_Maxage 335
+#define T_Maxclock 336
+#define T_Maxdepth 337
+#define T_Maxdist 338
+#define T_Maxmem 339
+#define T_Maxpoll 340
+#define T_Minclock 341
+#define T_Mindepth 342
+#define T_Mindist 343
+#define T_Minimum 344
+#define T_Minpoll 345
+#define T_Minsane 346
+#define T_Mode 347
+#define T_Monitor 348
+#define T_Month 349
+#define T_Mru 350
+#define T_Multicastclient 351
+#define T_Nic 352
+#define T_Nolink 353
+#define T_Nomodify 354
+#define T_None 355
+#define T_Nopeer 356
+#define T_Noquery 357
+#define T_Noselect 358
+#define T_Noserve 359
+#define T_Notrap 360
+#define T_Notrust 361
+#define T_Ntp 362
+#define T_Ntpport 363
+#define T_NtpSignDsocket 364
+#define T_Orphan 365
+#define T_Panic 366
+#define T_Peer 367
+#define T_Peerstats 368
+#define T_Phone 369
+#define T_Pid 370
+#define T_Pidfile 371
+#define T_Pool 372
+#define T_Port 373
+#define T_Preempt 374
+#define T_Prefer 375
+#define T_Protostats 376
+#define T_Pw 377
+#define T_Qos 378
+#define T_Randfile 379
+#define T_Rawstats 380
+#define T_Refid 381
+#define T_Requestkey 382
+#define T_Restrict 383
+#define T_Revoke 384
+#define T_Saveconfigdir 385
+#define T_Server 386
+#define T_Setvar 387
+#define T_Sign 388
+#define T_Source 389
+#define T_Statistics 390
+#define T_Stats 391
+#define T_Statsdir 392
+#define T_Step 393
+#define T_Stepout 394
+#define T_Stratum 395
+#define T_String 396
+#define T_Sysstats 397
+#define T_Tick 398
+#define T_Time1 399
+#define T_Time2 400
+#define T_Timingstats 401
+#define T_Tinker 402
+#define T_Tos 403
+#define T_Trap 404
+#define T_True 405
+#define T_Trustedkey 406
+#define T_Ttl 407
+#define T_Type 408
+#define T_Unconfig 409
+#define T_Unpeer 410
+#define T_Version 411
+#define T_WanderThreshold 412
+#define T_Week 413
+#define T_Wildcard 414
+#define T_Xleave 415
+#define T_Year 416
+#define T_Flag 417
+#define T_Void 418
+#define T_EOC 419
+#define T_Simulate 420
+#define T_Beep_Delay 421
+#define T_Sim_Duration 422
+#define T_Server_Offset 423
+#define T_Duration 424
+#define T_Freq_Offset 425
+#define T_Wander 426
+#define T_Jitter 427
+#define T_Prop_Delay 428
+#define T_Proc_Delay 429
 
 
 
@@ -496,7 +504,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 500 "ntp_parser.c"
+#line 508 "ntp_parser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -508,7 +516,7 @@ typedef union YYSTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 512 "ntp_parser.c"
+#line 520 "ntp_parser.c"
 
 #ifdef short
 # undef short
@@ -721,22 +729,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  181
+#define YYFINAL  185
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   699
+#define YYLAST   704
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  174
+#define YYNTOKENS  178
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  70
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  253
+#define YYNRULES  257
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  398
+#define YYNSTATES  406
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   425
+#define YYMAXUTOK   429
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -750,13 +758,13 @@ static const yytype_uint8 yytranslate[] =
        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,   171,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   175,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   172,     2,   173,     2,     2,     2,     2,
+       2,     2,     2,   176,     2,   177,     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,
@@ -786,7 +794,7 @@ static const yytype_uint8 yytranslate[] =
      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
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174
 };
 
 #if YYDEBUG
@@ -809,122 +817,123 @@ static const yytype_uint16 yyprhs[] =
      307,   312,   316,   317,   320,   322,   324,   326,   328,   330,
      332,   334,   336,   338,   340,   342,   344,   346,   348,   351,
      353,   356,   359,   362,   365,   367,   370,   373,   376,   379,
-     383,   386,   388,   391,   394,   397,   400,   403,   406,   409,
-     412,   415,   418,   421,   423,   425,   427,   429,   431,   433,
-     435,   437,   440,   443,   445,   448,   451,   454,   457,   460,
-     463,   466,   468,   472,   474,   477,   480,   483,   486,   489,
-     492,   495,   498,   501,   504,   507,   510,   514,   517,   520,
-     522,   525,   526,   531,   535,   538,   540,   543,   546,   549,
-     551,   553,   557,   561,   563,   565,   567,   569,   571,   573,
-     575,   577,   579,   582,   584,   587,   589,   592,   594,   596,
-     598,   600,   602,   604,   610,   612,   616,   619,   623,   627,
-     630,   632,   638,   643,   647,   650,   652,   659,   663,   666,
-     670,   674,   678,   682
+     382,   385,   388,   391,   395,   398,   400,   403,   406,   409,
+     412,   415,   418,   421,   424,   427,   430,   433,   435,   437,
+     439,   441,   443,   445,   447,   449,   452,   455,   457,   460,
+     463,   466,   469,   472,   475,   478,   480,   484,   486,   489,
+     492,   495,   498,   501,   504,   507,   510,   513,   516,   519,
+     522,   526,   529,   532,   534,   537,   538,   543,   547,   550,
+     552,   555,   558,   561,   563,   565,   569,   573,   575,   577,
+     579,   581,   583,   585,   587,   589,   591,   594,   596,   599,
+     601,   604,   606,   608,   610,   612,   614,   616,   622,   624,
+     628,   631,   635,   639,   642,   644,   650,   655,   659,   662,
+     664,   671,   675,   678,   682,   686,   690,   694
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     175,     0,    -1,   176,    -1,   176,   177,   160,    -1,   177,
-     160,    -1,     1,   160,    -1,    -1,   178,    -1,   184,    -1,
-     186,    -1,   187,    -1,   194,    -1,   200,    -1,   191,    -1,
-     207,    -1,   210,    -1,   213,    -1,   216,    -1,   232,    -1,
-     179,   180,   182,    -1,   179,   180,    -1,   127,    -1,   113,
-      -1,   108,    -1,    13,    -1,    73,    -1,   181,    -1,    56,
-     137,    -1,    58,   137,    -1,   137,    -1,   182,   183,    -1,
-     183,    -1,     7,    -1,    12,   231,    -1,    16,    -1,    49,
-      -1,    60,    53,    -1,    86,    53,    -1,    81,    53,    -1,
-      99,    -1,   115,    -1,   116,    -1,   146,    -1,   156,    -1,
-     148,    53,    -1,    88,    53,    -1,   152,    53,    -1,   185,
-     180,    -1,   150,    -1,   151,    -1,    14,    -1,    74,   229,
-      -1,    92,   229,    -1,     8,    53,    -1,    22,    53,    -1,
-      23,   188,    -1,    61,   137,    -1,    62,   137,    -1,   123,
-      53,    -1,   125,    53,    -1,   147,   227,    -1,   105,   137,
-      -1,   189,    -1,    -1,   189,   190,    -1,   190,    -1,    47,
-     137,    -1,    50,   137,    -1,   118,   137,    -1,   120,   137,
-      -1,   129,   137,    -1,    27,   137,    -1,   125,    53,    -1,
-     144,   192,    -1,   192,   193,    -1,   193,    -1,    19,    53,
-      -1,    44,    53,    -1,    21,   230,    -1,   106,    53,    -1,
-      84,   231,    -1,    79,   231,    -1,    82,   231,    -1,    77,
-     231,    -1,    87,    53,    -1,    11,    53,    -1,   131,   195,
-      -1,   133,   137,    -1,    38,   196,   197,    -1,   195,   196,
-      -1,   196,    -1,    20,    -1,    24,    -1,    71,    -1,   109,
-      -1,   121,    -1,   138,    -1,   142,    -1,   117,    -1,   197,
-     198,    -1,   198,    -1,    37,   137,    -1,   149,   199,    -1,
-      67,    -1,    94,    -1,    34,    -1,    28,    -1,    96,    -1,
-     111,    -1,    25,    -1,   154,    -1,    90,    -1,   157,    -1,
-       3,    -1,    29,   203,    -1,    91,   205,    -1,   124,   180,
-     201,    -1,   124,   181,    75,   181,   201,    -1,   124,    26,
-     201,    -1,   124,    56,    26,   201,    -1,   124,    58,    26,
-     201,    -1,   124,   130,   201,    -1,    -1,   201,   202,    -1,
-      43,    -1,    51,    -1,    63,    -1,    64,    -1,    66,    -1,
-      72,    -1,    95,    -1,    97,    -1,    98,    -1,   100,    -1,
-     101,    -1,   102,    -1,   104,    -1,   152,    -1,   203,   204,
-      -1,   204,    -1,     9,    53,    -1,    85,    53,    -1,    89,
-      53,    -1,   205,   206,    -1,   206,    -1,    83,    53,    -1,
-      76,    53,    -1,    78,    53,    -1,    80,    53,    -1,    46,
-     180,   208,    -1,   208,   209,    -1,   209,    -1,   140,   231,
-      -1,   141,   231,    -1,   136,    53,    -1,   122,   137,    -1,
-      39,   230,    -1,    40,   230,    -1,    41,   230,    -1,    42,
-     230,    -1,    34,   211,    -1,    28,   211,    -1,   211,   212,
-      -1,   212,    -1,     6,    -1,    10,    -1,    17,    -1,    59,
-      -1,    89,    -1,   103,    -1,   132,    -1,   143,   214,    -1,
-     214,   215,    -1,   215,    -1,     5,   231,    -1,    30,   231,
-      -1,    45,   231,    -1,    48,   231,    -1,   107,   231,    -1,
-     134,   231,    -1,   135,   231,    -1,   223,    -1,    52,   137,
-     177,    -1,    35,    -1,    15,   231,    -1,    18,    53,    -1,
-     139,   231,    -1,    32,   217,    -1,    65,   137,    -1,   112,
-     137,    -1,    70,   137,    -1,    69,   221,    -1,   110,   228,
-      -1,   126,   137,    -1,   128,   218,    -1,   145,   181,    -1,
-     145,   181,   219,    -1,   148,   227,    -1,   119,   137,    -1,
-     137,    -1,   137,    31,    -1,    -1,   137,   171,   137,    26,
-      -1,   137,   171,   137,    -1,   219,   220,    -1,   220,    -1,
-     114,    53,    -1,    54,   181,    -1,   221,   222,    -1,   222,
-      -1,   137,    -1,   224,   226,   225,    -1,   224,   226,   137,
-      -1,    54,    -1,    93,    -1,     4,    -1,    55,    -1,    57,
-      -1,   155,    -1,    68,    -1,    51,    -1,    33,    -1,   227,
-      53,    -1,    53,    -1,   228,   137,    -1,   137,    -1,   229,
-     180,    -1,   180,    -1,    53,    -1,   146,    -1,    36,    -1,
-      53,    -1,    31,    -1,   233,   172,   234,   236,   173,    -1,
-     161,    -1,   234,   235,   160,    -1,   235,   160,    -1,   162,
-     171,   231,    -1,   163,   171,   231,    -1,   236,   237,    -1,
-     237,    -1,   239,   172,   238,   240,   173,    -1,   164,   171,
-     231,   160,    -1,   127,   171,   180,    -1,   240,   241,    -1,
-     241,    -1,   165,   171,   231,   172,   242,   173,    -1,   242,
-     243,   160,    -1,   243,   160,    -1,   166,   171,   231,    -1,
-     167,   171,   231,    -1,   168,   171,   231,    -1,   169,   171,
-     231,    -1,   170,   171,   231,    -1
+     179,     0,    -1,   180,    -1,   180,   181,   164,    -1,   181,
+     164,    -1,     1,   164,    -1,    -1,   182,    -1,   188,    -1,
+     190,    -1,   191,    -1,   198,    -1,   204,    -1,   195,    -1,
+     211,    -1,   214,    -1,   217,    -1,   220,    -1,   236,    -1,
+     183,   184,   186,    -1,   183,   184,    -1,   131,    -1,   117,
+      -1,   112,    -1,    13,    -1,    77,    -1,   185,    -1,    60,
+     141,    -1,    62,   141,    -1,   141,    -1,   186,   187,    -1,
+     187,    -1,     7,    -1,    12,   235,    -1,    16,    -1,    49,
+      -1,    64,    57,    -1,    90,    57,    -1,    85,    57,    -1,
+     103,    -1,   119,    -1,   120,    -1,   150,    -1,   160,    -1,
+     152,    57,    -1,    92,    57,    -1,   156,    57,    -1,   189,
+     184,    -1,   154,    -1,   155,    -1,    14,    -1,    78,   233,
+      -1,    96,   233,    -1,     8,    57,    -1,    22,    57,    -1,
+      23,   192,    -1,    65,   141,    -1,    66,   141,    -1,   127,
+      57,    -1,   129,    57,    -1,   151,   231,    -1,   109,   141,
+      -1,   193,    -1,    -1,   193,   194,    -1,   194,    -1,    47,
+     141,    -1,    50,   141,    -1,   122,   141,    -1,   124,   141,
+      -1,   133,   141,    -1,    27,   141,    -1,   129,    57,    -1,
+     148,   196,    -1,   196,   197,    -1,   197,    -1,    19,    57,
+      -1,    44,    57,    -1,    21,   234,    -1,   110,    57,    -1,
+      88,   235,    -1,    83,   235,    -1,    86,   235,    -1,    81,
+     235,    -1,    91,    57,    -1,    11,    57,    -1,   135,   199,
+      -1,   137,   141,    -1,    38,   200,   201,    -1,   199,   200,
+      -1,   200,    -1,    20,    -1,    24,    -1,    75,    -1,   113,
+      -1,   125,    -1,   142,    -1,   146,    -1,   121,    -1,   201,
+     202,    -1,   202,    -1,    37,   141,    -1,   153,   203,    -1,
+      71,    -1,    98,    -1,    34,    -1,    28,    -1,   100,    -1,
+     115,    -1,    25,    -1,   158,    -1,    94,    -1,   161,    -1,
+       3,    -1,    29,   207,    -1,    95,   209,    -1,   128,   184,
+     205,    -1,   128,   185,    79,   185,   205,    -1,   128,    26,
+     205,    -1,   128,    60,    26,   205,    -1,   128,    62,    26,
+     205,    -1,   128,   134,   205,    -1,    -1,   205,   206,    -1,
+      43,    -1,    51,    -1,    67,    -1,    68,    -1,    70,    -1,
+      76,    -1,    99,    -1,   101,    -1,   102,    -1,   104,    -1,
+     105,    -1,   106,    -1,   108,    -1,   156,    -1,   207,   208,
+      -1,   208,    -1,     9,    57,    -1,    89,    57,    -1,    93,
+      57,    -1,   209,   210,    -1,   210,    -1,    52,    57,    -1,
+      53,    57,    -1,    54,    57,    -1,    55,    57,    -1,    80,
+      57,    -1,    82,    57,    -1,    84,    57,    -1,    87,    57,
+      -1,    46,   184,   212,    -1,   212,   213,    -1,   213,    -1,
+     144,   235,    -1,   145,   235,    -1,   140,    57,    -1,   126,
+     141,    -1,    39,   234,    -1,    40,   234,    -1,    41,   234,
+      -1,    42,   234,    -1,    34,   215,    -1,    28,   215,    -1,
+     215,   216,    -1,   216,    -1,     6,    -1,    10,    -1,    17,
+      -1,    63,    -1,    93,    -1,   107,    -1,   136,    -1,   147,
+     218,    -1,   218,   219,    -1,   219,    -1,     5,   235,    -1,
+      30,   235,    -1,    45,   235,    -1,    48,   235,    -1,   111,
+     235,    -1,   138,   235,    -1,   139,   235,    -1,   227,    -1,
+      56,   141,   181,    -1,    35,    -1,    15,   235,    -1,    18,
+      57,    -1,   143,   235,    -1,    32,   221,    -1,    69,   141,
+      -1,   116,   141,    -1,    74,   141,    -1,    73,   225,    -1,
+     114,   232,    -1,   130,   141,    -1,   132,   222,    -1,   149,
+     185,    -1,   149,   185,   223,    -1,   152,   231,    -1,   123,
+     141,    -1,   141,    -1,   141,    31,    -1,    -1,   141,   175,
+     141,    26,    -1,   141,   175,   141,    -1,   223,   224,    -1,
+     224,    -1,   118,    57,    -1,    58,   185,    -1,   225,   226,
+      -1,   226,    -1,   141,    -1,   228,   230,   229,    -1,   228,
+     230,   141,    -1,    58,    -1,    97,    -1,     4,    -1,    59,
+      -1,    61,    -1,   159,    -1,    72,    -1,    51,    -1,    33,
+      -1,   231,    57,    -1,    57,    -1,   232,   141,    -1,   141,
+      -1,   233,   184,    -1,   184,    -1,    57,    -1,   150,    -1,
+      36,    -1,    57,    -1,    31,    -1,   237,   176,   238,   240,
+     177,    -1,   165,    -1,   238,   239,   164,    -1,   239,   164,
+      -1,   166,   175,   235,    -1,   167,   175,   235,    -1,   240,
+     241,    -1,   241,    -1,   243,   176,   242,   244,   177,    -1,
+     168,   175,   235,   164,    -1,   131,   175,   184,    -1,   244,
+     245,    -1,   245,    -1,   169,   175,   235,   176,   246,   177,
+      -1,   246,   247,   164,    -1,   247,   164,    -1,   170,   175,
+     235,    -1,   171,   175,   235,    -1,   172,   175,   235,    -1,
+     173,   175,   235,    -1,   174,   175,   235,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   304,   304,   308,   309,   310,   324,   325,   326,   327,
-     328,   329,   330,   331,   332,   333,   334,   335,   336,   344,
-     350,   359,   360,   361,   362,   363,   367,   368,   369,   373,
-     377,   378,   382,   383,   384,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,   405,   413,   414,
-     424,   426,   428,   439,   441,   443,   448,   450,   452,   454,
-     456,   458,   463,   465,   469,   476,   486,   488,   490,   492,
-     494,   496,   498,   515,   520,   521,   525,   527,   529,   531,
-     533,   535,   537,   539,   541,   543,   553,   555,   564,   572,
-     573,   577,   578,   579,   580,   581,   582,   583,   584,   588,
-     595,   605,   615,   624,   633,   642,   643,   647,   648,   649,
-     650,   651,   652,   653,   662,   666,   670,   675,   680,   685,
-     698,   711,   723,   724,   729,   730,   731,   732,   733,   734,
-     735,   736,   737,   738,   739,   740,   741,   742,   746,   748,
-     753,   754,   755,   759,   761,   766,   767,   768,   769,   777,
-     782,   784,   789,   790,   791,   792,   793,   794,   795,   796,
-     804,   806,   811,   818,   828,   829,   830,   831,   832,   833,
-     834,   850,   854,   855,   859,   860,   861,   862,   863,   864,
-     865,   874,   875,   891,   897,   899,   901,   903,   905,   908,
-     910,   921,   923,   925,   935,   937,   939,   941,   943,   948,
-     950,   954,   958,   960,   965,   967,   971,   972,   976,   977,
-     981,   996,  1001,  1009,  1010,  1014,  1015,  1016,  1017,  1021,
-    1022,  1023,  1033,  1034,  1038,  1039,  1043,  1044,  1048,  1057,
-    1058,  1062,  1063,  1072,  1087,  1091,  1092,  1096,  1097,  1101,
-    1102,  1106,  1111,  1115,  1119,  1120,  1124,  1129,  1130,  1134,
-    1136,  1138,  1140,  1142
+       0,   308,   308,   312,   313,   314,   328,   329,   330,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,   348,
+     354,   363,   364,   365,   366,   367,   371,   372,   373,   377,
+     381,   382,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,   398,   399,   400,   409,   417,   418,
+     428,   430,   432,   443,   445,   447,   452,   454,   456,   458,
+     460,   462,   467,   469,   473,   480,   490,   492,   494,   496,
+     498,   500,   502,   519,   524,   525,   529,   531,   533,   535,
+     537,   539,   541,   543,   545,   547,   557,   559,   568,   576,
+     577,   581,   582,   583,   584,   585,   586,   587,   588,   592,
+     599,   609,   619,   628,   637,   646,   647,   651,   652,   653,
+     654,   655,   656,   657,   666,   670,   674,   679,   684,   689,
+     702,   715,   727,   728,   733,   734,   735,   736,   737,   738,
+     739,   740,   741,   742,   743,   744,   745,   746,   750,   752,
+     757,   758,   759,   763,   765,   770,   771,   772,   773,   774,
+     775,   776,   777,   785,   790,   792,   797,   798,   799,   800,
+     801,   802,   803,   804,   812,   814,   819,   826,   836,   837,
+     838,   839,   840,   841,   842,   858,   862,   863,   867,   868,
+     869,   870,   871,   872,   873,   882,   883,   899,   905,   907,
+     909,   911,   913,   916,   918,   929,   931,   933,   943,   945,
+     947,   949,   951,   956,   958,   962,   966,   968,   973,   975,
+     979,   980,   984,   985,   989,  1004,  1009,  1017,  1018,  1022,
+    1023,  1024,  1025,  1029,  1030,  1031,  1041,  1042,  1046,  1047,
+    1051,  1052,  1056,  1065,  1066,  1070,  1071,  1080,  1095,  1099,
+    1100,  1104,  1105,  1109,  1110,  1114,  1119,  1123,  1127,  1128,
+    1132,  1137,  1138,  1142,  1144,  1146,  1148,  1150
 };
 #endif
 
@@ -942,14 +951,15 @@ static const char *const yytname[] =
   "T_Driftfile", "T_Drop", "T_Enable", "T_End", "T_False", "T_File",
   "T_Filegen", "T_Flag1", "T_Flag2", "T_Flag3", "T_Flag4", "T_Flake",
   "T_Floor", "T_Freq", "T_Fudge", "T_Host", "T_Huffpuff", "T_Iburst",
-  "T_Ident", "T_Ignore", "T_Includefile", "T_Integer", "T_Interface",
-  "T_Ipv4", "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag", "T_Kernel", "T_Key",
-  "T_Keys", "T_Keysdir", "T_Kod", "T_Mssntp", "T_Leapfile", "T_Limited",
-  "T_Link", "T_Listen", "T_Logconfig", "T_Logfile", "T_Loopstats",
-  "T_Lowpriotrap", "T_Manycastclient", "T_Manycastserver", "T_Mask",
-  "T_Maxage", "T_Maxclock", "T_Maxdepth", "T_Maxdist", "T_Maxmem",
-  "T_Maxpoll", "T_Minclock", "T_Mindepth", "T_Mindist", "T_Minimum",
-  "T_Minpoll", "T_Minsane", "T_Mode", "T_Monitor", "T_Month", "T_Mru",
+  "T_Ident", "T_Ignore", "T_Incalloc", "T_Incmem", "T_Initalloc",
+  "T_Initmem", "T_Includefile", "T_Integer", "T_Interface", "T_Ipv4",
+  "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag", "T_Kernel", "T_Key", "T_Keys",
+  "T_Keysdir", "T_Kod", "T_Mssntp", "T_Leapfile", "T_Limited", "T_Link",
+  "T_Listen", "T_Logconfig", "T_Logfile", "T_Loopstats", "T_Lowpriotrap",
+  "T_Manycastclient", "T_Manycastserver", "T_Mask", "T_Maxage",
+  "T_Maxclock", "T_Maxdepth", "T_Maxdist", "T_Maxmem", "T_Maxpoll",
+  "T_Minclock", "T_Mindepth", "T_Mindist", "T_Minimum", "T_Minpoll",
+  "T_Minsane", "T_Mode", "T_Monitor", "T_Month", "T_Mru",
   "T_Multicastclient", "T_Nic", "T_Nolink", "T_Nomodify", "T_None",
   "T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve", "T_Notrap",
   "T_Notrust", "T_Ntp", "T_Ntpport", "T_NtpSignDsocket", "T_Orphan",
@@ -1009,39 +1019,39 @@ static const yytype_uint16 yytoknum[] =
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,    61,   123,   125
+     425,   426,   427,   428,   429,    61,   123,   125
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,   174,   175,   176,   176,   176,   177,   177,   177,   177,
-     177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
-     178,   179,   179,   179,   179,   179,   180,   180,   180,   181,
-     182,   182,   183,   183,   183,   183,   183,   183,   183,   183,
-     183,   183,   183,   183,   183,   183,   183,   184,   185,   185,
-     186,   186,   186,   187,   187,   187,   187,   187,   187,   187,
-     187,   187,   188,   188,   189,   189,   190,   190,   190,   190,
-     190,   190,   190,   191,   192,   192,   193,   193,   193,   193,
-     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
-     195,   196,   196,   196,   196,   196,   196,   196,   196,   197,
-     197,   198,   198,   198,   198,   198,   198,   199,   199,   199,
-     199,   199,   199,   199,   200,   200,   200,   200,   200,   200,
-     200,   200,   201,   201,   202,   202,   202,   202,   202,   202,
-     202,   202,   202,   202,   202,   202,   202,   202,   203,   203,
-     204,   204,   204,   205,   205,   206,   206,   206,   206,   207,
-     208,   208,   209,   209,   209,   209,   209,   209,   209,   209,
-     210,   210,   211,   211,   212,   212,   212,   212,   212,   212,
-     212,   213,   214,   214,   215,   215,   215,   215,   215,   215,
-     215,   216,   216,   216,   216,   216,   216,   216,   216,   216,
-     216,   216,   216,   216,   216,   216,   216,   216,   216,   217,
-     217,   217,   218,   218,   219,   219,   220,   220,   221,   221,
-     222,   223,   223,   224,   224,   225,   225,   225,   225,   226,
-     226,   226,   227,   227,   228,   228,   229,   229,   230,   230,
-     230,   231,   231,   232,   233,   234,   234,   235,   235,   236,
-     236,   237,   238,   239,   240,   240,   241,   242,   242,   243,
-     243,   243,   243,   243
+       0,   178,   179,   180,   180,   180,   181,   181,   181,   181,
+     181,   181,   181,   181,   181,   181,   181,   181,   181,   182,
+     182,   183,   183,   183,   183,   183,   184,   184,   184,   185,
+     186,   186,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   188,   189,   189,
+     190,   190,   190,   191,   191,   191,   191,   191,   191,   191,
+     191,   191,   192,   192,   193,   193,   194,   194,   194,   194,
+     194,   194,   194,   195,   196,   196,   197,   197,   197,   197,
+     197,   197,   197,   197,   197,   197,   198,   198,   198,   199,
+     199,   200,   200,   200,   200,   200,   200,   200,   200,   201,
+     201,   202,   202,   202,   202,   202,   202,   203,   203,   203,
+     203,   203,   203,   203,   204,   204,   204,   204,   204,   204,
+     204,   204,   205,   205,   206,   206,   206,   206,   206,   206,
+     206,   206,   206,   206,   206,   206,   206,   206,   207,   207,
+     208,   208,   208,   209,   209,   210,   210,   210,   210,   210,
+     210,   210,   210,   211,   212,   212,   213,   213,   213,   213,
+     213,   213,   213,   213,   214,   214,   215,   215,   216,   216,
+     216,   216,   216,   216,   216,   217,   218,   218,   219,   219,
+     219,   219,   219,   219,   219,   220,   220,   220,   220,   220,
+     220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
+     220,   220,   220,   221,   221,   221,   222,   222,   223,   223,
+     224,   224,   225,   225,   226,   227,   227,   228,   228,   229,
+     229,   229,   229,   230,   230,   230,   231,   231,   232,   232,
+     233,   233,   234,   234,   234,   235,   235,   236,   237,   238,
+     238,   239,   239,   240,   240,   241,   242,   243,   244,   244,
+     245,   246,   246,   247,   247,   247,   247,   247
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1061,136 +1071,138 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1,     2,     2,     3,     5,     3,     4,
        4,     3,     0,     2,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
-       2,     2,     2,     2,     1,     2,     2,     2,     2,     3,
-       2,     1,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
-       1,     2,     2,     1,     2,     2,     2,     2,     2,     2,
-       2,     1,     3,     1,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     3,     2,     2,     1,
-       2,     0,     4,     3,     2,     1,     2,     2,     2,     1,
-       1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     2,     1,     2,     1,     2,     1,     1,     1,
-       1,     1,     1,     5,     1,     3,     2,     3,     3,     2,
-       1,     5,     4,     3,     2,     1,     6,     3,     2,     3,
-       3,     3,     3,     3
+       2,     2,     2,     2,     1,     2,     2,     2,     2,     2,
+       2,     2,     2,     3,     2,     1,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     2,     1,     2,     2,
+       2,     2,     2,     2,     2,     1,     3,     1,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       3,     2,     2,     1,     2,     0,     4,     3,     2,     1,
+       2,     2,     2,     1,     1,     3,     3,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     2,     1,     2,     1,
+       2,     1,     1,     1,     1,     1,     1,     5,     1,     3,
+       2,     3,     3,     2,     1,     5,     4,     3,     2,     1,
+       6,     3,     2,     3,     3,     3,     3,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
-static const yytype_uint8 yydefact[] =
+static const yytype_uint16 yydefact[] =
 {
        0,     0,     0,    24,    50,     0,     0,     0,    63,     0,
-       0,   201,     0,   183,     0,     0,     0,   213,     0,     0,
-       0,     0,     0,    25,     0,     0,     0,   214,     0,    23,
+       0,   205,     0,   187,     0,     0,     0,   217,     0,     0,
+       0,     0,     0,    25,     0,     0,     0,   218,     0,    23,
        0,     0,    22,     0,     0,     0,     0,     0,    21,     0,
        0,     0,     0,     0,     0,     0,     0,     0,    48,    49,
-     234,     0,     2,     0,     7,     0,     8,     0,     9,    10,
-      13,    11,    12,    14,    15,    16,    17,   181,     0,    18,
-       0,     5,    53,   232,   231,   184,   185,    54,     0,     0,
-       0,     0,     0,     0,     0,    55,    62,    65,   164,   165,
-     166,   167,   168,   169,   170,   161,   163,     0,     0,     0,
-     114,   139,   199,   187,   160,    91,    92,    93,    94,    98,
+     238,     0,     2,     0,     7,     0,     8,     0,     9,    10,
+      13,    11,    12,    14,    15,    16,    17,   185,     0,    18,
+       0,     5,    53,   236,   235,   188,   189,    54,     0,     0,
+       0,     0,     0,     0,     0,    55,    62,    65,   168,   169,
+     170,   171,   172,   173,   174,   165,   167,     0,     0,     0,
+     114,   139,   203,   191,   164,    91,    92,    93,    94,    98,
       95,    96,    97,     0,     0,     0,    29,     0,    26,     6,
-      56,    57,   188,   210,   191,   209,   190,   227,    51,     0,
-       0,     0,     0,   115,   144,    52,    61,   225,   192,   189,
-     198,    58,   122,     0,     0,   122,   122,    26,    59,   193,
-       0,   194,    86,    90,    87,   186,     0,     0,     0,     0,
-       0,     0,     0,   171,   173,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    73,    75,   195,   223,    60,
-     197,     1,     0,     4,    20,    47,   221,   220,   219,     0,
-       0,    71,    66,    67,    68,    69,    72,    70,    64,   162,
-     140,   141,   142,   138,   200,   106,   105,     0,   103,   104,
-       0,    88,   100,    27,    28,     0,     0,     0,     0,     0,
-       0,     0,     0,   149,   151,   182,   208,   226,   146,   147,
-     148,   145,   143,   224,   118,   122,   122,   121,   116,     0,
-       0,    89,   174,   175,   176,   177,   178,   179,   180,   172,
-      85,    76,   230,   228,   229,    78,    77,    83,    81,    82,
-      80,    84,    79,    74,     0,     0,   196,   205,   222,     3,
-      32,     0,    34,    35,     0,     0,     0,     0,    39,    40,
-      41,    42,     0,     0,    43,    19,    31,   215,   216,   217,
-     212,   218,   211,     0,     0,     0,     0,   101,   113,   109,
-     111,   107,   108,   110,   112,   102,    99,   156,   157,   158,
-     159,   155,   154,   152,   153,   150,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
-     123,   119,   120,   122,   203,   207,   206,   204,    33,    36,
-      38,    37,    45,    44,    46,    30,     0,     0,     0,     0,
-       0,   240,     0,   236,   117,   202,   237,   238,     0,   235,
-     233,   239,     0,   243,     0,     0,     0,     0,     0,   245,
-       0,     0,   241,   244,   242,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   246,
-       0,   248,   249,   250,   251,   252,   253,   247
+      56,    57,   192,   214,   195,   213,   194,   231,    51,     0,
+       0,     0,     0,     0,     0,     0,     0,   115,   144,    52,
+      61,   229,   196,   193,   202,    58,   122,     0,     0,   122,
+     122,    26,    59,   197,     0,   198,    86,    90,    87,   190,
+       0,     0,     0,     0,     0,     0,     0,   175,   177,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
+      75,   199,   227,    60,   201,     1,     0,     4,    20,    47,
+     225,   224,   223,     0,     0,    71,    66,    67,    68,    69,
+      72,    70,    64,   166,   140,   141,   142,   138,   204,   106,
+     105,     0,   103,   104,     0,    88,   100,    27,    28,     0,
+       0,     0,     0,     0,     0,     0,     0,   153,   155,   186,
+     212,   230,   145,   146,   147,   148,   149,   150,   151,   152,
+     143,   228,   118,   122,   122,   121,   116,     0,     0,    89,
+     178,   179,   180,   181,   182,   183,   184,   176,    85,    76,
+     234,   232,   233,    78,    77,    83,    81,    82,    80,    84,
+      79,    74,     0,     0,   200,   209,   226,     3,    32,     0,
+      34,    35,     0,     0,     0,     0,    39,    40,    41,    42,
+       0,     0,    43,    19,    31,   219,   220,   221,   216,   222,
+     215,     0,     0,     0,     0,   101,   113,   109,   111,   107,
+     108,   110,   112,   102,    99,   160,   161,   162,   163,   159,
+     158,   156,   157,   154,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   123,   119,
+     120,   122,   207,   211,   210,   208,    33,    36,    38,    37,
+      45,    44,    46,    30,     0,     0,     0,     0,     0,   244,
+       0,   240,   117,   206,   241,   242,     0,   239,   237,   243,
+       0,   247,     0,     0,     0,     0,     0,   249,     0,     0,
+     245,   248,   246,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   250,     0,   252,
+     253,   254,   255,   256,   257,   251
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    51,    52,    53,    54,    55,   127,   118,   285,   286,
-      56,    57,    58,    59,    85,    86,    87,    60,   175,   176,
-      61,   152,   113,   211,   212,   305,    62,   234,   330,   100,
-     101,   133,   134,    63,   223,   224,    64,    95,    96,    65,
-     163,   164,    66,   103,   151,   266,   267,   124,   125,    67,
-      68,   292,   189,   179,   138,   128,   255,    75,    69,    70,
-     295,   296,   350,   351,   365,   352,   368,   369,   382,   383
+      -1,    51,    52,    53,    54,    55,   127,   118,   293,   294,
+      56,    57,    58,    59,    85,    86,    87,    60,   179,   180,
+      61,   156,   113,   215,   216,   313,    62,   242,   338,   100,
+     101,   137,   138,    63,   227,   228,    64,    95,    96,    65,
+     167,   168,    66,   103,   155,   274,   275,   124,   125,    67,
+      68,   300,   193,   183,   142,   128,   263,    75,    69,    70,
+     303,   304,   358,   359,   373,   360,   376,   377,   390,   391
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -143
+#define YYPACT_NINF -148
 static const yytype_int16 yypact[] =
 {
-     131,  -132,   -19,  -143,  -143,   -10,    -8,    -5,   168,     8,
-       0,   -78,     8,  -143,   192,   -50,   -77,  -143,   -69,   -67,
-     -60,   -59,   -57,  -143,   -50,   -34,   -50,  -143,   -56,  -143,
-     -55,   -53,  -143,   -51,    35,    13,    37,   -46,  -143,   -45,
-     192,   -41,   -10,     2,   279,   -39,    42,    42,  -143,  -143,
-    -143,    99,   303,   -48,  -143,   -50,  -143,   -50,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,   -13,  -143,
-     -62,  -143,  -143,  -143,  -143,  -143,  -143,  -143,   -24,   -14,
-     -12,     5,    11,    54,    14,  -143,   168,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,     8,  -143,    80,    94,   102,
-       0,  -143,   126,  -143,     8,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,   -11,    21,    24,  -143,    34,  -143,   444,
-    -143,  -143,  -143,  -143,   -59,  -143,  -143,  -143,   -50,   109,
-     115,   118,   119,   -34,  -143,   -50,  -143,  -143,    36,  -143,
-    -143,  -143,  -143,    -2,     4,  -143,  -143,   101,  -143,  -143,
-       7,  -143,   192,  -143,  -143,  -143,   -10,   -10,   -10,   -10,
-     -10,   -10,   -10,     2,  -143,   128,   129,   -20,   137,   -10,
-     -10,   -10,   -10,   141,   144,   279,  -143,   -35,  -143,   145,
-     145,  -143,    39,  -143,   516,  -143,  -143,  -143,  -143,    -3,
-    -122,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,  -143,    47,  -143,  -143,
-      10,   -11,  -143,  -143,  -143,   -20,   -20,   -20,   -20,    65,
-     150,   -10,   -10,    34,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,   547,  -143,  -143,   547,   547,   -39,
-      70,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,   -39,   155,   -35,  -143,  -143,  -143,
-    -143,   -10,  -143,  -143,   156,   157,   158,   160,  -143,  -143,
-    -143,  -143,   161,   164,  -143,   516,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,    48,    49,  -105,    61,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,  -143,
-    -143,   547,   547,  -143,   199,  -143,  -143,  -143,  -143,  -143,
-    -143,  -143,  -143,  -143,  -143,  -143,   -10,   -10,    55,    67,
-    -112,  -143,    56,  -143,   547,  -143,  -143,  -143,   -50,  -143,
-    -143,  -143,    66,  -143,    62,    69,   -10,    64,  -136,  -143,
-      72,   -10,  -143,  -143,  -143,    68,  -104,    71,    74,    75,
-      76,    77,   -65,    78,   -10,   -10,   -10,   -10,   -10,  -143,
-      89,  -143,  -143,  -143,  -143,  -143,  -143,  -143
+     134,  -132,   -16,  -148,  -148,     7,   -15,    -8,   -19,     8,
+      -2,   -91,     8,  -148,    33,   -43,   -86,  -148,   -81,   -79,
+     -68,   -67,   -65,  -148,   -43,   165,   -43,  -148,   -63,  -148,
+     -62,   -57,  -148,   -56,    29,    -4,    31,   -52,  -148,   -41,
+      33,   -39,     7,     0,   299,   -32,    42,    42,  -148,  -148,
+    -148,   107,   301,   -51,  -148,   -43,  -148,   -43,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,     3,  -148,
+     -60,  -148,  -148,  -148,  -148,  -148,  -148,  -148,   -12,    -1,
+       4,    10,    14,    84,    19,  -148,   -19,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,     8,  -148,    96,   108,   114,
+      -2,  -148,   133,  -148,     8,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,     6,    35,    36,  -148,    41,  -148,   446,
+    -148,  -148,  -148,  -148,   -67,  -148,  -148,  -148,   -43,   117,
+     121,   125,   130,   131,   132,   136,   138,   165,  -148,   -43,
+    -148,  -148,    50,  -148,  -148,  -148,  -148,    -5,     9,  -148,
+    -148,   118,  -148,  -148,    21,  -148,    33,  -148,  -148,  -148,
+       7,     7,     7,     7,     7,     7,     7,     0,  -148,   141,
+     144,   -24,   145,     7,     7,     7,     7,   147,   148,   299,
+    -148,   -48,  -148,   149,   149,  -148,    45,  -148,   518,  -148,
+    -148,  -148,  -148,     2,  -140,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,    69,  -148,  -148,    12,     6,  -148,  -148,  -148,   -24,
+     -24,   -24,   -24,    73,   158,     7,     7,    41,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,   548,  -148,  -148,   548,   548,   -32,    75,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,   -32,   169,   -48,  -148,  -148,  -148,  -148,     7,
+    -148,  -148,   170,   171,   175,   176,  -148,  -148,  -148,  -148,
+     177,   178,  -148,   518,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,    61,    64,  -115,    76,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,  -148,   548,
+     548,  -148,   215,  -148,  -148,  -148,  -148,  -148,  -148,  -148,
+    -148,  -148,  -148,  -148,     7,     7,    67,    80,  -118,  -148,
+      77,  -148,   548,  -148,  -148,  -148,   -43,  -148,  -148,  -148,
+      86,  -148,    81,    89,     7,    85,  -130,  -148,    91,     7,
+    -148,  -148,  -148,    83,    51,    92,    93,    95,    97,    98,
+    -105,   110,     7,     7,     7,     7,     7,  -148,   111,  -148,
+    -148,  -148,  -148,  -148,  -148,  -148
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -143,  -143,  -143,   -47,  -143,  -143,    -4,   -33,  -143,   -32,
-    -143,  -143,  -143,  -143,  -143,  -143,   151,  -143,  -143,    85,
-    -143,  -143,   -30,  -143,    40,  -143,  -143,  -142,  -143,  -143,
-     152,  -143,   132,  -143,  -143,    38,  -143,   254,   -68,  -143,
-    -143,   104,  -143,  -143,  -143,  -143,     3,  -143,   147,  -143,
-    -143,  -143,  -143,   221,  -143,   246,   -29,   -42,  -143,  -143,
-    -143,   -22,  -143,   -73,  -143,  -143,  -143,   -88,  -143,   -99
+    -148,  -148,  -148,   -29,  -148,  -148,   -11,   -34,  -148,   -17,
+    -148,  -148,  -148,  -148,  -148,  -148,   192,  -148,  -148,   100,
+    -148,  -148,   -31,  -148,    65,  -148,  -148,  -147,  -148,  -148,
+     184,  -148,   150,  -148,  -148,    63,  -148,   279,   -75,  -148,
+    -148,   126,  -148,  -148,  -148,  -148,    18,  -148,   172,  -148,
+    -148,  -148,  -148,   247,  -148,   269,  -127,   -42,  -148,  -148,
+    -148,    -6,  -148,   -58,  -148,  -148,  -148,   -74,  -148,   -89
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1200,150 +1212,152 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -7
 static const yytype_int16 yytable[] =
 {
-     155,   287,   147,   237,   238,   182,   114,   156,   115,    97,
-     153,   117,   177,   298,    88,   348,   252,   205,    89,   264,
-     186,    73,   348,   206,   235,    90,   207,   199,    71,   367,
-     236,   146,   157,   253,    72,   299,   199,   372,   187,   142,
-     293,   294,   129,    74,   130,    76,   131,   158,    77,   132,
-     159,   184,   288,   185,   289,   188,   208,   293,   294,   102,
-     119,   360,   377,   378,   379,   380,   381,    91,   120,   143,
-     121,   144,   225,   215,   216,   217,   218,   122,   123,   265,
-     126,   136,   137,   209,   139,    98,   140,   116,   141,    99,
-     148,   149,   150,   331,   332,   178,   154,    92,   116,   181,
-     300,   377,   378,   379,   380,   381,   301,   196,   389,   160,
-     190,    93,   183,   191,   242,   243,   244,   245,   246,   247,
-     248,   302,   241,   192,   227,   193,   254,   257,   258,   259,
-     260,   227,     1,   200,   290,   213,   161,   162,   210,     2,
-      94,   214,   194,   145,     3,     4,     5,   201,   195,     6,
-     116,   197,   291,     7,     8,   202,   219,   204,   213,     9,
-      10,   214,   228,    11,   303,    12,    13,   304,   229,    14,
-     220,   230,   231,   233,   221,   222,   239,    15,   240,   313,
-     314,   250,   251,    16,   297,    17,   307,   308,   309,   310,
-     256,   354,    18,    19,   261,    78,    20,   262,   268,   269,
-      21,    22,   311,   312,    23,    24,   333,   334,   336,   339,
-     340,   341,   105,   342,   343,    79,   106,   344,    80,   346,
-     347,   353,    25,    26,    27,   355,   358,   359,   362,   338,
-     364,   335,   374,   366,   367,   371,    28,   198,   391,    29,
-     376,    30,   384,    31,    32,   385,   386,   387,   388,   397,
-      33,   306,   203,   345,    34,    35,    36,    37,    38,    39,
-     263,   315,    40,   107,    41,   232,   104,   249,   180,   337,
-      42,   226,   135,   349,    43,    44,    45,   361,    46,    47,
-     373,    48,    49,   390,     0,     0,    81,     0,    82,     0,
-     165,    -6,    50,    83,     0,     0,     0,    84,   166,     0,
-     167,   108,     0,     0,   356,   357,     0,     0,     0,   109,
-       0,     2,     0,   110,     0,     0,     3,     4,     5,     0,
-       0,     6,     0,   168,   370,     7,     8,     0,     0,   375,
-     111,     9,    10,     0,   112,    11,     0,    12,    13,     0,
-       0,    14,   392,   393,   394,   395,   396,     0,     0,    15,
-       0,     0,     0,     0,   363,    16,   169,    17,   170,     0,
-       0,   171,     0,   172,    18,    19,   173,     0,    20,     0,
-       0,     0,    21,    22,     0,     0,    23,    24,     0,     0,
-       0,     0,     0,     0,     0,   174,     0,     0,     0,     0,
-       0,     0,     0,     0,    25,    26,    27,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
-       0,    29,     0,    30,     0,    31,    32,     0,     0,     0,
-       0,     0,    33,     0,     0,     0,    34,    35,    36,    37,
-      38,    39,     0,     0,    40,     0,    41,     0,     0,     0,
-       0,     0,    42,     0,     0,     0,    43,    44,    45,     0,
-      46,    47,     2,    48,    49,     0,     0,     3,     4,     5,
-       0,     0,     6,    -6,    50,     0,     7,     8,     0,     0,
-       0,     0,     9,    10,     0,     0,    11,     0,    12,    13,
-       0,     0,    14,     0,     0,     0,     0,     0,     0,     0,
-      15,     0,     0,     0,     0,     0,    16,     0,    17,     0,
-       0,     0,     0,     0,     0,    18,    19,     0,     0,    20,
-       0,     0,     0,    21,    22,     0,     0,    23,    24,     0,
-       0,     0,     0,   270,     0,     0,     0,     0,   271,     0,
-       0,     0,   272,     0,     0,    25,    26,    27,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
-       0,     0,    29,     0,    30,     0,    31,    32,     0,     0,
-       0,     0,     0,    33,     0,   273,     0,    34,    35,    36,
-      37,    38,    39,     0,     0,    40,   274,    41,     0,     0,
-       0,     0,     0,    42,     0,     0,     0,    43,    44,    45,
-     316,    46,    47,     0,    48,    49,     0,   275,   317,     0,
-       0,     0,   276,     0,   277,    50,     0,     0,     0,     0,
-     318,   319,     0,   320,     0,   278,     0,     0,     0,   321,
+     159,   151,   245,   246,   117,   160,   295,    97,    78,   157,
+     272,   181,   260,   356,    88,   306,   356,   114,    89,   115,
+     203,   243,   146,   186,   150,    90,   301,   302,    79,   203,
+     161,    80,    71,   261,   209,   244,   190,   307,    73,   375,
+     210,    72,    76,   211,   188,   162,   189,   380,   163,    77,
+     102,   301,   302,   105,   191,   119,   147,   106,   148,   368,
+     120,   296,   121,   297,    74,   385,   386,   387,   388,   389,
+     273,    91,   397,   122,   123,   192,   126,   212,   140,   141,
+     219,   220,   221,   222,   143,   144,   145,    98,   152,   153,
+     229,    99,   315,   316,   317,   318,   339,   340,   116,   182,
+     154,    92,   158,    81,   213,    82,   308,   185,   107,   116,
+      83,   164,   309,   187,    84,    93,   194,   231,   250,   251,
+     252,   253,   254,   255,   256,   249,   262,   310,   231,   195,
+     149,   265,   266,   267,   268,     1,   217,   116,   165,   166,
+     196,   200,     2,   298,    94,   197,   108,     3,     4,     5,
+     218,   198,     6,   204,   109,   199,     7,     8,   110,   214,
+     201,   299,     9,    10,   208,   205,    11,   223,    12,    13,
+     311,   206,    14,   312,   232,   111,   217,   218,   233,   112,
+      15,   224,   234,   321,   322,   225,   226,   235,   236,   237,
+      16,   241,    17,   238,   362,   239,   248,   247,   258,    18,
+      19,   259,   264,    20,   269,   270,   276,    21,    22,   277,
+     305,    23,    24,   341,   319,   320,   342,   129,   130,   131,
+     132,   385,   386,   387,   388,   389,   344,   347,   348,    25,
+      26,    27,   349,   350,   351,   352,   354,   346,   343,   355,
+     361,   363,   366,    28,   367,   133,    29,   134,    30,   135,
+      31,    32,   136,   370,   372,   382,   374,    33,   375,   384,
+     379,    34,    35,    36,    37,    38,    39,   392,   393,    40,
+     394,    41,   395,   396,   399,   405,   353,    42,   202,   271,
+     314,    43,    44,    45,   207,    46,    47,   240,    48,    49,
+     323,   104,   345,   257,   184,   139,   230,   357,    -6,    50,
+     369,   398,   381,     0,     0,     0,     0,     0,     0,     2,
+     169,     0,   364,   365,     3,     4,     5,     0,   170,     6,
+     171,     0,     0,     7,     8,     0,     0,     0,     0,     9,
+      10,     0,   378,    11,     0,    12,    13,   383,     0,    14,
+       0,     0,     0,   172,     0,     0,     0,    15,     0,     0,
+     400,   401,   402,   403,   404,   371,     0,    16,     0,    17,
+       0,     0,     0,     0,     0,     0,    18,    19,     0,     0,
+      20,     0,     0,     0,    21,    22,     0,     0,    23,    24,
+     173,     0,   174,     0,     0,   175,     0,   176,     0,     0,
+     177,     0,     0,     0,     0,     0,    25,    26,    27,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   178,
+      28,     0,     0,    29,     0,    30,     0,    31,    32,     0,
+       0,     0,     0,     0,    33,     0,     0,     0,    34,    35,
+      36,    37,    38,    39,     0,     0,    40,     0,    41,     0,
+       0,     0,     0,     0,    42,     0,     0,     0,    43,    44,
+      45,     0,    46,    47,     2,    48,    49,     0,     0,     3,
+       4,     5,     0,     0,     6,    -6,    50,     0,     7,     8,
+       0,     0,     0,     0,     9,    10,     0,     0,    11,     0,
+      12,    13,     0,     0,    14,     0,     0,     0,     0,     0,
+       0,     0,    15,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    16,     0,    17,     0,     0,     0,     0,     0,
+       0,    18,    19,     0,     0,    20,     0,     0,     0,    21,
+      22,     0,     0,    23,    24,   278,     0,     0,     0,     0,
+     279,     0,     0,     0,   280,     0,     0,     0,     0,     0,
+       0,    25,    26,    27,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    28,     0,     0,    29,     0,
+      30,     0,    31,    32,     0,     0,     0,   281,     0,    33,
+       0,     0,     0,    34,    35,    36,    37,    38,    39,     0,
+       0,    40,   282,    41,     0,     0,     0,     0,     0,    42,
+       0,   324,     0,    43,    44,    45,     0,    46,    47,   325,
+      48,    49,     0,   283,     0,     0,     0,     0,   284,     0,
+     285,    50,     0,     0,     0,   326,   327,     0,   328,     0,
+       0,   286,     0,     0,   329,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   287,   288,     0,
+       0,     0,     0,     0,     0,     0,     0,   330,     0,   331,
+     332,     0,   333,   334,   335,     0,   336,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
+     290,     0,     0,     0,   291,     0,     0,     0,   292,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   279,   280,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   322,     0,   323,   324,     0,   325,   326,   327,
-       0,   328,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   281,     0,   282,     0,     0,     0,   283,     0,
-       0,     0,   284,     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,   329
+       0,     0,     0,     0,   337
 };
 
 static const yytype_int16 yycheck[] =
 {
-      42,     4,    35,   145,   146,    52,    56,     5,    58,     9,
-      40,    15,    45,     3,     6,   127,    36,    28,    10,    54,
-      33,    31,   127,    34,    26,    17,    37,    95,   160,   165,
-      26,    35,    30,    53,    53,    25,   104,   173,    51,    26,
-     162,   163,    76,    53,    78,    53,    80,    45,    53,    83,
-      48,    55,    55,    57,    57,    68,    67,   162,   163,   137,
-     137,   173,   166,   167,   168,   169,   170,    59,   137,    56,
-     137,    58,   119,    39,    40,    41,    42,   137,   137,   114,
-     137,   137,   137,    94,   137,    85,   137,   137,    53,    89,
-      53,   137,   137,   235,   236,    53,   137,    89,   137,     0,
-      90,   166,   167,   168,   169,   170,    96,    53,   173,   107,
-     172,   103,   160,   137,   156,   157,   158,   159,   160,   161,
-     162,   111,   152,   137,   128,   137,   146,   169,   170,   171,
-     172,   135,     1,    53,   137,   137,   134,   135,   149,     8,
-     132,   137,   137,   130,    13,    14,    15,    53,   137,    18,
-     137,   137,   155,    22,    23,    53,   122,    31,   137,    28,
-      29,   137,    53,    32,   154,    34,    35,   157,    53,    38,
-     136,    53,    53,   137,   140,   141,    75,    46,   171,   221,
-     222,    53,    53,    52,   137,    54,   215,   216,   217,   218,
-      53,   333,    61,    62,    53,    27,    65,    53,    53,   160,
-      69,    70,   137,    53,    73,    74,   239,   137,    53,    53,
-      53,    53,    20,    53,    53,    47,    24,    53,    50,   171,
-     171,   160,    91,    92,    93,    26,   171,   160,   172,   271,
-     164,   264,   160,   171,   165,   171,   105,    86,   160,   108,
-     172,   110,   171,   112,   113,   171,   171,   171,   171,   160,
-     119,   211,   100,   285,   123,   124,   125,   126,   127,   128,
-     175,   223,   131,    71,   133,   133,    12,   163,    47,   266,
-     139,   124,    26,   295,   143,   144,   145,   350,   147,   148,
-     368,   150,   151,   382,    -1,    -1,   118,    -1,   120,    -1,
-      11,   160,   161,   125,    -1,    -1,    -1,   129,    19,    -1,
-      21,   109,    -1,    -1,   346,   347,    -1,    -1,    -1,   117,
-      -1,     8,    -1,   121,    -1,    -1,    13,    14,    15,    -1,
-      -1,    18,    -1,    44,   366,    22,    23,    -1,    -1,   371,
-     138,    28,    29,    -1,   142,    32,    -1,    34,    35,    -1,
-      -1,    38,   384,   385,   386,   387,   388,    -1,    -1,    46,
-      -1,    -1,    -1,    -1,   358,    52,    77,    54,    79,    -1,
-      -1,    82,    -1,    84,    61,    62,    87,    -1,    65,    -1,
-      -1,    -1,    69,    70,    -1,    -1,    73,    74,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   106,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,
-      -1,   108,    -1,   110,    -1,   112,   113,    -1,    -1,    -1,
-      -1,    -1,   119,    -1,    -1,    -1,   123,   124,   125,   126,
-     127,   128,    -1,    -1,   131,    -1,   133,    -1,    -1,    -1,
-      -1,    -1,   139,    -1,    -1,    -1,   143,   144,   145,    -1,
-     147,   148,     8,   150,   151,    -1,    -1,    13,    14,    15,
-      -1,    -1,    18,   160,   161,    -1,    22,    23,    -1,    -1,
-      -1,    -1,    28,    29,    -1,    -1,    32,    -1,    34,    35,
-      -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    54,    -1,
-      -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    65,
-      -1,    -1,    -1,    69,    70,    -1,    -1,    73,    74,    -1,
-      -1,    -1,    -1,     7,    -1,    -1,    -1,    -1,    12,    -1,
-      -1,    -1,    16,    -1,    -1,    91,    92,    93,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
-      -1,    -1,   108,    -1,   110,    -1,   112,   113,    -1,    -1,
-      -1,    -1,    -1,   119,    -1,    49,    -1,   123,   124,   125,
-     126,   127,   128,    -1,    -1,   131,    60,   133,    -1,    -1,
-      -1,    -1,    -1,   139,    -1,    -1,    -1,   143,   144,   145,
-      43,   147,   148,    -1,   150,   151,    -1,    81,    51,    -1,
-      -1,    -1,    86,    -1,    88,   161,    -1,    -1,    -1,    -1,
-      63,    64,    -1,    66,    -1,    99,    -1,    -1,    -1,    72,
+      42,    35,   149,   150,    15,     5,     4,     9,    27,    40,
+      58,    45,    36,   131,     6,     3,   131,    60,    10,    62,
+      95,    26,    26,    52,    35,    17,   166,   167,    47,   104,
+      30,    50,   164,    57,    28,    26,    33,    25,    31,   169,
+      34,    57,    57,    37,    55,    45,    57,   177,    48,    57,
+     141,   166,   167,    20,    51,   141,    60,    24,    62,   177,
+     141,    59,   141,    61,    57,   170,   171,   172,   173,   174,
+     118,    63,   177,   141,   141,    72,   141,    71,   141,   141,
+      39,    40,    41,    42,   141,   141,    57,    89,    57,   141,
+     119,    93,   219,   220,   221,   222,   243,   244,   141,    57,
+     141,    93,   141,   122,    98,   124,    94,     0,    75,   141,
+     129,   111,   100,   164,   133,   107,   176,   128,   160,   161,
+     162,   163,   164,   165,   166,   156,   150,   115,   139,   141,
+     134,   173,   174,   175,   176,     1,   141,   141,   138,   139,
+     141,    57,     8,   141,   136,   141,   113,    13,    14,    15,
+     141,   141,    18,    57,   121,   141,    22,    23,   125,   153,
+     141,   159,    28,    29,    31,    57,    32,   126,    34,    35,
+     158,    57,    38,   161,    57,   142,   141,   141,    57,   146,
+      46,   140,    57,   225,   226,   144,   145,    57,    57,    57,
+      56,   141,    58,    57,   341,    57,   175,    79,    57,    65,
+      66,    57,    57,    69,    57,    57,    57,    73,    74,   164,
+     141,    77,    78,   247,   141,    57,   141,    52,    53,    54,
+      55,   170,   171,   172,   173,   174,    57,    57,    57,    95,
+      96,    97,    57,    57,    57,    57,   175,   279,   272,   175,
+     164,    26,   175,   109,   164,    80,   112,    82,   114,    84,
+     116,   117,    87,   176,   168,   164,   175,   123,   169,   176,
+     175,   127,   128,   129,   130,   131,   132,   175,   175,   135,
+     175,   137,   175,   175,   164,   164,   293,   143,    86,   179,
+     215,   147,   148,   149,   100,   151,   152,   137,   154,   155,
+     227,    12,   274,   167,    47,    26,   124,   303,   164,   165,
+     358,   390,   376,    -1,    -1,    -1,    -1,    -1,    -1,     8,
+      11,    -1,   354,   355,    13,    14,    15,    -1,    19,    18,
+      21,    -1,    -1,    22,    23,    -1,    -1,    -1,    -1,    28,
+      29,    -1,   374,    32,    -1,    34,    35,   379,    -1,    38,
+      -1,    -1,    -1,    44,    -1,    -1,    -1,    46,    -1,    -1,
+     392,   393,   394,   395,   396,   366,    -1,    56,    -1,    58,
+      -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,
+      69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    78,
+      81,    -1,    83,    -1,    -1,    86,    -1,    88,    -1,    -1,
+      91,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
+     109,    -1,    -1,   112,    -1,   114,    -1,   116,   117,    -1,
+      -1,    -1,    -1,    -1,   123,    -1,    -1,    -1,   127,   128,
+     129,   130,   131,   132,    -1,    -1,   135,    -1,   137,    -1,
+      -1,    -1,    -1,    -1,   143,    -1,    -1,    -1,   147,   148,
+     149,    -1,   151,   152,     8,   154,   155,    -1,    -1,    13,
+      14,    15,    -1,    -1,    18,   164,   165,    -1,    22,    23,
+      -1,    -1,    -1,    -1,    28,    29,    -1,    -1,    32,    -1,
+      34,    35,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
+      -1,    65,    66,    -1,    -1,    69,    -1,    -1,    -1,    73,
+      74,    -1,    -1,    77,    78,     7,    -1,    -1,    -1,    -1,
+      12,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,
+      -1,    95,    96,    97,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
+     114,    -1,   116,   117,    -1,    -1,    -1,    49,    -1,   123,
+      -1,    -1,    -1,   127,   128,   129,   130,   131,   132,    -1,
+      -1,   135,    64,   137,    -1,    -1,    -1,    -1,    -1,   143,
+      -1,    43,    -1,   147,   148,   149,    -1,   151,   152,    51,
+     154,   155,    -1,    85,    -1,    -1,    -1,    -1,    90,    -1,
+      92,   165,    -1,    -1,    -1,    67,    68,    -1,    70,    -1,
+      -1,   103,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,   120,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,   101,
+     102,    -1,   104,   105,   106,    -1,   108,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   150,    -1,
+     152,    -1,    -1,    -1,   156,    -1,    -1,    -1,   160,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   115,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    95,    -1,    97,    98,    -1,   100,   101,   102,
-      -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   146,    -1,   148,    -1,    -1,    -1,   152,    -1,
-      -1,    -1,   156,    -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,   152
+      -1,    -1,    -1,    -1,   156
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1351,45 +1365,46 @@ static const yytype_int16 yycheck[] =
 static const yytype_uint8 yystos[] =
 {
        0,     1,     8,    13,    14,    15,    18,    22,    23,    28,
-      29,    32,    34,    35,    38,    46,    52,    54,    61,    62,
-      65,    69,    70,    73,    74,    91,    92,    93,   105,   108,
-     110,   112,   113,   119,   123,   124,   125,   126,   127,   128,
-     131,   133,   139,   143,   144,   145,   147,   148,   150,   151,
-     161,   175,   176,   177,   178,   179,   184,   185,   186,   187,
-     191,   194,   200,   207,   210,   213,   216,   223,   224,   232,
-     233,   160,    53,    31,    53,   231,    53,    53,    27,    47,
-      50,   118,   120,   125,   129,   188,   189,   190,     6,    10,
-      17,    59,    89,   103,   132,   211,   212,     9,    85,    89,
-     203,   204,   137,   217,   211,    20,    24,    71,   109,   117,
-     121,   138,   142,   196,    56,    58,   137,   180,   181,   137,
-     137,   137,   137,   137,   221,   222,   137,   180,   229,    76,
-      78,    80,    83,   205,   206,   229,   137,   137,   228,   137,
-     137,    53,    26,    56,    58,   130,   180,   181,    53,   137,
-     137,   218,   195,   196,   137,   231,     5,    30,    45,    48,
-     107,   134,   135,   214,   215,    11,    19,    21,    44,    77,
-      79,    82,    84,    87,   106,   192,   193,   181,    53,   227,
-     227,     0,   177,   160,   180,   180,    33,    51,    68,   226,
-     172,   137,   137,   137,   137,   137,    53,   137,   190,   212,
-      53,    53,    53,   204,    31,    28,    34,    37,    67,    94,
-     149,   197,   198,   137,   137,    39,    40,    41,    42,   122,
-     136,   140,   141,   208,   209,   177,   222,   180,    53,    53,
-      53,    53,   206,   137,   201,    26,    26,   201,   201,    75,
-     171,   196,   231,   231,   231,   231,   231,   231,   231,   215,
-      53,    53,    36,    53,   146,   230,    53,   231,   231,   231,
-     231,    53,    53,   193,    54,   114,   219,   220,    53,   160,
-       7,    12,    16,    49,    60,    81,    86,    88,    99,   115,
-     116,   146,   148,   152,   156,   182,   183,     4,    55,    57,
-     137,   155,   225,   162,   163,   234,   235,   137,     3,    25,
-      90,    96,   111,   154,   157,   199,   198,   230,   230,   230,
-     230,   137,    53,   231,   231,   209,    43,    51,    63,    64,
-      66,    72,    95,    97,    98,   100,   101,   102,   104,   152,
-     202,   201,   201,   181,   137,   181,    53,   220,   231,    53,
-      53,    53,    53,    53,    53,   183,   171,   171,   127,   235,
-     236,   237,   239,   160,   201,    26,   231,   231,   171,   160,
-     173,   237,   172,   180,   164,   238,   171,   165,   240,   241,
-     231,   171,   173,   241,   160,   231,   172,   166,   167,   168,
-     169,   170,   242,   243,   171,   171,   171,   171,   171,   173,
-     243,   160,   231,   231,   231,   231,   231,   160
+      29,    32,    34,    35,    38,    46,    56,    58,    65,    66,
+      69,    73,    74,    77,    78,    95,    96,    97,   109,   112,
+     114,   116,   117,   123,   127,   128,   129,   130,   131,   132,
+     135,   137,   143,   147,   148,   149,   151,   152,   154,   155,
+     165,   179,   180,   181,   182,   183,   188,   189,   190,   191,
+     195,   198,   204,   211,   214,   217,   220,   227,   228,   236,
+     237,   164,    57,    31,    57,   235,    57,    57,    27,    47,
+      50,   122,   124,   129,   133,   192,   193,   194,     6,    10,
+      17,    63,    93,   107,   136,   215,   216,     9,    89,    93,
+     207,   208,   141,   221,   215,    20,    24,    75,   113,   121,
+     125,   142,   146,   200,    60,    62,   141,   184,   185,   141,
+     141,   141,   141,   141,   225,   226,   141,   184,   233,    52,
+      53,    54,    55,    80,    82,    84,    87,   209,   210,   233,
+     141,   141,   232,   141,   141,    57,    26,    60,    62,   134,
+     184,   185,    57,   141,   141,   222,   199,   200,   141,   235,
+       5,    30,    45,    48,   111,   138,   139,   218,   219,    11,
+      19,    21,    44,    81,    83,    86,    88,    91,   110,   196,
+     197,   185,    57,   231,   231,     0,   181,   164,   184,   184,
+      33,    51,    72,   230,   176,   141,   141,   141,   141,   141,
+      57,   141,   194,   216,    57,    57,    57,   208,    31,    28,
+      34,    37,    71,    98,   153,   201,   202,   141,   141,    39,
+      40,    41,    42,   126,   140,   144,   145,   212,   213,   181,
+     226,   184,    57,    57,    57,    57,    57,    57,    57,    57,
+     210,   141,   205,    26,    26,   205,   205,    79,   175,   200,
+     235,   235,   235,   235,   235,   235,   235,   219,    57,    57,
+      36,    57,   150,   234,    57,   235,   235,   235,   235,    57,
+      57,   197,    58,   118,   223,   224,    57,   164,     7,    12,
+      16,    49,    64,    85,    90,    92,   103,   119,   120,   150,
+     152,   156,   160,   186,   187,     4,    59,    61,   141,   159,
+     229,   166,   167,   238,   239,   141,     3,    25,    94,   100,
+     115,   158,   161,   203,   202,   234,   234,   234,   234,   141,
+      57,   235,   235,   213,    43,    51,    67,    68,    70,    76,
+      99,   101,   102,   104,   105,   106,   108,   156,   206,   205,
+     205,   185,   141,   185,    57,   224,   235,    57,    57,    57,
+      57,    57,    57,   187,   175,   175,   131,   239,   240,   241,
+     243,   164,   205,    26,   235,   235,   175,   164,   177,   241,
+     176,   184,   168,   242,   175,   169,   244,   245,   235,   175,
+     177,   245,   164,   235,   176,   170,   171,   172,   173,   174,
+     246,   247,   175,   175,   175,   175,   175,   177,   247,   164,
+     235,   235,   235,   235,   235,   164
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2203,7 +2218,7 @@ yyreduce:
         case 5:
 
 /* Line 1455 of yacc.c  */
-#line 311 "ntp_parser.y"
+#line 315 "ntp_parser.y"
     {
                        /* I will need to incorporate much more fine grained
                         * error messages. The following should suffice for
@@ -2220,7 +2235,7 @@ yyreduce:
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 345 "ntp_parser.y"
+#line 349 "ntp_parser.y"
     {
                        struct peer_node *my_node =  create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue));
                        if (my_node)
@@ -2231,7 +2246,7 @@ yyreduce:
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 351 "ntp_parser.y"
+#line 355 "ntp_parser.y"
     {
                        struct peer_node *my_node = create_peer_node((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node), NULL);
                        if (my_node)
@@ -2242,147 +2257,147 @@ yyreduce:
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 368 "ntp_parser.y"
+#line 372 "ntp_parser.y"
     { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET); }
     break;
 
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 369 "ntp_parser.y"
+#line 373 "ntp_parser.y"
     { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET6); }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 373 "ntp_parser.y"
+#line 377 "ntp_parser.y"
     { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), 0); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 377 "ntp_parser.y"
+#line 381 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 378 "ntp_parser.y"
+#line 382 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 382 "ntp_parser.y"
+#line 386 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 383 "ntp_parser.y"
+#line 387 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 384 "ntp_parser.y"
+#line 388 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 385 "ntp_parser.y"
+#line 389 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 386 "ntp_parser.y"
+#line 390 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 387 "ntp_parser.y"
+#line 391 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 388 "ntp_parser.y"
+#line 392 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 389 "ntp_parser.y"
+#line 393 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 390 "ntp_parser.y"
+#line 394 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 391 "ntp_parser.y"
+#line 395 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 392 "ntp_parser.y"
+#line 396 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 393 "ntp_parser.y"
+#line 397 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 394 "ntp_parser.y"
+#line 398 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 395 "ntp_parser.y"
+#line 399 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 396 "ntp_parser.y"
+#line 400 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 406 "ntp_parser.y"
+#line 410 "ntp_parser.y"
     {
                        struct unpeer_node *my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node));
                        if (my_node)
@@ -2393,42 +2408,42 @@ yyreduce:
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 425 "ntp_parser.y"
+#line 429 "ntp_parser.y"
     { cfgt.broadcastclient = 1; }
     break;
 
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 427 "ntp_parser.y"
+#line 431 "ntp_parser.y"
     { append_queue(cfgt.manycastserver, (yyvsp[(2) - (2)].Queue)); }
     break;
 
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 429 "ntp_parser.y"
+#line 433 "ntp_parser.y"
     { append_queue(cfgt.multicastclient, (yyvsp[(2) - (2)].Queue)); }
     break;
 
   case 53:
 
 /* Line 1455 of yacc.c  */
-#line 440 "ntp_parser.y"
+#line 444 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer))); }
     break;
 
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 442 "ntp_parser.y"
+#line 446 "ntp_parser.y"
     { cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 444 "ntp_parser.y"
+#line 448 "ntp_parser.y"
     { 
                        cfgt.auth.cryptosw++;
                        append_queue(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Queue));
@@ -2438,56 +2453,56 @@ yyreduce:
   case 56:
 
 /* Line 1455 of yacc.c  */
-#line 449 "ntp_parser.y"
+#line 453 "ntp_parser.y"
     { cfgt.auth.keys = (yyvsp[(2) - (2)].String); }
     break;
 
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 451 "ntp_parser.y"
+#line 455 "ntp_parser.y"
     { cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); }
     break;
 
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 453 "ntp_parser.y"
+#line 457 "ntp_parser.y"
     { cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 455 "ntp_parser.y"
+#line 459 "ntp_parser.y"
     { cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); }
     break;
 
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 457 "ntp_parser.y"
+#line 461 "ntp_parser.y"
     { cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Queue); }
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 459 "ntp_parser.y"
+#line 463 "ntp_parser.y"
     { cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); }
     break;
 
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 465 "ntp_parser.y"
+#line 469 "ntp_parser.y"
     { (yyval.Queue) = create_queue(); }
     break;
 
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 470 "ntp_parser.y"
+#line 474 "ntp_parser.y"
     { 
                        if ((yyvsp[(2) - (2)].Attr_val) != NULL)
                                (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val));
@@ -2499,7 +2514,7 @@ yyreduce:
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 477 "ntp_parser.y"
+#line 481 "ntp_parser.y"
     {
                        if ((yyvsp[(1) - (1)].Attr_val) != NULL)
                                (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val));
@@ -2511,49 +2526,49 @@ yyreduce:
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 487 "ntp_parser.y"
+#line 491 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 489 "ntp_parser.y"
+#line 493 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 491 "ntp_parser.y"
+#line 495 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 493 "ntp_parser.y"
+#line 497 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 495 "ntp_parser.y"
+#line 499 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 497 "ntp_parser.y"
+#line 501 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 72:
 
 /* Line 1455 of yacc.c  */
-#line 499 "ntp_parser.y"
+#line 503 "ntp_parser.y"
     {
                        (yyval.Attr_val) = NULL;
                        cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer);
@@ -2567,105 +2582,105 @@ yyreduce:
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 516 "ntp_parser.y"
+#line 520 "ntp_parser.y"
     { append_queue(cfgt.orphan_cmds,(yyvsp[(2) - (2)].Queue)); }
     break;
 
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 520 "ntp_parser.y"
+#line 524 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 521 "ntp_parser.y"
+#line 525 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 526 "ntp_parser.y"
+#line 530 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 528 "ntp_parser.y"
+#line 532 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 530 "ntp_parser.y"
+#line 534 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 532 "ntp_parser.y"
+#line 536 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 534 "ntp_parser.y"
+#line 538 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 536 "ntp_parser.y"
+#line 540 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 538 "ntp_parser.y"
+#line 542 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 540 "ntp_parser.y"
+#line 544 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 542 "ntp_parser.y"
+#line 546 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 544 "ntp_parser.y"
+#line 548 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 554 "ntp_parser.y"
+#line 558 "ntp_parser.y"
     { append_queue(cfgt.stats_list, (yyvsp[(2) - (2)].Queue)); }
     break;
 
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 556 "ntp_parser.y"
+#line 560 "ntp_parser.y"
     {
                        if (input_from_file)
                                cfgt.stats_dir = (yyvsp[(2) - (2)].String);
@@ -2679,7 +2694,7 @@ yyreduce:
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 565 "ntp_parser.y"
+#line 569 "ntp_parser.y"
     {
                        enqueue(cfgt.filegen_opts,
                                create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Queue)));
@@ -2689,21 +2704,21 @@ yyreduce:
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 572 "ntp_parser.y"
+#line 576 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); }
     break;
 
   case 90:
 
 /* Line 1455 of yacc.c  */
-#line 573 "ntp_parser.y"
+#line 577 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); }
     break;
 
   case 99:
 
 /* Line 1455 of yacc.c  */
-#line 589 "ntp_parser.y"
+#line 593 "ntp_parser.y"
     {
                        if ((yyvsp[(2) - (2)].Attr_val) != NULL)
                                (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val));
@@ -2715,7 +2730,7 @@ yyreduce:
   case 100:
 
 /* Line 1455 of yacc.c  */
-#line 596 "ntp_parser.y"
+#line 600 "ntp_parser.y"
     {
                        if ((yyvsp[(1) - (1)].Attr_val) != NULL)
                                (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val));
@@ -2727,7 +2742,7 @@ yyreduce:
   case 101:
 
 /* Line 1455 of yacc.c  */
-#line 606 "ntp_parser.y"
+#line 610 "ntp_parser.y"
     {
                        if (input_from_file)
                                (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
@@ -2742,7 +2757,7 @@ yyreduce:
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 616 "ntp_parser.y"
+#line 620 "ntp_parser.y"
     {
                        if (input_from_file)
                                (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
@@ -2756,7 +2771,7 @@ yyreduce:
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 625 "ntp_parser.y"
+#line 629 "ntp_parser.y"
     {
                        if (input_from_file)
                                (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
@@ -2770,7 +2785,7 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 634 "ntp_parser.y"
+#line 638 "ntp_parser.y"
     {
                        if (input_from_file)
                                (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
@@ -2784,21 +2799,21 @@ yyreduce:
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 642 "ntp_parser.y"
+#line 646 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 643 "ntp_parser.y"
+#line 647 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 663 "ntp_parser.y"
+#line 667 "ntp_parser.y"
     {
                        append_queue(cfgt.discard_opts, (yyvsp[(2) - (2)].Queue));
                }
@@ -2807,7 +2822,7 @@ yyreduce:
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 667 "ntp_parser.y"
+#line 671 "ntp_parser.y"
     {
                        append_queue(cfgt.mru_opts, (yyvsp[(2) - (2)].Queue));
                }
@@ -2816,7 +2831,7 @@ yyreduce:
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 671 "ntp_parser.y"
+#line 675 "ntp_parser.y"
     {
                        enqueue(cfgt.restrict_opts,
                                create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no));
@@ -2826,7 +2841,7 @@ yyreduce:
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 676 "ntp_parser.y"
+#line 680 "ntp_parser.y"
     {
                        enqueue(cfgt.restrict_opts,
                                create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Queue), ip_file->line_no));
@@ -2836,7 +2851,7 @@ yyreduce:
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 681 "ntp_parser.y"
+#line 685 "ntp_parser.y"
     {
                        enqueue(cfgt.restrict_opts,
                                create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no));
@@ -2846,7 +2861,7 @@ yyreduce:
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 686 "ntp_parser.y"
+#line 690 "ntp_parser.y"
     {
                        enqueue(cfgt.restrict_opts,
                                create_restrict_node(
@@ -2864,7 +2879,7 @@ yyreduce:
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 699 "ntp_parser.y"
+#line 703 "ntp_parser.y"
     {
                        enqueue(cfgt.restrict_opts,
                                create_restrict_node(
@@ -2882,7 +2897,7 @@ yyreduce:
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 712 "ntp_parser.y"
+#line 716 "ntp_parser.y"
     {
                        enqueue(cfgt.restrict_opts,
                                create_restrict_node(
@@ -2895,189 +2910,217 @@ yyreduce:
   case 122:
 
 /* Line 1455 of yacc.c  */
-#line 723 "ntp_parser.y"
+#line 727 "ntp_parser.y"
     { (yyval.Queue) = create_queue(); }
     break;
 
   case 123:
 
 /* Line 1455 of yacc.c  */
-#line 725 "ntp_parser.y"
+#line 729 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); }
     break;
 
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 747 "ntp_parser.y"
+#line 751 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
   case 139:
 
 /* Line 1455 of yacc.c  */
-#line 749 "ntp_parser.y"
+#line 753 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
   case 140:
 
 /* Line 1455 of yacc.c  */
-#line 753 "ntp_parser.y"
+#line 757 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 141:
 
 /* Line 1455 of yacc.c  */
-#line 754 "ntp_parser.y"
+#line 758 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 142:
 
 /* Line 1455 of yacc.c  */
-#line 755 "ntp_parser.y"
+#line 759 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 143:
 
 /* Line 1455 of yacc.c  */
-#line 760 "ntp_parser.y"
+#line 764 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
   case 144:
 
 /* Line 1455 of yacc.c  */
-#line 762 "ntp_parser.y"
+#line 766 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
   case 145:
 
 /* Line 1455 of yacc.c  */
-#line 766 "ntp_parser.y"
+#line 770 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 146:
 
 /* Line 1455 of yacc.c  */
-#line 767 "ntp_parser.y"
+#line 771 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 147:
 
 /* Line 1455 of yacc.c  */
-#line 768 "ntp_parser.y"
+#line 772 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 148:
 
 /* Line 1455 of yacc.c  */
-#line 769 "ntp_parser.y"
+#line 773 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 149:
 
 /* Line 1455 of yacc.c  */
-#line 778 "ntp_parser.y"
-    { enqueue(cfgt.fudge, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); }
+#line 774 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 150:
 
 /* Line 1455 of yacc.c  */
-#line 783 "ntp_parser.y"
-    { enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
+#line 775 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 151:
 
 /* Line 1455 of yacc.c  */
-#line 785 "ntp_parser.y"
-    { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
+#line 776 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 152:
 
 /* Line 1455 of yacc.c  */
-#line 789 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
+#line 777 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 153:
 
 /* Line 1455 of yacc.c  */
-#line 790 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
+#line 786 "ntp_parser.y"
+    { enqueue(cfgt.fudge, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); }
     break;
 
   case 154:
 
 /* Line 1455 of yacc.c  */
 #line 791 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
+    { enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
   case 155:
 
 /* Line 1455 of yacc.c  */
-#line 792 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
+#line 793 "ntp_parser.y"
+    { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
   case 156:
 
 /* Line 1455 of yacc.c  */
-#line 793 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
+#line 797 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 157:
 
 /* Line 1455 of yacc.c  */
-#line 794 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
+#line 798 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
   case 158:
 
 /* Line 1455 of yacc.c  */
-#line 795 "ntp_parser.y"
+#line 799 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 159:
 
 /* Line 1455 of yacc.c  */
-#line 796 "ntp_parser.y"
-    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
+#line 800 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
     break;
 
   case 160:
 
 /* Line 1455 of yacc.c  */
-#line 805 "ntp_parser.y"
-    { append_queue(cfgt.enable_opts, (yyvsp[(2) - (2)].Queue));  }
+#line 801 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 161:
 
 /* Line 1455 of yacc.c  */
-#line 807 "ntp_parser.y"
-    { append_queue(cfgt.disable_opts, (yyvsp[(2) - (2)].Queue));  }
+#line 802 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
   case 162:
 
 /* Line 1455 of yacc.c  */
-#line 812 "ntp_parser.y"
+#line 803 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
+    break;
+
+  case 163:
+
+/* Line 1455 of yacc.c  */
+#line 804 "ntp_parser.y"
+    { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
+    break;
+
+  case 164:
+
+/* Line 1455 of yacc.c  */
+#line 813 "ntp_parser.y"
+    { append_queue(cfgt.enable_opts, (yyvsp[(2) - (2)].Queue));  }
+    break;
+
+  case 165:
+
+/* Line 1455 of yacc.c  */
+#line 815 "ntp_parser.y"
+    { append_queue(cfgt.disable_opts, (yyvsp[(2) - (2)].Queue));  }
+    break;
+
+  case 166:
+
+/* Line 1455 of yacc.c  */
+#line 820 "ntp_parser.y"
     {
                        if ((yyvsp[(2) - (2)].Attr_val) != NULL)
                                (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val));
@@ -3086,10 +3129,10 @@ yyreduce:
                }
     break;
 
-  case 163:
+  case 167:
 
 /* Line 1455 of yacc.c  */
-#line 819 "ntp_parser.y"
+#line 827 "ntp_parser.y"
     {
                        if ((yyvsp[(1) - (1)].Attr_val) != NULL)
                                (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val));
@@ -3098,52 +3141,52 @@ yyreduce:
                }
     break;
 
-  case 164:
+  case 168:
 
 /* Line 1455 of yacc.c  */
-#line 828 "ntp_parser.y"
+#line 836 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 165:
+  case 169:
 
 /* Line 1455 of yacc.c  */
-#line 829 "ntp_parser.y"
+#line 837 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 166:
+  case 170:
 
 /* Line 1455 of yacc.c  */
-#line 830 "ntp_parser.y"
+#line 838 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 167:
+  case 171:
 
 /* Line 1455 of yacc.c  */
-#line 831 "ntp_parser.y"
+#line 839 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 168:
+  case 172:
 
 /* Line 1455 of yacc.c  */
-#line 832 "ntp_parser.y"
+#line 840 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 169:
+  case 173:
 
 /* Line 1455 of yacc.c  */
-#line 833 "ntp_parser.y"
+#line 841 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
     break;
 
-  case 170:
+  case 174:
 
 /* Line 1455 of yacc.c  */
-#line 835 "ntp_parser.y"
+#line 843 "ntp_parser.y"
     { 
                        if (input_from_file)
                                (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
@@ -3154,80 +3197,80 @@ yyreduce:
                }
     break;
 
-  case 171:
+  case 175:
 
 /* Line 1455 of yacc.c  */
-#line 850 "ntp_parser.y"
+#line 858 "ntp_parser.y"
     { append_queue(cfgt.tinker, (yyvsp[(2) - (2)].Queue)); }
     break;
 
-  case 172:
+  case 176:
 
 /* Line 1455 of yacc.c  */
-#line 854 "ntp_parser.y"
+#line 862 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
-  case 173:
+  case 177:
 
 /* Line 1455 of yacc.c  */
-#line 855 "ntp_parser.y"
+#line 863 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
-  case 174:
+  case 178:
 
 /* Line 1455 of yacc.c  */
-#line 859 "ntp_parser.y"
+#line 867 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 175:
+  case 179:
 
 /* Line 1455 of yacc.c  */
-#line 860 "ntp_parser.y"
+#line 868 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 176:
+  case 180:
 
 /* Line 1455 of yacc.c  */
-#line 861 "ntp_parser.y"
+#line 869 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 177:
+  case 181:
 
 /* Line 1455 of yacc.c  */
-#line 862 "ntp_parser.y"
+#line 870 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 178:
+  case 182:
 
 /* Line 1455 of yacc.c  */
-#line 863 "ntp_parser.y"
+#line 871 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 179:
+  case 183:
 
 /* Line 1455 of yacc.c  */
-#line 864 "ntp_parser.y"
+#line 872 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 180:
+  case 184:
 
 /* Line 1455 of yacc.c  */
-#line 865 "ntp_parser.y"
+#line 873 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
     break;
 
-  case 182:
+  case 186:
 
 /* Line 1455 of yacc.c  */
-#line 876 "ntp_parser.y"
+#line 884 "ntp_parser.y"
     {
                        if (curr_include_level >= MAXINCLUDELEVEL) {
                                fprintf(stderr, "getconfig: Maximum include file level exceeded.\n");
@@ -3245,62 +3288,62 @@ yyreduce:
                }
     break;
 
-  case 183:
+  case 187:
 
 /* Line 1455 of yacc.c  */
-#line 892 "ntp_parser.y"
+#line 900 "ntp_parser.y"
     {
                        while (curr_include_level != -1)
                                FCLOSE(fp[curr_include_level--]);
                }
     break;
 
-  case 184:
+  case 188:
 
 /* Line 1455 of yacc.c  */
-#line 898 "ntp_parser.y"
+#line 906 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double))); }
     break;
 
-  case 185:
+  case 189:
 
 /* Line 1455 of yacc.c  */
-#line 900 "ntp_parser.y"
+#line 908 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer))); }
     break;
 
-  case 186:
+  case 190:
 
 /* Line 1455 of yacc.c  */
-#line 902 "ntp_parser.y"
+#line 910 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double))); }
     break;
 
-  case 187:
+  case 191:
 
 /* Line 1455 of yacc.c  */
-#line 904 "ntp_parser.y"
+#line 912 "ntp_parser.y"
     { /* Null action, possibly all null parms */ }
     break;
 
-  case 188:
+  case 192:
 
 /* Line 1455 of yacc.c  */
-#line 906 "ntp_parser.y"
+#line 914 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String))); }
     break;
 
-  case 189:
+  case 193:
 
 /* Line 1455 of yacc.c  */
-#line 909 "ntp_parser.y"
+#line 917 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String))); }
     break;
 
-  case 190:
+  case 194:
 
 /* Line 1455 of yacc.c  */
-#line 911 "ntp_parser.y"
+#line 919 "ntp_parser.y"
     {
                        if (input_from_file)
                                enqueue(cfgt.vars,
@@ -3312,24 +3355,24 @@ yyreduce:
                }
     break;
 
-  case 191:
+  case 195:
 
 /* Line 1455 of yacc.c  */
-#line 922 "ntp_parser.y"
+#line 930 "ntp_parser.y"
     { append_queue(cfgt.logconfig, (yyvsp[(2) - (2)].Queue)); }
     break;
 
-  case 192:
+  case 196:
 
 /* Line 1455 of yacc.c  */
-#line 924 "ntp_parser.y"
+#line 932 "ntp_parser.y"
     { append_queue(cfgt.phone, (yyvsp[(2) - (2)].Queue)); }
     break;
 
-  case 193:
+  case 197:
 
 /* Line 1455 of yacc.c  */
-#line 926 "ntp_parser.y"
+#line 934 "ntp_parser.y"
     {
                        if (input_from_file)
                                enqueue(cfgt.vars,
@@ -3341,123 +3384,123 @@ yyreduce:
                }
     break;
 
-  case 194:
+  case 198:
 
 /* Line 1455 of yacc.c  */
-#line 936 "ntp_parser.y"
+#line 944 "ntp_parser.y"
     { enqueue(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); }
     break;
 
-  case 195:
+  case 199:
 
 /* Line 1455 of yacc.c  */
-#line 938 "ntp_parser.y"
+#line 946 "ntp_parser.y"
     { enqueue(cfgt.trap, create_addr_opts_node((yyvsp[(2) - (2)].Address_node), NULL)); }
     break;
 
-  case 196:
+  case 200:
 
 /* Line 1455 of yacc.c  */
-#line 940 "ntp_parser.y"
+#line 948 "ntp_parser.y"
     { enqueue(cfgt.trap, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); }
     break;
 
-  case 197:
+  case 201:
 
 /* Line 1455 of yacc.c  */
-#line 942 "ntp_parser.y"
+#line 950 "ntp_parser.y"
     { append_queue(cfgt.ttl, (yyvsp[(2) - (2)].Queue)); }
     break;
 
-  case 198:
+  case 202:
 
 /* Line 1455 of yacc.c  */
-#line 944 "ntp_parser.y"
+#line 952 "ntp_parser.y"
     { enqueue(cfgt.qos, create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String))); }
     break;
 
-  case 199:
+  case 203:
 
 /* Line 1455 of yacc.c  */
-#line 949 "ntp_parser.y"
+#line 957 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String))); }
     break;
 
-  case 200:
+  case 204:
 
 /* Line 1455 of yacc.c  */
-#line 951 "ntp_parser.y"
+#line 959 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double)));
                          enqueue(cfgt.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String))); }
     break;
 
-  case 201:
+  case 205:
 
 /* Line 1455 of yacc.c  */
-#line 954 "ntp_parser.y"
+#line 962 "ntp_parser.y"
     { enqueue(cfgt.vars, create_attr_sval(T_Driftfile, "\0")); }
     break;
 
-  case 202:
+  case 206:
 
 /* Line 1455 of yacc.c  */
-#line 959 "ntp_parser.y"
+#line 967 "ntp_parser.y"
     { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); }
     break;
 
-  case 203:
+  case 207:
 
 /* Line 1455 of yacc.c  */
-#line 961 "ntp_parser.y"
+#line 969 "ntp_parser.y"
     { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].String), 0); }
     break;
 
-  case 204:
+  case 208:
 
 /* Line 1455 of yacc.c  */
-#line 966 "ntp_parser.y"
+#line 974 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
-  case 205:
+  case 209:
 
 /* Line 1455 of yacc.c  */
-#line 967 "ntp_parser.y"
+#line 975 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
-  case 206:
+  case 210:
 
 /* Line 1455 of yacc.c  */
-#line 971 "ntp_parser.y"
+#line 979 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
     break;
 
-  case 207:
+  case 211:
 
 /* Line 1455 of yacc.c  */
-#line 972 "ntp_parser.y"
+#line 980 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_pval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node)); }
     break;
 
-  case 208:
+  case 212:
 
 /* Line 1455 of yacc.c  */
-#line 976 "ntp_parser.y"
+#line 984 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); }
     break;
 
-  case 209:
+  case 213:
 
 /* Line 1455 of yacc.c  */
-#line 977 "ntp_parser.y"
+#line 985 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); }
     break;
 
-  case 210:
+  case 214:
 
 /* Line 1455 of yacc.c  */
-#line 982 "ntp_parser.y"
+#line 990 "ntp_parser.y"
     {
                        char prefix = (yyvsp[(1) - (1)].String)[0];
                        char *type = (yyvsp[(1) - (1)].String) + 1;
@@ -3471,72 +3514,72 @@ yyreduce:
                }
     break;
 
-  case 211:
+  case 215:
 
 /* Line 1455 of yacc.c  */
-#line 997 "ntp_parser.y"
+#line 1005 "ntp_parser.y"
     {
                        enqueue(cfgt.nic_rules,
                                create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer)));
                }
     break;
 
-  case 212:
+  case 216:
 
 /* Line 1455 of yacc.c  */
-#line 1002 "ntp_parser.y"
+#line 1010 "ntp_parser.y"
     {
                        enqueue(cfgt.nic_rules,
                                create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer)));
                }
     break;
 
-  case 222:
+  case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1033 "ntp_parser.y"
+#line 1041 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); }
     break;
 
-  case 223:
+  case 227:
 
 /* Line 1455 of yacc.c  */
-#line 1034 "ntp_parser.y"
+#line 1042 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); }
     break;
 
-  case 224:
+  case 228:
 
 /* Line 1455 of yacc.c  */
-#line 1038 "ntp_parser.y"
+#line 1046 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_pval((yyvsp[(2) - (2)].String))); }
     break;
 
-  case 225:
+  case 229:
 
 /* Line 1455 of yacc.c  */
-#line 1039 "ntp_parser.y"
+#line 1047 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue(create_pval((yyvsp[(1) - (1)].String))); }
     break;
 
-  case 226:
+  case 230:
 
 /* Line 1455 of yacc.c  */
-#line 1043 "ntp_parser.y"
+#line 1051 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Address_node)); }
     break;
 
-  case 227:
+  case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1044 "ntp_parser.y"
+#line 1052 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Address_node)); }
     break;
 
-  case 228:
+  case 232:
 
 /* Line 1455 of yacc.c  */
-#line 1049 "ntp_parser.y"
+#line 1057 "ntp_parser.y"
     {
                        if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) {
                                yyerror("Integer value is not boolean (0 or 1). Assuming 1");
@@ -3547,31 +3590,31 @@ yyreduce:
                }
     break;
 
-  case 229:
+  case 233:
 
 /* Line 1455 of yacc.c  */
-#line 1057 "ntp_parser.y"
+#line 1065 "ntp_parser.y"
     { (yyval.Integer) = 1; }
     break;
 
-  case 230:
+  case 234:
 
 /* Line 1455 of yacc.c  */
-#line 1058 "ntp_parser.y"
+#line 1066 "ntp_parser.y"
     { (yyval.Integer) = 0; }
     break;
 
-  case 231:
+  case 235:
 
 /* Line 1455 of yacc.c  */
-#line 1062 "ntp_parser.y"
+#line 1070 "ntp_parser.y"
     { (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); }
     break;
 
-  case 233:
+  case 237:
 
 /* Line 1455 of yacc.c  */
-#line 1073 "ntp_parser.y"
+#line 1081 "ntp_parser.y"
     {
                        cfgt.sim_details = create_sim_node((yyvsp[(3) - (5)].Queue), (yyvsp[(4) - (5)].Queue));
 
@@ -3580,150 +3623,150 @@ yyreduce:
                }
     break;
 
-  case 234:
+  case 238:
 
 /* Line 1455 of yacc.c  */
-#line 1087 "ntp_parser.y"
+#line 1095 "ntp_parser.y"
     { old_config_style = 0; }
     break;
 
-  case 235:
+  case 239:
 
 /* Line 1455 of yacc.c  */
-#line 1091 "ntp_parser.y"
+#line 1099 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); }
     break;
 
-  case 236:
+  case 240:
 
 /* Line 1455 of yacc.c  */
-#line 1092 "ntp_parser.y"
+#line 1100 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); }
     break;
 
-  case 237:
+  case 241:
 
 /* Line 1455 of yacc.c  */
-#line 1096 "ntp_parser.y"
+#line 1104 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 238:
+  case 242:
 
 /* Line 1455 of yacc.c  */
-#line 1097 "ntp_parser.y"
+#line 1105 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 239:
+  case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1101 "ntp_parser.y"
+#line 1109 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_server)); }
     break;
 
-  case 240:
+  case 244:
 
 /* Line 1455 of yacc.c  */
-#line 1102 "ntp_parser.y"
+#line 1110 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_server)); }
     break;
 
-  case 241:
+  case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1107 "ntp_parser.y"
+#line 1115 "ntp_parser.y"
     { (yyval.Sim_server) = create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Queue)); }
     break;
 
-  case 242:
+  case 246:
 
 /* Line 1455 of yacc.c  */
-#line 1111 "ntp_parser.y"
+#line 1119 "ntp_parser.y"
     { (yyval.Double) = (yyvsp[(3) - (4)].Double); }
     break;
 
-  case 243:
+  case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1115 "ntp_parser.y"
+#line 1123 "ntp_parser.y"
     { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); }
     break;
 
-  case 244:
+  case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1119 "ntp_parser.y"
+#line 1127 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_script)); }
     break;
 
-  case 245:
+  case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1120 "ntp_parser.y"
+#line 1128 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_script)); }
     break;
 
-  case 246:
+  case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1125 "ntp_parser.y"
+#line 1133 "ntp_parser.y"
     { (yyval.Sim_script) = create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Queue)); }
     break;
 
-  case 247:
+  case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1129 "ntp_parser.y"
+#line 1137 "ntp_parser.y"
     { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); }
     break;
 
-  case 248:
+  case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1130 "ntp_parser.y"
+#line 1138 "ntp_parser.y"
     { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); }
     break;
 
-  case 249:
+  case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1135 "ntp_parser.y"
+#line 1143 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 250:
+  case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1137 "ntp_parser.y"
+#line 1145 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 251:
+  case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1139 "ntp_parser.y"
+#line 1147 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 252:
+  case 256:
 
 /* Line 1455 of yacc.c  */
-#line 1141 "ntp_parser.y"
+#line 1149 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
-  case 253:
+  case 257:
 
 /* Line 1455 of yacc.c  */
-#line 1143 "ntp_parser.y"
+#line 1151 "ntp_parser.y"
     { (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
     break;
 
 
 
 /* Line 1455 of yacc.c  */
-#line 3727 "ntp_parser.c"
+#line 3770 "ntp_parser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3935,7 +3978,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 1147 "ntp_parser.y"
+#line 1155 "ntp_parser.y"
 
 
 void yyerror (char *msg)
index addb064eed1326815f9bd608b4be4d09b6417d20..8dce41fc5c4506028af7444dadf708558f4f85f6 100644 (file)
      T_Iburst = 304,
      T_Ident = 305,
      T_Ignore = 306,
-     T_Includefile = 307,
-     T_Integer = 308,
-     T_Interface = 309,
-     T_Ipv4 = 310,
-     T_Ipv4_flag = 311,
-     T_Ipv6 = 312,
-     T_Ipv6_flag = 313,
-     T_Kernel = 314,
-     T_Key = 315,
-     T_Keys = 316,
-     T_Keysdir = 317,
-     T_Kod = 318,
-     T_Mssntp = 319,
-     T_Leapfile = 320,
-     T_Limited = 321,
-     T_Link = 322,
-     T_Listen = 323,
-     T_Logconfig = 324,
-     T_Logfile = 325,
-     T_Loopstats = 326,
-     T_Lowpriotrap = 327,
-     T_Manycastclient = 328,
-     T_Manycastserver = 329,
-     T_Mask = 330,
-     T_Maxage = 331,
-     T_Maxclock = 332,
-     T_Maxdepth = 333,
-     T_Maxdist = 334,
-     T_Maxmem = 335,
-     T_Maxpoll = 336,
-     T_Minclock = 337,
-     T_Mindepth = 338,
-     T_Mindist = 339,
-     T_Minimum = 340,
-     T_Minpoll = 341,
-     T_Minsane = 342,
-     T_Mode = 343,
-     T_Monitor = 344,
-     T_Month = 345,
-     T_Mru = 346,
-     T_Multicastclient = 347,
-     T_Nic = 348,
-     T_Nolink = 349,
-     T_Nomodify = 350,
-     T_None = 351,
-     T_Nopeer = 352,
-     T_Noquery = 353,
-     T_Noselect = 354,
-     T_Noserve = 355,
-     T_Notrap = 356,
-     T_Notrust = 357,
-     T_Ntp = 358,
-     T_Ntpport = 359,
-     T_NtpSignDsocket = 360,
-     T_Orphan = 361,
-     T_Panic = 362,
-     T_Peer = 363,
-     T_Peerstats = 364,
-     T_Phone = 365,
-     T_Pid = 366,
-     T_Pidfile = 367,
-     T_Pool = 368,
-     T_Port = 369,
-     T_Preempt = 370,
-     T_Prefer = 371,
-     T_Protostats = 372,
-     T_Pw = 373,
-     T_Qos = 374,
-     T_Randfile = 375,
-     T_Rawstats = 376,
-     T_Refid = 377,
-     T_Requestkey = 378,
-     T_Restrict = 379,
-     T_Revoke = 380,
-     T_Saveconfigdir = 381,
-     T_Server = 382,
-     T_Setvar = 383,
-     T_Sign = 384,
-     T_Source = 385,
-     T_Statistics = 386,
-     T_Stats = 387,
-     T_Statsdir = 388,
-     T_Step = 389,
-     T_Stepout = 390,
-     T_Stratum = 391,
-     T_String = 392,
-     T_Sysstats = 393,
-     T_Tick = 394,
-     T_Time1 = 395,
-     T_Time2 = 396,
-     T_Timingstats = 397,
-     T_Tinker = 398,
-     T_Tos = 399,
-     T_Trap = 400,
-     T_True = 401,
-     T_Trustedkey = 402,
-     T_Ttl = 403,
-     T_Type = 404,
-     T_Unconfig = 405,
-     T_Unpeer = 406,
-     T_Version = 407,
-     T_WanderThreshold = 408,
-     T_Week = 409,
-     T_Wildcard = 410,
-     T_Xleave = 411,
-     T_Year = 412,
-     T_Flag = 413,
-     T_Void = 414,
-     T_EOC = 415,
-     T_Simulate = 416,
-     T_Beep_Delay = 417,
-     T_Sim_Duration = 418,
-     T_Server_Offset = 419,
-     T_Duration = 420,
-     T_Freq_Offset = 421,
-     T_Wander = 422,
-     T_Jitter = 423,
-     T_Prop_Delay = 424,
-     T_Proc_Delay = 425
+     T_Incalloc = 307,
+     T_Incmem = 308,
+     T_Initalloc = 309,
+     T_Initmem = 310,
+     T_Includefile = 311,
+     T_Integer = 312,
+     T_Interface = 313,
+     T_Ipv4 = 314,
+     T_Ipv4_flag = 315,
+     T_Ipv6 = 316,
+     T_Ipv6_flag = 317,
+     T_Kernel = 318,
+     T_Key = 319,
+     T_Keys = 320,
+     T_Keysdir = 321,
+     T_Kod = 322,
+     T_Mssntp = 323,
+     T_Leapfile = 324,
+     T_Limited = 325,
+     T_Link = 326,
+     T_Listen = 327,
+     T_Logconfig = 328,
+     T_Logfile = 329,
+     T_Loopstats = 330,
+     T_Lowpriotrap = 331,
+     T_Manycastclient = 332,
+     T_Manycastserver = 333,
+     T_Mask = 334,
+     T_Maxage = 335,
+     T_Maxclock = 336,
+     T_Maxdepth = 337,
+     T_Maxdist = 338,
+     T_Maxmem = 339,
+     T_Maxpoll = 340,
+     T_Minclock = 341,
+     T_Mindepth = 342,
+     T_Mindist = 343,
+     T_Minimum = 344,
+     T_Minpoll = 345,
+     T_Minsane = 346,
+     T_Mode = 347,
+     T_Monitor = 348,
+     T_Month = 349,
+     T_Mru = 350,
+     T_Multicastclient = 351,
+     T_Nic = 352,
+     T_Nolink = 353,
+     T_Nomodify = 354,
+     T_None = 355,
+     T_Nopeer = 356,
+     T_Noquery = 357,
+     T_Noselect = 358,
+     T_Noserve = 359,
+     T_Notrap = 360,
+     T_Notrust = 361,
+     T_Ntp = 362,
+     T_Ntpport = 363,
+     T_NtpSignDsocket = 364,
+     T_Orphan = 365,
+     T_Panic = 366,
+     T_Peer = 367,
+     T_Peerstats = 368,
+     T_Phone = 369,
+     T_Pid = 370,
+     T_Pidfile = 371,
+     T_Pool = 372,
+     T_Port = 373,
+     T_Preempt = 374,
+     T_Prefer = 375,
+     T_Protostats = 376,
+     T_Pw = 377,
+     T_Qos = 378,
+     T_Randfile = 379,
+     T_Rawstats = 380,
+     T_Refid = 381,
+     T_Requestkey = 382,
+     T_Restrict = 383,
+     T_Revoke = 384,
+     T_Saveconfigdir = 385,
+     T_Server = 386,
+     T_Setvar = 387,
+     T_Sign = 388,
+     T_Source = 389,
+     T_Statistics = 390,
+     T_Stats = 391,
+     T_Statsdir = 392,
+     T_Step = 393,
+     T_Stepout = 394,
+     T_Stratum = 395,
+     T_String = 396,
+     T_Sysstats = 397,
+     T_Tick = 398,
+     T_Time1 = 399,
+     T_Time2 = 400,
+     T_Timingstats = 401,
+     T_Tinker = 402,
+     T_Tos = 403,
+     T_Trap = 404,
+     T_True = 405,
+     T_Trustedkey = 406,
+     T_Ttl = 407,
+     T_Type = 408,
+     T_Unconfig = 409,
+     T_Unpeer = 410,
+     T_Version = 411,
+     T_WanderThreshold = 412,
+     T_Week = 413,
+     T_Wildcard = 414,
+     T_Xleave = 415,
+     T_Year = 416,
+     T_Flag = 417,
+     T_Void = 418,
+     T_EOC = 419,
+     T_Simulate = 420,
+     T_Beep_Delay = 421,
+     T_Sim_Duration = 422,
+     T_Server_Offset = 423,
+     T_Duration = 424,
+     T_Freq_Offset = 425,
+     T_Wander = 426,
+     T_Jitter = 427,
+     T_Prop_Delay = 428,
+     T_Proc_Delay = 429
    };
 #endif
 /* Tokens.  */
 #define T_Iburst 304
 #define T_Ident 305
 #define T_Ignore 306
-#define T_Includefile 307
-#define T_Integer 308
-#define T_Interface 309
-#define T_Ipv4 310
-#define T_Ipv4_flag 311
-#define T_Ipv6 312
-#define T_Ipv6_flag 313
-#define T_Kernel 314
-#define T_Key 315
-#define T_Keys 316
-#define T_Keysdir 317
-#define T_Kod 318
-#define T_Mssntp 319
-#define T_Leapfile 320
-#define T_Limited 321
-#define T_Link 322
-#define T_Listen 323
-#define T_Logconfig 324
-#define T_Logfile 325
-#define T_Loopstats 326
-#define T_Lowpriotrap 327
-#define T_Manycastclient 328
-#define T_Manycastserver 329
-#define T_Mask 330
-#define T_Maxage 331
-#define T_Maxclock 332
-#define T_Maxdepth 333
-#define T_Maxdist 334
-#define T_Maxmem 335
-#define T_Maxpoll 336
-#define T_Minclock 337
-#define T_Mindepth 338
-#define T_Mindist 339
-#define T_Minimum 340
-#define T_Minpoll 341
-#define T_Minsane 342
-#define T_Mode 343
-#define T_Monitor 344
-#define T_Month 345
-#define T_Mru 346
-#define T_Multicastclient 347
-#define T_Nic 348
-#define T_Nolink 349
-#define T_Nomodify 350
-#define T_None 351
-#define T_Nopeer 352
-#define T_Noquery 353
-#define T_Noselect 354
-#define T_Noserve 355
-#define T_Notrap 356
-#define T_Notrust 357
-#define T_Ntp 358
-#define T_Ntpport 359
-#define T_NtpSignDsocket 360
-#define T_Orphan 361
-#define T_Panic 362
-#define T_Peer 363
-#define T_Peerstats 364
-#define T_Phone 365
-#define T_Pid 366
-#define T_Pidfile 367
-#define T_Pool 368
-#define T_Port 369
-#define T_Preempt 370
-#define T_Prefer 371
-#define T_Protostats 372
-#define T_Pw 373
-#define T_Qos 374
-#define T_Randfile 375
-#define T_Rawstats 376
-#define T_Refid 377
-#define T_Requestkey 378
-#define T_Restrict 379
-#define T_Revoke 380
-#define T_Saveconfigdir 381
-#define T_Server 382
-#define T_Setvar 383
-#define T_Sign 384
-#define T_Source 385
-#define T_Statistics 386
-#define T_Stats 387
-#define T_Statsdir 388
-#define T_Step 389
-#define T_Stepout 390
-#define T_Stratum 391
-#define T_String 392
-#define T_Sysstats 393
-#define T_Tick 394
-#define T_Time1 395
-#define T_Time2 396
-#define T_Timingstats 397
-#define T_Tinker 398
-#define T_Tos 399
-#define T_Trap 400
-#define T_True 401
-#define T_Trustedkey 402
-#define T_Ttl 403
-#define T_Type 404
-#define T_Unconfig 405
-#define T_Unpeer 406
-#define T_Version 407
-#define T_WanderThreshold 408
-#define T_Week 409
-#define T_Wildcard 410
-#define T_Xleave 411
-#define T_Year 412
-#define T_Flag 413
-#define T_Void 414
-#define T_EOC 415
-#define T_Simulate 416
-#define T_Beep_Delay 417
-#define T_Sim_Duration 418
-#define T_Server_Offset 419
-#define T_Duration 420
-#define T_Freq_Offset 421
-#define T_Wander 422
-#define T_Jitter 423
-#define T_Prop_Delay 424
-#define T_Proc_Delay 425
+#define T_Incalloc 307
+#define T_Incmem 308
+#define T_Initalloc 309
+#define T_Initmem 310
+#define T_Includefile 311
+#define T_Integer 312
+#define T_Interface 313
+#define T_Ipv4 314
+#define T_Ipv4_flag 315
+#define T_Ipv6 316
+#define T_Ipv6_flag 317
+#define T_Kernel 318
+#define T_Key 319
+#define T_Keys 320
+#define T_Keysdir 321
+#define T_Kod 322
+#define T_Mssntp 323
+#define T_Leapfile 324
+#define T_Limited 325
+#define T_Link 326
+#define T_Listen 327
+#define T_Logconfig 328
+#define T_Logfile 329
+#define T_Loopstats 330
+#define T_Lowpriotrap 331
+#define T_Manycastclient 332
+#define T_Manycastserver 333
+#define T_Mask 334
+#define T_Maxage 335
+#define T_Maxclock 336
+#define T_Maxdepth 337
+#define T_Maxdist 338
+#define T_Maxmem 339
+#define T_Maxpoll 340
+#define T_Minclock 341
+#define T_Mindepth 342
+#define T_Mindist 343
+#define T_Minimum 344
+#define T_Minpoll 345
+#define T_Minsane 346
+#define T_Mode 347
+#define T_Monitor 348
+#define T_Month 349
+#define T_Mru 350
+#define T_Multicastclient 351
+#define T_Nic 352
+#define T_Nolink 353
+#define T_Nomodify 354
+#define T_None 355
+#define T_Nopeer 356
+#define T_Noquery 357
+#define T_Noselect 358
+#define T_Noserve 359
+#define T_Notrap 360
+#define T_Notrust 361
+#define T_Ntp 362
+#define T_Ntpport 363
+#define T_NtpSignDsocket 364
+#define T_Orphan 365
+#define T_Panic 366
+#define T_Peer 367
+#define T_Peerstats 368
+#define T_Phone 369
+#define T_Pid 370
+#define T_Pidfile 371
+#define T_Pool 372
+#define T_Port 373
+#define T_Preempt 374
+#define T_Prefer 375
+#define T_Protostats 376
+#define T_Pw 377
+#define T_Qos 378
+#define T_Randfile 379
+#define T_Rawstats 380
+#define T_Refid 381
+#define T_Requestkey 382
+#define T_Restrict 383
+#define T_Revoke 384
+#define T_Saveconfigdir 385
+#define T_Server 386
+#define T_Setvar 387
+#define T_Sign 388
+#define T_Source 389
+#define T_Statistics 390
+#define T_Stats 391
+#define T_Statsdir 392
+#define T_Step 393
+#define T_Stepout 394
+#define T_Stratum 395
+#define T_String 396
+#define T_Sysstats 397
+#define T_Tick 398
+#define T_Time1 399
+#define T_Time2 400
+#define T_Timingstats 401
+#define T_Tinker 402
+#define T_Tos 403
+#define T_Trap 404
+#define T_True 405
+#define T_Trustedkey 406
+#define T_Ttl 407
+#define T_Type 408
+#define T_Unconfig 409
+#define T_Unpeer 410
+#define T_Version 411
+#define T_WanderThreshold 412
+#define T_Week 413
+#define T_Wildcard 414
+#define T_Xleave 415
+#define T_Year 416
+#define T_Flag 417
+#define T_Void 418
+#define T_EOC 419
+#define T_Simulate 420
+#define T_Beep_Delay 421
+#define T_Sim_Duration 422
+#define T_Server_Offset 423
+#define T_Duration 424
+#define T_Freq_Offset 425
+#define T_Wander 426
+#define T_Jitter 427
+#define T_Prop_Delay 428
+#define T_Proc_Delay 429
 
 
 
@@ -405,7 +413,7 @@ typedef union YYSTYPE
 
 
 /* Line 1676 of yacc.c  */
-#line 409 "ntp_parser.h"
+#line 417 "ntp_parser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
index 2cd0c429b48d497f3340e5421875dbbf5e312615..7b02ae55f762d308982d02caf3788b03e0a08abf 100644 (file)
 %token <Integer>       T_Iburst
 %token <Integer>       T_Ident
 %token <Integer>       T_Ignore
+%token <Integer>       T_Incalloc
+%token <Integer>       T_Incmem
+%token <Integer>       T_Initalloc
+%token <Integer>       T_Initmem
 %token <Integer>       T_Includefile
 %token <Integer>       T_Integer
 %token <Integer>       T_Interface
@@ -763,10 +767,14 @@ mru_option_list
        ;
 
 mru_option
-       :       T_Mindepth T_Integer { $$ = create_attr_ival($1, $2); }
-       |       T_Maxage   T_Integer { $$ = create_attr_ival($1, $2); }
-       |       T_Maxdepth T_Integer { $$ = create_attr_ival($1, $2); }
-       |       T_Maxmem   T_Integer { $$ = create_attr_ival($1, $2); }
+       :       T_Incalloc  T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Incmem    T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Initalloc T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Initmem   T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Maxage    T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Maxdepth  T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Maxmem    T_Integer { $$ = create_attr_ival($1, $2); }
+       |       T_Mindepth  T_Integer { $$ = create_attr_ival($1, $2); }
        ;
 
 /* Fudge Commands
index 2cc5e4dd5ce4f4caee066a87cb7e133081555357..454dc866431812c5aa59c90091dbe26e10a89365 100644 (file)
@@ -1885,6 +1885,7 @@ mon_getlist_0(
 {
        register struct info_monitor *im;
        register mon_entry *md;
+       size_t count;
 
 #ifdef DEBUG
        if (debug > 2)
@@ -1896,6 +1897,7 @@ mon_getlist_0(
        }
        im = (struct info_monitor *)prepare_pkt(srcadr, inter, inpkt,
            v6sizeof(struct info_monitor));
+       count = 0;
 
        ITER_DLIST_BEGIN(mon_mru_list, md, mru, mon_entry)
                im->lasttime = htonl((u_int32)((current_time -
@@ -1917,7 +1919,8 @@ mon_getlist_0(
                im->mode = PKT_MODE(md->vn_mode);
                im->version = PKT_VERSION(md->vn_mode);
                im = (struct info_monitor *)more_pkt();
-               if (NULL == im)
+               count++;
+               if (NULL == im || count >= 600)
                        break;
        ITER_DLIST_END()
 
@@ -1936,6 +1939,7 @@ mon_getlist_1(
 {
        register struct info_monitor_1 *im;
        register mon_entry *md;
+       size_t count;
 
        if (!mon_enabled) {
                req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA);
@@ -1943,6 +1947,7 @@ mon_getlist_1(
        }
        im = (struct info_monitor_1 *)prepare_pkt(srcadr, inter, inpkt,
            v6sizeof(struct info_monitor_1));
+       count = 0;
 
        ITER_DLIST_BEGIN(mon_mru_list, md, mru, mon_entry)
                im->lasttime = htonl((u_int32)((current_time -
@@ -1974,7 +1979,8 @@ mon_getlist_1(
                im->mode = PKT_MODE(md->vn_mode);
                im->version = PKT_VERSION(md->vn_mode);
                im = (struct info_monitor_1 *)more_pkt();
-               if (NULL == im)
+               count++;
+               if (NULL == im || count >= 600)
                        break;
        ITER_DLIST_END()
 
index d367036c662ece4a7dc0de974b961bbfd3bd4336..12adb4aa026cdff3dfa0441c951ec57e9a00e78e 100644 (file)
@@ -110,11 +110,11 @@ struct xcmd opcmds[] = {
        { "writelist",  writelist,  { OPT|NTP_UINT, NO, NO, NO },
          { "assocID", "", "", "" },
          "write the system or peer variables included in the variable list" },
-       { "readvar",    readvar,    { OPT|NTP_UINT, OPT|NTP_STR, NO, NO },
-         { "assocID", "name=value[,...]", "", "" },
+       { "rv",     readvar,    { OPT|NTP_UINT, OPT|NTP_STR, OPT|NTP_STR, OPT|NTP_STR, },
+         { "assocID", "varname1", "varname2", "varname3" },
          "read system or peer variables" },
-       { "rv",     readvar,    { OPT|NTP_UINT, OPT|NTP_STR, NO, NO },
-         { "assocID", "name=value[,...]", "", "" },
+       { "rv",     readvar,    { OPT|NTP_UINT, OPT|NTP_STR, OPT|NTP_STR, OPT|NTP_STR, },
+         { "assocID", "varname1", "varname2", "varname3" },
          "read system or peer variables" },
        { "writevar",   writevar,   { NTP_UINT, NTP_STR, NO, NO },
          { "assocID", "name=value,[...]", "", "" },
@@ -623,6 +623,8 @@ readvar(
 {
        int associd;
        struct varlist tmplist[MAXLIST];
+       int tmpcount;
+       int i;
 
        /* HMS: uval? */
        if (pcmd->nargs == 0 || pcmd->argval[0].uval == 0)
@@ -630,9 +632,12 @@ readvar(
        else if ((associd = checkassocid(pcmd->argval[0].uval)) == 0)
                return;
 
-       memset((char *)tmplist, 0, sizeof(tmplist));
-       if (pcmd->nargs >= 2)
-               doaddvlist(tmplist, pcmd->argval[1].string);
+       memset(tmplist, 0, sizeof(tmplist));
+       if (pcmd->nargs > 1) {
+               tmpcount = pcmd->nargs - 1;
+               for (i = 0; i < tmpcount; i++)
+                       doaddvlist(tmplist, pcmd->argval[1 + i].string);
+       }
 
        (void) dolist(tmplist, associd, CTL_OP_READVAR,
                          (associd == 0) ? TYPE_SYS : TYPE_PEER, fp);