diff --git a/doc/Changelog b/doc/Changelog index f346bf243..44a084779 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,8 @@ - CFLAGS are picked up by configure from the environment. - iana portlist updated. - updated ldns to use 1.4.0-pre20081022 so it picks up CFLAGS too. + - new stub-prime: yesno option. Default is off, so it does not prime. + can be turned on to get same behaviour as previous unbound release. 21 October 2008: Wouter - fix update-anchors.sh, so it does not report different RR order diff --git a/doc/example.conf.in b/doc/example.conf.in index df5e03378..ab980e4c0 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -402,10 +402,12 @@ remote-control: # Stub zones. # Create entries like below, to make all queries for 'example.com' and # 'example.org' go to the given list of nameservers. list zero or more -# nameservers by hostname or by ipaddress. +# nameservers by hostname or by ipaddress. If you set stub-prime to yes, +# the list is treated as priming hints (default is no). # stub-zone: # name: "example.com" # stub-addr: 192.0.2.68 +# stub-prime: "no" # stub-zone: # name: "example.org" # stub-host: ns.example.com. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 3e2ee1112..1d8887790 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -756,12 +756,6 @@ bit on replies for the private zone (authoritative servers do not set the AD bit). This setup makes unbound capable of answering queries for the private zone, and can even set the AD bit ('authentic'), but the AA ('authoritative') bit is not set on these replies. -.P -To make a stub setup work, the stub server must serve an NS record set with -an up to date list of servers that serve the zone. -If the NS record set does not list any useful servers for the zone, -then resolution fails. When running the authority server on a specific -port number (using the '@' notation) the NS record set does not matter. .TP .B name: \fI Name of the stub zone. @@ -772,6 +766,12 @@ Name of stub zone nameserver. Is itself resolved before it is used. .B stub\-addr: \fI IP address of stub zone nameserver. Can be IP 4 or IP 6. To use a nondefault port for DNS communication append '@' with the port number. +.TP +.B stub\-prime: \fI +This option is by default off. If enabled it performs NS set priming, +which is similar to root hints, where it starts using the list of nameservers +currently published by the zone. Thus, if the hint list is slightly outdated, +the resolver picks up a correct list online. .SS "Forward Zone Options" .LP There may be multiple diff --git a/iterator/iter_hints.c b/iterator/iter_hints.c index 5c7e5863c..ad5de8fc8 100644 --- a/iterator/iter_hints.c +++ b/iterator/iter_hints.c @@ -212,15 +212,13 @@ read_stubs_host(struct iter_hints* hints, struct config_stub* s, /** set stub server addresses */ static int read_stubs_addr(struct iter_hints* hints, struct config_stub* s, - struct delegpt* dp, int* noprime) + struct delegpt* dp) { struct config_strlist* p; struct sockaddr_storage addr; socklen_t addrlen; for(p = s->addrs; p; p = p->next) { log_assert(p->str); - if(strchr(p->str, '@')) - *noprime = 1; if(!extstrtoaddr(p->str, &addr, &addrlen)) { log_err("cannot parse stub %s ip address: '%s'", s->name, p->str); @@ -239,19 +237,17 @@ static int read_stubs(struct iter_hints* hints, struct config_file* cfg) { struct config_stub* s; - int noprime; for(s = cfg->stubs; s; s = s->next) { struct delegpt* dp = delegpt_create(hints->region); if(!dp) { log_err("out of memory"); return 0; } - noprime = 0; if(!read_stubs_name(hints, s, dp) || !read_stubs_host(hints, s, dp) || - !read_stubs_addr(hints, s, dp, &noprime)) + !read_stubs_addr(hints, s, dp)) return 0; - if(!hints_insert(hints, LDNS_RR_CLASS_IN, dp, noprime)) + if(!hints_insert(hints, LDNS_RR_CLASS_IN, dp, !s->isprime)) return 0; delegpt_log(VERB_QUERY, dp); } diff --git a/util/config_file.h b/util/config_file.h index b2cc0f4dd..cff5b06b8 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -251,6 +251,8 @@ struct config_stub { struct config_strlist* hosts; /** list of stub nameserver addresses (IP address) */ struct config_strlist* addrs; + /** if stub-prime is set */ + int isprime; }; /** diff --git a/util/configlexer.c b/util/configlexer.c index 8926050ea..e97c26470 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 109 -#define YY_END_OF_BUFFER 110 +#define YY_NUM_RULES 110 +#define YY_END_OF_BUFFER 111 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -370,117 +370,117 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[995] = +static yyconst flex_int16_t yy_accept[1001] = { 0, - 1, 1, 93, 93, 97, 97, 101, 101, 105, 105, - 110, 108, 1, 91, 92, 2, 96, 109, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 93, 94, 109, - 95, 109, 97, 98, 99, 109, 104, 101, 102, 103, - 109, 105, 106, 107, 109, 108, 0, 1, 2, 2, - 2, 2, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 93, 0, 97, + 1, 1, 94, 94, 98, 98, 102, 102, 106, 106, + 111, 109, 1, 92, 93, 2, 97, 110, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 94, 95, 110, + 96, 110, 98, 99, 100, 110, 105, 102, 103, 104, + 110, 106, 107, 108, 110, 109, 0, 1, 2, 2, + 2, 2, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 94, 0, 98, - 0, 104, 0, 101, 105, 0, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 0, 105, 0, 102, 106, 0, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 49, 108, - 108, 108, 108, 108, 6, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 49, 109, + 109, 109, 109, 109, 6, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 108, 108, 20, 108, 108, 108, 108, 12, 13, 108, - 15, 14, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 3, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 100, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 23, 108, 108, - 108, 108, 108, 108, 108, 24, 108, 108, 108, 108, + 109, 109, 109, 20, 109, 109, 109, 109, 12, 13, + 109, 15, 14, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 3, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 101, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 23, + 109, 109, 109, 109, 109, 109, 109, 24, 109, 109, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 61, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 60, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 21, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 22, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 62, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 61, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 21, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 22, 109, 109, 109, 109, 109, 109, 109, - 108, 108, 108, 108, 108, 108, 108, 108, 17, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 50, 51, 48, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 5, 108, 108, 108, 108, 108, - 108, 108, 108, 63, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 78, 77, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 25, 108, 108, 108, 108, 108, 108, 108, 108, 76, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 17, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 50, 51, 109, 48, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 5, + 109, 109, 109, 109, 109, 109, 109, 109, 64, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 79, 78, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 25, 109, 109, 109, 109, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 42, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 4, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 86, - 108, 16, 108, 108, 53, 54, 52, 108, 108, 108, - 108, 108, 59, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 52, 109, 109, 109, 109, 77, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 42, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 4, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 87, 109, 16, 109, 109, + 54, 55, 53, 109, 109, 109, 109, 109, 60, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 67, 108, 108, 108, 108, 108, - 108, 108, 108, 31, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 58, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 62, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 69, 108, 108, 108, 108, 57, 108, 84, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 32, 33, 108, 38, 72, 108, 79, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 68, 109, 109, 109, 109, 109, 109, 109, 109, 31, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 59, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 63, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 70, 109, 109, + 109, 109, 58, 109, 85, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 32, - 108, 27, 108, 74, 108, 108, 108, 108, 108, 7, - 108, 47, 83, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 64, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 73, 26, 28, 108, 108, 108, 108, - 108, 46, 108, 108, 108, 87, 108, 108, 108, 108, - 108, 45, 108, 108, 108, 108, 108, 108, 89, 108, - 108, 108, 108, 108, 108, 108, 11, 108, 108, 108, - 108, 108, 108, 10, 108, 108, 29, 108, 88, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 90, 85, + 33, 109, 38, 73, 109, 80, 109, 27, 109, 75, + 109, 109, 109, 109, 109, 7, 109, 47, 84, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 74, + 26, 28, 109, 109, 109, 109, 109, 46, 109, 109, + 109, 88, 109, 109, 109, 109, 109, 45, 109, 109, + 109, 109, 109, 109, 90, 109, 109, 109, 109, 109, + 109, 109, 11, 109, 109, 109, 109, 109, 109, 10, + 109, 109, 29, 109, 89, 109, 109, 109, 109, 109, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 34, - 108, 108, 108, 108, 108, 30, 108, 108, 108, 65, - 66, 108, 108, 68, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 18, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 82, 108, 108, - 108, 108, 108, 108, 19, 108, 9, 108, 108, 80, - 39, 108, 108, 71, 55, 108, 108, 41, 44, 40, - 108, 35, 108, 8, 108, 70, 108, 108, 108, 36, - 108, 81, 108, 56, 43, 37, 108, 108, 108, 108, - 108, 108, 75, 0 + 109, 109, 109, 109, 91, 86, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 34, 109, 109, 109, 109, + 109, 30, 109, 109, 109, 66, 67, 109, 109, 69, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 18, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 83, 109, 109, 109, 109, 109, 109, + 19, 109, 9, 109, 109, 81, 39, 109, 109, 72, + 56, 109, 109, 41, 44, 40, 109, 35, 109, 8, + 109, 71, 109, 109, 109, 36, 109, 82, 109, 57, + 43, 37, 109, 109, 109, 109, 109, 109, 76, 0 } ; @@ -524,20 +524,20 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1006] = +static yyconst flex_int16_t yy_base[1012] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 2038, 2024, 50, 2039, 2039, 82, 2039, 89, 33, 84, + 2050, 2036, 50, 2051, 2051, 82, 2051, 89, 33, 84, 79, 62, 72, 89, 93, 95, 96, 100, 102, 103, - 49, 105, 111, 113, 127, 106, 130, 2023, 2039, 2039, - 2039, 145, 2022, 2039, 2039, 118, 2021, 2031, 2039, 2039, - 149, 2019, 2039, 2039, 155, 2018, 159, 163, 0, 166, + 49, 105, 111, 113, 127, 106, 130, 2035, 2051, 2051, + 2051, 145, 2034, 2051, 2051, 118, 2033, 2043, 2051, 2051, + 149, 2031, 2051, 2051, 155, 2030, 159, 163, 0, 166, 0, 0, 119, 139, 144, 149, 154, 159, 169, 165, 161, 168, 167, 170, 174, 173, 176, 184, 178, 183, 189, 188, 193, 196, 199, 197, 198, 200, 204, 205, - 208, 209, 211, 212, 217, 220, 218, 2017, 236, 2016, + 208, 209, 211, 212, 217, 220, 218, 2029, 236, 2028, - 240, 2015, 246, 2025, 2013, 250, 239, 243, 245, 246, + 240, 2027, 246, 2037, 2025, 250, 239, 243, 245, 246, 247, 253, 267, 249, 250, 221, 256, 255, 262, 257, 258, 259, 270, 282, 272, 264, 289, 286, 295, 297, 293, 296, 294, 298, 301, 299, 303, 304, 305, 132, @@ -549,212 +549,214 @@ static yyconst flex_int16_t yy_base[1006] = 402, 406, 412, 410, 413, 420, 415, 426, 439, 424, 427, 432, 438, 441, 446, 445, 447, 449, 452, 455, - 451, 458, 464, 471, 462, 468, 469, 475, 2012, 477, - 470, 472, 479, 481, 2011, 482, 484, 486, 492, 483, - 485, 495, 497, 505, 498, 506, 507, 509, 511, 513, - 512, 514, 516, 515, 525, 526, 528, 529, 518, 537, - 536, 543, 545, 551, 548, 553, 550, 554, 561, 559, - 557, 560, 564, 565, 570, 566, 576, 572, 577, 583, - 589, 568, 587, 591, 592, 586, 585, 593, 595, 601, - 602, 605, 614, 606, 612, 607, 610, 620, 617, 619, - 522, 621, 624, 627, 628, 630, 631, 629, 632, 638, + 451, 458, 464, 471, 462, 468, 469, 475, 2024, 477, + 470, 472, 479, 481, 2023, 482, 484, 486, 492, 483, + 485, 495, 497, 505, 498, 506, 507, 509, 513, 514, + 512, 515, 516, 522, 523, 519, 527, 528, 529, 536, + 530, 542, 546, 552, 549, 551, 553, 555, 561, 560, + 557, 554, 563, 565, 569, 566, 575, 573, 578, 580, + 588, 584, 586, 591, 587, 593, 595, 596, 597, 603, + 599, 607, 617, 600, 614, 606, 605, 613, 624, 625, + 627, 622, 615, 629, 630, 635, 636, 639, 632, 643, - 639, 643, 2010, 650, 646, 648, 651, 2009, 2008, 653, - 2007, 2006, 654, 660, 671, 657, 649, 659, 669, 665, - 673, 661, 679, 682, 677, 686, 687, 681, 692, 695, - 693, 700, 701, 702, 705, 704, 707, 717, 713, 714, - 718, 721, 2005, 722, 723, 715, 725, 729, 726, 738, - 730, 736, 737, 741, 743, 747, 745, 746, 751, 753, - 754, 755, 780, 756, 757, 760, 761, 770, 767, 764, - 776, 786, 790, 758, 784, 773, 800, 2004, 802, 801, - 794, 803, 805, 806, 807, 808, 809, 2003, 811, 814, - 817, 820, 818, 829, 836, 2002, 833, 824, 821, 832, + 633, 645, 653, 2022, 651, 649, 655, 656, 2021, 2020, + 657, 2019, 2018, 658, 664, 675, 660, 666, 661, 669, + 670, 672, 676, 680, 685, 678, 689, 695, 690, 700, + 701, 702, 703, 706, 692, 707, 709, 718, 720, 719, + 713, 723, 725, 2017, 721, 729, 726, 731, 732, 735, + 734, 742, 738, 739, 744, 743, 752, 747, 754, 755, + 756, 759, 760, 761, 786, 762, 763, 765, 767, 771, + 773, 769, 770, 792, 796, 790, 780, 784, 805, 2016, + 811, 807, 800, 808, 809, 813, 812, 815, 816, 2015, + 818, 820, 823, 824, 827, 831, 839, 2014, 837, 840, - 838, 840, 844, 842, 846, 848, 849, 852, 403, 856, - 850, 858, 859, 861, 867, 862, 864, 868, 2001, 869, - 876, 872, 870, 874, 881, 879, 890, 882, 887, 892, - 885, 891, 898, 899, 901, 902, 903, 905, 907, 906, - 908, 2000, 910, 919, 909, 925, 933, 918, 939, 915, - 935, 936, 937, 943, 946, 942, 944, 945, 949, 951, - 956, 952, 957, 958, 960, 962, 968, 973, 975, 964, - 969, 978, 980, 982, 1999, 992, 993, 995, 991, 979, - 997, 994, 999, 1002, 1003, 1001, 1005, 1006, 1998, 1012, - 1008, 1009, 1013, 1018, 1010, 1017, 1016, 1023, 1025, 1036, + 826, 842, 843, 844, 847, 851, 852, 853, 854, 856, + 857, 403, 863, 862, 865, 867, 868, 874, 871, 875, + 873, 2013, 876, 883, 880, 879, 881, 887, 888, 897, + 891, 899, 900, 894, 902, 901, 904, 907, 910, 911, + 912, 915, 914, 923, 2012, 921, 917, 920, 922, 938, + 928, 944, 942, 945, 946, 936, 952, 953, 951, 955, + 949, 957, 962, 964, 966, 968, 969, 970, 971, 973, + 975, 979, 981, 982, 983, 988, 986, 989, 2011, 999, + 1003, 1005, 997, 1001, 1008, 1004, 1009, 1010, 1011, 1013, + 1014, 1016, 2010, 1022, 1015, 1018, 1023, 1026, 1019, 1031, - 1026, 1037, 1038, 1039, 1040, 1047, 1048, 1049, 1997, 1051, - 1052, 1059, 1062, 1057, 1069, 1055, 1065, 1066, 1067, 1068, - 1070, 1072, 1075, 1073, 1079, 1078, 1081, 1083, 1089, 1095, - 1099, 1996, 1995, 1994, 1093, 1097, 1100, 1101, 1103, 1104, - 1105, 1107, 1110, 1108, 1993, 1111, 1113, 1115, 1117, 1121, - 1128, 1120, 1130, 1992, 1132, 1122, 1138, 1131, 1134, 1141, - 1143, 1145, 1150, 1142, 1151, 1152, 1153, 1156, 1162, 1158, - 1159, 1161, 1165, 1164, 1168, 1991, 1990, 1166, 1170, 1174, - 1181, 1192, 1194, 1177, 1185, 1188, 1191, 1195, 1199, 1196, - 1989, 1207, 1208, 1204, 1209, 1211, 1215, 1201, 1216, 1988, + 1025, 1027, 1035, 1046, 1037, 1040, 1047, 1048, 1052, 1058, + 1059, 1060, 2009, 1063, 1056, 1071, 1065, 1067, 1077, 1074, + 1076, 1078, 1079, 1080, 1081, 1084, 1082, 1085, 1087, 1086, + 1091, 1096, 1088, 1109, 1110, 2008, 2007, 1112, 2006, 1113, + 1092, 1103, 1114, 1118, 1115, 1119, 1121, 1122, 1123, 2005, + 1125, 1124, 1127, 1131, 1134, 1141, 1130, 1140, 2004, 1148, + 1137, 1151, 1138, 1145, 1149, 1155, 1158, 1159, 1161, 1163, + 1166, 1167, 1169, 1173, 1170, 1171, 1172, 1174, 1175, 1176, + 2003, 2002, 1185, 1177, 1188, 1195, 1203, 1202, 1199, 1205, + 1206, 1207, 1208, 1209, 1211, 2001, 1217, 1220, 1216, 1225, - 1217, 1221, 1222, 1223, 1226, 1224, 1229, 1236, 1230, 1232, - 1238, 1246, 1240, 1248, 1256, 1243, 1253, 1255, 1258, 1259, - 1987, 1265, 1261, 1269, 1266, 1268, 1275, 1271, 1272, 1273, - 1274, 1276, 1277, 1280, 1278, 1282, 1286, 1284, 1287, 1296, - 1299, 1986, 1300, 1306, 1304, 1302, 1307, 1308, 1311, 1313, - 1314, 1316, 1318, 1319, 1328, 1335, 1336, 1342, 1329, 1340, - 1321, 1343, 1327, 1345, 1348, 1350, 1353, 1354, 1352, 1985, - 1351, 1984, 1364, 1359, 1983, 1982, 1981, 1367, 1355, 1369, - 1371, 1375, 1980, 1366, 1377, 1379, 1380, 1381, 1382, 1383, - 1384, 1385, 1387, 1388, 1396, 1391, 1397, 1399, 1403, 1405, + 2000, 1223, 1214, 1227, 1230, 1999, 1213, 1235, 1236, 1237, + 1238, 1240, 1244, 1250, 1249, 1251, 1252, 1254, 1257, 1260, + 1267, 1243, 1265, 1271, 1273, 1274, 1998, 1280, 1268, 1281, + 1278, 1283, 1284, 1285, 1287, 1288, 1289, 1290, 1291, 1292, + 1294, 1295, 1296, 1298, 1300, 1306, 1310, 1997, 1313, 1320, + 1316, 1312, 1322, 1321, 1323, 1325, 1328, 1331, 1329, 1333, + 1342, 1346, 1348, 1354, 1339, 1352, 1335, 1358, 1355, 1357, + 1362, 1359, 1363, 1364, 1366, 1996, 1367, 1995, 1371, 1373, + 1994, 1993, 1992, 1381, 1374, 1384, 1178, 1387, 1991, 1378, + 1388, 1380, 1390, 1392, 1393, 1394, 1395, 1403, 1397, 1396, - 1407, 1409, 1416, 1413, 1412, 1414, 1415, 1421, 1423, 1422, - 1424, 1419, 1420, 1435, 1979, 1438, 1440, 1443, 1445, 1446, - 1447, 1448, 1456, 1978, 1450, 1458, 1460, 1452, 1462, 1466, - 1463, 1468, 1469, 1471, 1472, 1473, 1977, 1474, 1476, 1480, - 1481, 1486, 1491, 1483, 1498, 1500, 1495, 1502, 1976, 1503, - 1505, 1506, 1510, 1511, 1507, 1512, 1516, 1519, 1520, 1522, - 1524, 1526, 1527, 1530, 1531, 1533, 1535, 1534, 1537, 1538, - 1475, 1975, 1541, 1544, 1550, 1548, 1974, 1545, 1973, 1555, - 1559, 1563, 1556, 1565, 1566, 1567, 1569, 1575, 1571, 1572, - 1573, 1576, 1579, 1972, 1971, 1582, 1970, 1969, 1590, 1968, + 1407, 1400, 1411, 1410, 1413, 1417, 1419, 1420, 1428, 1424, + 1425, 1421, 1427, 1433, 1432, 1431, 1434, 1430, 1436, 1448, + 1990, 1449, 1451, 1457, 1453, 1446, 1459, 1461, 1468, 1989, + 1464, 1470, 1471, 1474, 1475, 1477, 1476, 1478, 1479, 1482, + 1483, 1484, 1988, 1485, 1487, 1489, 1492, 1507, 1509, 1499, + 1511, 1514, 1496, 1517, 1987, 1518, 1520, 1521, 1525, 1504, + 1526, 1527, 1528, 1534, 1531, 1536, 1538, 1539, 1541, 1543, + 1546, 1545, 1547, 1548, 1549, 1553, 1490, 1986, 1438, 1559, + 1556, 1569, 1985, 1560, 1984, 1567, 1571, 1574, 1575, 1577, + 1561, 1578, 1582, 1588, 1584, 1585, 1586, 1589, 1592, 1983, - 1592, 1967, 1594, 1966, 1585, 1595, 1597, 1598, 1599, 1965, - 1601, 1964, 1963, 1602, 1603, 1606, 1609, 1610, 1612, 1614, - 1615, 1616, 1618, 1623, 1619, 1621, 1624, 1629, 1631, 1639, - 1962, 1625, 1646, 1633, 1635, 1640, 1644, 1648, 1650, 1656, - 1654, 1652, 1655, 1961, 1960, 1959, 1657, 1659, 1664, 1661, - 1665, 1955, 1673, 1666, 1679, 1951, 1680, 1668, 1682, 1684, - 1687, 1950, 1686, 1688, 1694, 1695, 1697, 1703, 1949, 1700, - 1704, 1706, 1698, 1708, 1711, 1713, 1945, 1714, 1715, 1719, - 1720, 1723, 1721, 1944, 1727, 1724, 1940, 1739, 1939, 1725, - 1740, 1732, 1743, 1747, 1730, 1753, 1750, 1670, 1938, 1932, + 1982, 1595, 1981, 1980, 1600, 1979, 1603, 1978, 1605, 1977, + 1611, 1607, 1593, 1610, 1612, 1976, 1614, 1975, 1974, 1615, + 1616, 1619, 1622, 1623, 1625, 1626, 1627, 1628, 1630, 1633, + 1631, 1634, 1636, 1641, 1645, 1648, 1973, 1637, 1651, 1644, + 1656, 1658, 1659, 1660, 1662, 1668, 1665, 1664, 1666, 1972, + 1971, 1970, 1667, 1669, 1671, 1673, 1677, 1969, 1682, 1678, + 1685, 1968, 1689, 1691, 1692, 1693, 1694, 1967, 1696, 1700, + 1702, 1703, 1709, 1715, 1966, 1712, 1704, 1719, 1720, 1721, + 1723, 1725, 1965, 1726, 1727, 1732, 1728, 1733, 1735, 1964, + 1738, 1736, 1960, 1743, 1956, 1739, 1750, 1752, 1754, 1757, - 1751, 1752, 1754, 1755, 1756, 1757, 1758, 1759, 1762, 1904, - 1763, 1765, 1775, 1772, 1769, 1903, 1779, 1780, 1764, 1902, - 1901, 1785, 1781, 1900, 1791, 1787, 1793, 1795, 1797, 1798, - 1799, 1800, 1801, 1802, 1804, 1809, 1899, 1811, 1812, 1815, - 1819, 1823, 1816, 1820, 1825, 1830, 1826, 1897, 1831, 1834, - 1839, 1842, 1843, 1847, 1896, 1849, 1895, 1852, 1853, 1894, - 1893, 1855, 1856, 1892, 1891, 1844, 1859, 1890, 1889, 1860, - 1866, 1835, 1867, 1767, 1869, 1728, 1857, 1873, 1877, 1426, - 1879, 1163, 1880, 1015, 912, 777, 1862, 1874, 1870, 1884, - 1886, 1888, 703, 2039, 1918, 1924, 1930, 1936, 675, 1942, + 1744, 1765, 1762, 1706, 1955, 1954, 1748, 1763, 1764, 1766, + 1768, 1769, 1770, 1772, 1774, 1950, 1775, 1777, 1780, 1784, + 1776, 1949, 1790, 1786, 1787, 1945, 1944, 1791, 1793, 1943, + 1800, 1797, 1803, 1807, 1801, 1804, 1811, 1808, 1809, 1810, + 1815, 1820, 1937, 1822, 1824, 1826, 1828, 1831, 1833, 1832, + 1837, 1839, 1834, 1909, 1841, 1843, 1850, 1855, 1851, 1858, + 1908, 1859, 1904, 1862, 1863, 1903, 1902, 1865, 1866, 1901, + 1900, 1847, 1869, 1899, 1897, 1896, 1875, 1895, 1872, 1840, + 1878, 1554, 1870, 1880, 1882, 1501, 1884, 1050, 1885, 924, + 777, 683, 1887, 1889, 1890, 1892, 1891, 1894, 571, 2051, - 1948, 1954, 62, 1959, 1965 + 1923, 1929, 1935, 1941, 550, 1947, 1953, 1959, 62, 1964, + 1970 } ; -static yyconst flex_int16_t yy_def[1006] = +static yyconst flex_int16_t yy_def[1012] = { 0, - 994, 1, 995, 995, 996, 996, 997, 997, 998, 998, - 994, 999, 994, 994, 994, 1000, 994, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 1001, 994, 994, - 994, 1001, 1002, 994, 994, 1002, 1003, 994, 994, 994, - 1003, 1004, 994, 994, 1004, 999, 999, 994, 1005, 1000, - 1005, 1000, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 1001, 1001, 1002, + 1000, 1, 1001, 1001, 1002, 1002, 1003, 1003, 1004, 1004, + 1000, 1005, 1000, 1000, 1000, 1006, 1000, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1007, 1000, 1000, + 1000, 1007, 1008, 1000, 1000, 1008, 1009, 1000, 1000, 1000, + 1009, 1010, 1000, 1000, 1010, 1005, 1005, 1000, 1011, 1006, + 1011, 1006, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1007, 1007, 1008, - 1002, 1003, 1003, 994, 1004, 1004, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1008, 1009, 1009, 1000, 1010, 1010, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 0, 994, 994, 994, 994, 994, 994, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 0, - 994, 994, 994, 994, 994 + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000 } ; -static yyconst flex_int16_t yy_nxt[2079] = +static yyconst flex_int16_t yy_nxt[2091] = { 0, 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, 12, 12, 18, 19, 12, 20, 21, 22, 23, 12, @@ -802,7 +804,7 @@ static yyconst flex_int16_t yy_nxt[2079] = 228, 57, 57, 57, 232, 57, 57, 230, 57, 57, 57, 233, 231, 235, 57, 57, 57, 227, 57, 246, - 57, 229, 57, 244, 57, 57, 472, 57, 234, 236, + 57, 229, 57, 244, 57, 57, 476, 57, 234, 236, 237, 57, 57, 238, 239, 243, 57, 245, 57, 57, 248, 250, 247, 251, 57, 240, 241, 242, 252, 253, 57, 57, 249, 57, 257, 255, 254, 57, 57, 57, @@ -812,181 +814,182 @@ static yyconst flex_int16_t yy_nxt[2079] = 274, 57, 276, 57, 57, 57, 57, 57, 57, 282, 277, 280, 272, 275, 57, 278, 281, 57, 285, 57, - 57, 291, 289, 283, 279, 286, 284, 57, 57, 57, - 293, 57, 290, 57, 57, 57, 57, 57, 57, 288, - 57, 298, 301, 287, 57, 295, 294, 57, 57, 303, - 57, 57, 300, 292, 296, 305, 297, 299, 57, 57, - 351, 302, 306, 304, 308, 57, 309, 57, 310, 311, - 57, 307, 57, 57, 312, 57, 57, 313, 315, 57, - 314, 57, 57, 57, 317, 316, 57, 57, 57, 324, - 57, 319, 57, 325, 57, 321, 331, 326, 57, 57, - 322, 320, 318, 327, 323, 57, 330, 57, 57, 57, + 57, 292, 290, 283, 279, 286, 284, 57, 57, 57, + 294, 57, 291, 287, 57, 57, 57, 57, 57, 289, + 302, 57, 299, 288, 57, 57, 295, 296, 304, 57, + 57, 57, 57, 293, 303, 297, 298, 300, 57, 301, + 56, 307, 305, 309, 57, 308, 306, 310, 57, 311, + 312, 57, 313, 57, 57, 57, 57, 57, 316, 57, + 314, 315, 57, 57, 318, 57, 317, 57, 57, 325, + 320, 57, 326, 57, 322, 57, 319, 57, 327, 323, + 57, 321, 57, 324, 328, 331, 57, 330, 57, 57, - 329, 57, 332, 57, 57, 57, 333, 57, 339, 334, - 337, 336, 338, 57, 57, 328, 335, 57, 57, 57, - 341, 342, 57, 340, 57, 343, 57, 348, 345, 57, - 349, 57, 57, 57, 346, 350, 57, 347, 344, 57, - 57, 57, 57, 57, 57, 355, 354, 356, 357, 353, - 57, 57, 352, 359, 361, 57, 362, 363, 57, 358, - 57, 57, 57, 57, 360, 57, 57, 369, 365, 57, - 368, 57, 57, 57, 375, 56, 364, 57, 366, 376, - 378, 57, 367, 57, 379, 57, 380, 370, 381, 57, - 371, 57, 382, 57, 57, 372, 377, 383, 57, 57, + 57, 333, 332, 57, 335, 57, 334, 57, 57, 57, + 340, 57, 57, 338, 339, 57, 329, 57, 57, 57, + 341, 337, 342, 336, 343, 57, 57, 57, 344, 57, + 346, 350, 345, 347, 57, 348, 57, 57, 351, 57, + 349, 57, 57, 352, 57, 57, 354, 57, 57, 356, + 353, 57, 357, 358, 355, 57, 359, 57, 365, 362, + 363, 57, 360, 57, 361, 57, 364, 57, 57, 57, + 57, 371, 57, 57, 370, 367, 57, 377, 57, 366, + 380, 57, 57, 368, 57, 382, 369, 57, 57, 381, + 57, 372, 57, 384, 373, 57, 378, 57, 379, 374, - 386, 373, 374, 388, 57, 57, 385, 57, 387, 384, - 389, 390, 57, 57, 57, 57, 57, 57, 396, 57, - 391, 392, 394, 395, 397, 57, 57, 57, 398, 57, - 57, 400, 393, 57, 57, 57, 401, 57, 57, 404, - 399, 57, 57, 403, 402, 409, 405, 407, 57, 57, - 57, 406, 408, 57, 412, 57, 414, 57, 57, 57, - 411, 410, 415, 57, 419, 57, 57, 57, 57, 57, - 57, 417, 57, 57, 413, 416, 57, 431, 439, 57, - 432, 420, 57, 418, 428, 57, 429, 433, 57, 57, - 435, 421, 57, 427, 430, 422, 57, 423, 57, 437, + 385, 57, 57, 383, 57, 375, 376, 57, 388, 387, + 386, 390, 57, 57, 57, 57, 391, 389, 57, 57, + 392, 57, 395, 393, 396, 57, 394, 399, 397, 398, + 57, 57, 57, 57, 400, 57, 402, 57, 57, 401, + 403, 57, 405, 57, 57, 406, 57, 57, 404, 412, + 57, 57, 408, 410, 57, 57, 57, 407, 409, 57, + 411, 415, 418, 414, 57, 417, 57, 57, 57, 413, + 422, 57, 57, 57, 57, 57, 416, 57, 434, 57, + 420, 57, 57, 57, 419, 57, 435, 423, 421, 57, + 431, 432, 57, 436, 439, 438, 57, 424, 57, 430, - 436, 424, 57, 425, 441, 434, 57, 438, 426, 443, - 440, 442, 57, 57, 57, 57, 444, 57, 57, 57, - 57, 57, 447, 57, 449, 445, 57, 448, 446, 57, - 57, 453, 57, 57, 454, 451, 57, 455, 452, 456, - 450, 57, 457, 458, 57, 57, 459, 463, 57, 460, - 57, 461, 57, 462, 57, 464, 57, 465, 57, 466, - 57, 57, 57, 473, 57, 469, 470, 471, 57, 475, - 57, 57, 467, 57, 57, 478, 57, 474, 468, 57, - 57, 57, 57, 483, 57, 480, 57, 477, 57, 484, - 476, 57, 479, 57, 57, 482, 485, 57, 487, 57, + 433, 425, 57, 426, 57, 440, 443, 427, 57, 428, + 442, 437, 57, 441, 429, 444, 445, 57, 446, 57, + 57, 57, 447, 57, 57, 57, 450, 57, 57, 452, + 57, 448, 57, 449, 451, 57, 57, 456, 57, 57, + 457, 458, 454, 57, 460, 455, 461, 453, 459, 57, + 462, 57, 57, 463, 57, 57, 57, 466, 465, 57, + 467, 468, 469, 57, 57, 57, 57, 464, 57, 57, + 477, 473, 475, 474, 57, 57, 479, 57, 472, 57, + 57, 470, 482, 57, 471, 57, 57, 57, 57, 478, + 487, 57, 57, 57, 481, 57, 484, 488, 480, 57, - 486, 489, 57, 57, 57, 481, 488, 494, 491, 492, - 57, 57, 490, 57, 57, 57, 493, 57, 57, 57, - 57, 57, 57, 500, 57, 495, 496, 57, 512, 503, - 57, 57, 497, 499, 501, 498, 504, 57, 502, 505, - 508, 506, 507, 510, 509, 57, 511, 57, 57, 57, - 516, 57, 513, 517, 57, 57, 57, 57, 57, 518, - 519, 57, 514, 57, 57, 524, 520, 515, 57, 57, - 57, 521, 57, 522, 57, 523, 57, 528, 525, 532, - 57, 57, 526, 527, 533, 57, 534, 57, 529, 536, - 57, 57, 57, 531, 57, 537, 535, 530, 538, 540, + 57, 483, 486, 57, 491, 489, 57, 490, 493, 57, + 485, 57, 57, 57, 57, 492, 57, 496, 498, 57, + 495, 494, 57, 57, 57, 497, 57, 57, 499, 57, + 504, 500, 57, 57, 57, 57, 57, 509, 501, 511, + 57, 503, 505, 502, 507, 512, 506, 508, 57, 513, + 57, 515, 510, 514, 57, 516, 57, 57, 57, 520, + 521, 57, 517, 57, 57, 57, 519, 57, 522, 57, + 524, 523, 518, 528, 57, 525, 57, 526, 57, 527, + 57, 57, 57, 57, 536, 57, 537, 57, 532, 529, + 530, 57, 539, 57, 57, 57, 538, 531, 57, 533, - 541, 539, 542, 57, 57, 57, 57, 57, 545, 57, - 544, 57, 543, 57, 57, 57, 549, 57, 57, 553, - 57, 57, 57, 554, 57, 57, 546, 57, 57, 57, - 57, 547, 548, 550, 558, 57, 552, 57, 57, 556, - 562, 559, 551, 560, 563, 557, 555, 561, 57, 57, - 57, 57, 57, 564, 570, 571, 565, 569, 566, 57, - 57, 57, 572, 57, 57, 567, 575, 57, 573, 57, - 576, 57, 568, 577, 57, 578, 579, 57, 57, 57, - 57, 57, 57, 574, 57, 57, 580, 57, 587, 588, - 57, 57, 591, 57, 584, 57, 581, 582, 583, 586, + 57, 57, 535, 541, 543, 542, 545, 534, 544, 57, + 546, 57, 547, 57, 540, 57, 57, 57, 548, 550, + 57, 57, 57, 57, 554, 57, 57, 57, 57, 558, + 57, 57, 549, 559, 57, 57, 551, 57, 57, 57, + 553, 552, 563, 57, 567, 555, 557, 57, 561, 57, + 564, 556, 57, 560, 568, 562, 566, 565, 57, 57, + 57, 571, 57, 569, 57, 575, 576, 570, 57, 574, + 57, 57, 57, 577, 572, 57, 582, 57, 580, 57, + 578, 573, 581, 57, 584, 583, 57, 579, 57, 57, + 57, 57, 57, 57, 57, 592, 57, 57, 57, 57, - 592, 57, 594, 585, 589, 57, 595, 57, 596, 57, - 590, 57, 57, 57, 600, 57, 57, 57, 602, 57, - 57, 593, 57, 57, 597, 57, 604, 57, 599, 57, - 603, 609, 57, 57, 57, 611, 601, 598, 610, 605, - 57, 606, 57, 57, 57, 607, 57, 608, 613, 614, - 57, 616, 612, 57, 57, 57, 621, 57, 619, 615, - 620, 617, 57, 57, 57, 57, 618, 622, 57, 628, - 57, 57, 623, 57, 57, 57, 57, 57, 57, 626, - 57, 627, 57, 624, 625, 633, 57, 636, 634, 57, - 629, 630, 632, 57, 631, 638, 635, 57, 639, 641, + 57, 593, 596, 57, 57, 585, 589, 586, 57, 587, + 588, 591, 594, 597, 590, 57, 599, 600, 595, 603, + 598, 57, 57, 601, 57, 57, 57, 57, 602, 606, + 57, 57, 608, 57, 57, 57, 57, 57, 610, 57, + 604, 605, 57, 57, 609, 615, 57, 607, 617, 57, + 57, 616, 57, 57, 611, 612, 613, 57, 619, 614, + 57, 57, 618, 57, 622, 620, 625, 57, 623, 627, + 57, 57, 626, 57, 621, 57, 628, 624, 57, 57, + 634, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 629, 742, 632, 633, 630, 639, 57, 631, 640, - 57, 637, 640, 57, 57, 642, 57, 57, 57, 643, - 644, 57, 648, 57, 650, 651, 57, 646, 645, 57, - 57, 57, 652, 57, 653, 647, 649, 57, 57, 57, - 654, 655, 657, 57, 57, 57, 57, 660, 57, 661, - 662, 57, 57, 666, 57, 656, 658, 663, 57, 659, - 57, 664, 57, 665, 667, 57, 669, 670, 57, 672, - 57, 671, 668, 673, 675, 57, 676, 57, 57, 677, - 57, 57, 679, 57, 678, 674, 681, 57, 57, 683, - 57, 57, 684, 57, 57, 57, 57, 57, 57, 57, - 57, 680, 57, 693, 57, 685, 57, 686, 57, 57, + 57, 638, 635, 636, 641, 637, 642, 57, 643, 644, + 647, 57, 645, 648, 57, 57, 646, 57, 57, 57, + 57, 57, 654, 57, 656, 57, 57, 657, 57, 57, + 650, 649, 57, 652, 658, 57, 651, 57, 653, 57, + 659, 655, 57, 661, 662, 665, 660, 57, 57, 57, + 57, 666, 57, 667, 668, 57, 57, 672, 663, 669, + 664, 57, 57, 57, 57, 676, 57, 670, 671, 57, + 675, 678, 57, 673, 679, 680, 681, 57, 677, 57, + 57, 674, 682, 57, 683, 57, 57, 685, 687, 684, + 57, 690, 57, 57, 689, 57, 57, 57, 686, 57, - 698, 695, 687, 682, 688, 689, 690, 696, 57, 691, - 694, 57, 57, 702, 57, 692, 57, 701, 57, 57, - 57, 704, 697, 57, 705, 57, 57, 700, 57, 706, - 57, 57, 709, 57, 699, 713, 703, 710, 707, 57, - 57, 57, 714, 716, 708, 712, 715, 57, 57, 717, - 721, 711, 57, 718, 57, 57, 719, 57, 720, 724, - 57, 722, 57, 57, 57, 57, 57, 57, 725, 723, - 726, 57, 727, 728, 733, 729, 57, 730, 57, 57, - 732, 57, 735, 57, 734, 736, 737, 57, 731, 57, - 739, 57, 57, 57, 57, 57, 57, 57, 738, 57, + 57, 57, 57, 57, 57, 699, 57, 57, 57, 691, + 57, 692, 57, 704, 701, 688, 693, 702, 57, 694, + 695, 696, 57, 697, 57, 57, 700, 708, 57, 698, + 707, 710, 57, 57, 57, 57, 703, 57, 706, 711, + 57, 57, 712, 57, 705, 57, 715, 57, 709, 719, + 713, 57, 716, 720, 57, 722, 714, 721, 57, 718, + 57, 723, 717, 724, 57, 727, 57, 57, 725, 57, + 57, 57, 726, 730, 57, 57, 57, 731, 57, 57, + 732, 729, 733, 57, 736, 57, 57, 734, 739, 728, + 57, 735, 57, 57, 738, 737, 57, 741, 743, 57, - 57, 747, 746, 57, 741, 742, 743, 749, 57, 57, - 744, 57, 740, 752, 751, 57, 745, 57, 748, 57, - 753, 57, 754, 757, 57, 57, 57, 57, 57, 750, - 758, 57, 57, 57, 57, 57, 57, 755, 57, 761, - 760, 756, 762, 759, 764, 763, 765, 57, 768, 766, - 57, 767, 57, 769, 772, 57, 770, 57, 57, 57, - 57, 771, 57, 775, 57, 776, 773, 777, 57, 779, - 57, 778, 57, 780, 57, 57, 781, 774, 57, 782, - 57, 57, 783, 57, 57, 57, 57, 57, 57, 790, - 784, 823, 57, 57, 793, 57, 788, 794, 57, 785, + 57, 745, 57, 740, 57, 57, 57, 57, 57, 57, + 744, 753, 57, 746, 747, 57, 748, 749, 755, 57, + 752, 750, 57, 57, 758, 57, 754, 751, 757, 57, + 759, 57, 57, 57, 760, 763, 57, 57, 756, 57, + 57, 764, 57, 57, 57, 57, 57, 766, 57, 761, + 57, 767, 762, 770, 768, 771, 765, 769, 57, 772, + 57, 57, 773, 57, 774, 57, 775, 776, 778, 57, + 830, 57, 777, 57, 779, 781, 57, 780, 782, 783, + 57, 785, 57, 57, 786, 784, 57, 57, 57, 57, + 57, 57, 788, 789, 57, 57, 57, 57, 787, 57, - 786, 791, 795, 57, 787, 792, 789, 57, 796, 797, - 57, 798, 57, 800, 57, 57, 802, 57, 57, 57, - 801, 804, 57, 57, 57, 806, 799, 807, 57, 808, - 810, 57, 57, 812, 57, 813, 57, 803, 57, 57, - 815, 805, 57, 57, 809, 57, 57, 57, 817, 57, - 57, 811, 819, 57, 816, 827, 57, 57, 821, 822, - 57, 820, 57, 826, 814, 825, 818, 57, 57, 828, - 829, 57, 832, 824, 831, 57, 830, 57, 57, 57, - 833, 57, 837, 57, 57, 57, 836, 57, 57, 838, - 840, 57, 847, 842, 57, 843, 841, 57, 834, 835, + 796, 57, 57, 790, 57, 799, 829, 794, 57, 791, + 792, 57, 797, 57, 798, 793, 57, 795, 800, 57, + 801, 57, 803, 57, 802, 804, 57, 805, 806, 57, + 57, 808, 57, 57, 811, 807, 810, 57, 57, 57, + 57, 814, 813, 57, 812, 816, 57, 818, 57, 819, + 57, 57, 809, 57, 821, 57, 815, 57, 57, 57, + 57, 57, 817, 823, 825, 57, 57, 822, 57, 832, + 827, 57, 57, 57, 828, 826, 833, 820, 824, 57, + 831, 57, 835, 57, 834, 837, 57, 57, 836, 57, + 57, 838, 839, 840, 57, 843, 57, 57, 57, 842, - 839, 844, 57, 845, 57, 846, 57, 57, 848, 57, - 57, 57, 852, 57, 57, 57, 851, 854, 57, 853, - 856, 57, 57, 855, 57, 849, 57, 57, 57, 862, - 57, 57, 850, 57, 857, 57, 57, 57, 859, 860, - 861, 57, 858, 57, 863, 57, 867, 57, 868, 866, - 869, 57, 57, 865, 872, 870, 57, 864, 57, 871, - 57, 877, 57, 878, 57, 873, 57, 57, 57, 57, - 874, 57, 875, 57, 883, 884, 57, 57, 57, 876, - 57, 879, 57, 880, 887, 57, 925, 881, 885, 882, - 889, 57, 57, 890, 57, 886, 57, 888, 57, 57, + 57, 57, 844, 846, 57, 57, 848, 57, 849, 847, + 841, 850, 57, 845, 851, 57, 852, 57, 853, 57, + 854, 855, 57, 57, 57, 858, 57, 57, 57, 857, + 860, 57, 859, 862, 57, 57, 861, 57, 57, 57, + 57, 868, 57, 57, 856, 57, 57, 863, 57, 57, + 865, 866, 867, 57, 869, 864, 57, 57, 873, 875, + 57, 872, 874, 57, 877, 878, 871, 876, 57, 870, + 57, 57, 57, 883, 57, 884, 57, 57, 57, 57, + 57, 57, 890, 57, 889, 57, 879, 881, 880, 57, + 57, 882, 885, 893, 57, 886, 895, 57, 887, 888, - 57, 893, 891, 892, 894, 896, 57, 57, 899, 57, - 57, 897, 57, 895, 900, 57, 57, 901, 57, 904, - 57, 903, 898, 57, 906, 57, 57, 57, 902, 905, - 910, 57, 57, 57, 907, 57, 57, 57, 913, 57, - 57, 911, 57, 912, 57, 908, 909, 919, 914, 915, - 916, 57, 57, 918, 920, 57, 922, 917, 921, 57, - 923, 924, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 927, 930, 57, 57, 57, 57, 935, 57, - 933, 57, 926, 929, 57, 928, 937, 57, 938, 931, - 939, 57, 57, 57, 934, 936, 932, 57, 943, 57, + 891, 57, 896, 57, 57, 57, 57, 892, 57, 894, + 899, 900, 57, 898, 57, 57, 57, 902, 57, 903, + 905, 57, 931, 901, 57, 897, 906, 57, 908, 907, + 904, 57, 57, 57, 909, 57, 912, 57, 57, 57, + 57, 910, 911, 916, 57, 57, 913, 57, 57, 917, + 57, 57, 919, 918, 922, 57, 57, 914, 915, 920, + 57, 921, 57, 924, 57, 926, 57, 925, 927, 57, + 928, 923, 929, 930, 57, 57, 57, 57, 57, 932, + 57, 57, 57, 933, 57, 936, 57, 57, 57, 57, + 941, 943, 57, 939, 935, 934, 57, 945, 57, 57, - 940, 942, 944, 57, 941, 57, 948, 57, 945, 57, - 57, 57, 57, 57, 57, 955, 57, 952, 946, 951, - 947, 57, 957, 57, 57, 949, 956, 57, 57, 950, - 960, 57, 57, 954, 961, 57, 964, 57, 57, 953, - 962, 965, 57, 57, 958, 968, 57, 57, 967, 959, - 969, 57, 963, 970, 57, 57, 57, 966, 972, 57, - 971, 57, 973, 974, 57, 57, 976, 57, 57, 57, - 975, 57, 57, 977, 57, 979, 978, 980, 57, 57, - 982, 57, 57, 981, 984, 57, 57, 983, 985, 57, - 986, 57, 57, 987, 988, 989, 57, 990, 57, 993, + 944, 937, 57, 57, 949, 57, 940, 942, 938, 57, + 947, 946, 57, 57, 950, 57, 57, 951, 954, 57, + 57, 57, 57, 57, 948, 958, 961, 57, 952, 955, + 953, 957, 57, 963, 57, 956, 57, 962, 57, 966, + 57, 960, 967, 57, 57, 57, 57, 959, 970, 57, + 971, 57, 57, 57, 974, 57, 964, 968, 973, 57, + 965, 975, 57, 57, 969, 972, 976, 57, 977, 978, + 57, 57, 979, 980, 57, 57, 982, 57, 57, 984, + 981, 57, 57, 983, 57, 985, 986, 57, 987, 988, + 57, 990, 57, 991, 57, 992, 57, 57, 993, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 991, 57, 57, 57, 57, 57, 57, 992, 38, 38, - 38, 38, 38, 38, 43, 43, 43, 43, 43, 43, - 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, - 52, 52, 60, 60, 57, 60, 60, 60, 98, 98, - 57, 57, 57, 98, 100, 100, 57, 57, 100, 105, - 105, 57, 57, 57, 105, 61, 61, 57, 61, 61, - 61, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 989, 57, 57, 57, 57, 999, 57, 57, 57, 57, + 995, 57, 57, 57, 57, 57, 57, 996, 997, 994, + 57, 57, 998, 38, 38, 38, 38, 38, 38, 43, + 43, 43, 43, 43, 43, 47, 47, 47, 47, 47, + 47, 52, 52, 52, 52, 52, 52, 60, 60, 57, + 60, 60, 60, 98, 98, 57, 57, 57, 98, 100, + 100, 57, 57, 100, 105, 105, 57, 57, 57, 105, + 61, 61, 57, 61, 61, 61, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 106, 104, 103, 101, 99, - 57, 106, 104, 103, 101, 99, 57, 994, 11, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994 + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 106, 104, 103, + 101, 99, 57, 106, 104, 103, 101, 99, 57, 1000, + 11, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 } ; -static yyconst flex_int16_t yy_chk[2079] = +static yyconst flex_int16_t yy_chk[2091] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -994,7 +997,7 @@ static yyconst flex_int16_t yy_chk[2079] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 19, 5, 5, 19, 3, 5, 13, 4, 6, 6, 13, 5, 6, 9, 9, - 9, 31, 1003, 6, 7, 7, 7, 7, 9, 7, + 9, 31, 1009, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 153, 22, 7, 8, 8, 8, 8, 10, 8, 31, 16, 23, 16, 16, 8, 16, 153, 18, 21, 18, 18, 16, 18, 20, 20, 22, 23, @@ -1033,8 +1036,8 @@ static yyconst flex_int16_t yy_chk[2079] = 172, 177, 177, 178, 178, 176, 174, 179, 175, 174, 180, 181, 182, 183, 184, 180, 185, 182, 186, 184, - 187, 185, 183, 187, 191, 409, 188, 179, 192, 193, - 190, 181, 194, 191, 193, 195, 409, 197, 186, 187, + 187, 185, 183, 187, 191, 412, 188, 179, 192, 193, + 190, 181, 194, 191, 193, 195, 412, 197, 186, 187, 188, 189, 196, 189, 189, 190, 200, 192, 198, 201, 195, 197, 194, 198, 202, 189, 189, 189, 199, 199, 203, 199, 196, 204, 203, 201, 200, 206, 205, 207, @@ -1045,177 +1048,178 @@ static yyconst flex_int16_t yy_chk[2079] = 223, 227, 217, 221, 229, 224, 228, 232, 232, 233, 235, 235, 234, 230, 226, 232, 231, 234, 236, 237, - 237, 238, 234, 239, 241, 240, 242, 244, 243, 233, - 249, 242, 245, 232, 291, 239, 238, 245, 246, 247, - 247, 248, 244, 236, 240, 249, 241, 243, 251, 250, - 291, 246, 250, 248, 252, 252, 253, 253, 254, 255, - 255, 251, 257, 254, 256, 256, 258, 257, 259, 261, - 258, 260, 262, 259, 261, 260, 263, 264, 266, 266, - 272, 263, 265, 267, 268, 265, 272, 268, 267, 269, - 265, 264, 262, 269, 265, 270, 271, 277, 276, 273, + 237, 238, 234, 232, 241, 239, 240, 242, 243, 233, + 245, 246, 242, 232, 244, 245, 238, 239, 247, 247, + 248, 249, 251, 236, 246, 240, 241, 243, 250, 244, + 1005, 250, 248, 252, 252, 251, 249, 253, 253, 254, + 255, 255, 256, 256, 254, 257, 262, 258, 259, 261, + 257, 258, 260, 259, 261, 263, 260, 264, 266, 266, + 263, 265, 267, 999, 265, 268, 262, 267, 268, 265, + 269, 264, 270, 265, 269, 271, 272, 270, 273, 275, - 270, 271, 273, 274, 275, 278, 274, 279, 280, 275, - 278, 277, 279, 280, 281, 269, 276, 282, 284, 286, - 282, 283, 287, 281, 285, 283, 283, 288, 285, 289, - 289, 290, 288, 292, 286, 290, 293, 287, 284, 294, - 295, 298, 296, 297, 299, 295, 294, 296, 297, 293, - 300, 301, 292, 299, 301, 302, 302, 304, 305, 298, - 306, 317, 304, 307, 300, 310, 313, 314, 306, 316, - 313, 318, 314, 322, 316, 999, 305, 320, 307, 317, - 319, 319, 310, 315, 320, 321, 321, 315, 322, 325, - 315, 323, 323, 328, 324, 315, 318, 324, 326, 327, + 271, 273, 272, 274, 275, 276, 274, 277, 278, 279, + 280, 281, 284, 278, 279, 280, 269, 287, 286, 282, + 281, 277, 282, 276, 283, 288, 285, 293, 283, 283, + 285, 289, 284, 286, 292, 287, 289, 290, 290, 291, + 288, 294, 295, 291, 299, 301, 293, 296, 297, 295, + 292, 298, 296, 297, 294, 300, 298, 302, 305, 301, + 302, 306, 299, 305, 300, 303, 303, 307, 308, 311, + 314, 315, 317, 319, 314, 307, 315, 317, 318, 306, + 320, 320, 321, 308, 322, 322, 311, 316, 323, 321, + 326, 316, 324, 324, 316, 992, 318, 325, 319, 316, - 327, 315, 315, 329, 329, 331, 326, 330, 328, 325, - 330, 331, 332, 333, 334, 993, 336, 335, 337, 337, - 332, 333, 335, 336, 338, 339, 340, 346, 339, 338, - 341, 341, 334, 342, 344, 345, 342, 347, 349, 345, - 340, 348, 351, 344, 342, 350, 346, 348, 352, 353, - 350, 347, 349, 354, 353, 355, 355, 357, 358, 356, - 352, 351, 356, 359, 360, 360, 361, 362, 364, 365, - 374, 358, 366, 367, 354, 357, 370, 368, 374, 369, - 369, 361, 368, 359, 365, 376, 366, 369, 371, 986, - 370, 362, 363, 364, 367, 363, 375, 363, 372, 372, + 325, 327, 329, 323, 335, 316, 316, 328, 328, 327, + 326, 330, 330, 331, 332, 333, 331, 329, 334, 336, + 332, 337, 335, 333, 336, 341, 334, 339, 337, 338, + 338, 340, 339, 345, 340, 342, 342, 343, 347, 341, + 343, 346, 345, 348, 349, 346, 351, 350, 343, 352, + 353, 354, 348, 350, 352, 356, 355, 347, 349, 358, + 351, 355, 358, 354, 357, 357, 359, 360, 361, 353, + 362, 362, 363, 364, 366, 367, 356, 368, 370, 369, + 360, 372, 373, 370, 359, 371, 371, 363, 361, 991, + 367, 368, 377, 371, 373, 372, 378, 364, 365, 366, - 371, 363, 373, 363, 376, 369, 381, 373, 363, 379, - 375, 377, 377, 380, 379, 382, 380, 383, 384, 385, - 386, 387, 383, 389, 385, 381, 390, 384, 382, 391, - 393, 390, 392, 399, 391, 387, 398, 392, 389, 393, - 386, 394, 394, 395, 400, 397, 397, 400, 395, 397, - 401, 398, 402, 399, 404, 401, 403, 402, 405, 403, - 406, 407, 411, 410, 408, 406, 407, 408, 410, 412, - 412, 413, 404, 414, 416, 415, 417, 411, 405, 415, - 418, 420, 423, 421, 422, 417, 424, 414, 421, 422, - 413, 426, 416, 425, 428, 420, 423, 431, 425, 429, + 369, 365, 376, 365, 374, 374, 377, 365, 375, 365, + 376, 371, 383, 375, 365, 378, 379, 379, 381, 382, + 384, 385, 382, 381, 387, 386, 385, 388, 389, 387, + 391, 383, 392, 384, 386, 393, 394, 392, 401, 395, + 393, 394, 389, 396, 396, 391, 397, 388, 395, 399, + 399, 397, 400, 399, 402, 403, 404, 402, 401, 405, + 403, 404, 405, 406, 407, 408, 409, 400, 410, 411, + 413, 409, 411, 410, 414, 413, 415, 415, 408, 416, + 417, 406, 418, 419, 407, 421, 418, 420, 423, 414, + 424, 426, 425, 427, 417, 424, 420, 425, 416, 428, - 424, 427, 427, 432, 430, 418, 426, 432, 429, 430, - 433, 434, 428, 435, 436, 437, 431, 438, 440, 439, - 441, 445, 443, 438, 985, 433, 434, 450, 450, 441, - 448, 444, 435, 437, 439, 436, 443, 446, 440, 444, - 447, 445, 446, 448, 447, 447, 449, 451, 452, 453, - 454, 449, 451, 455, 456, 454, 457, 458, 455, 456, - 457, 459, 452, 460, 462, 459, 458, 453, 461, 463, - 464, 458, 465, 458, 466, 458, 470, 463, 460, 467, - 467, 471, 461, 462, 468, 468, 469, 469, 464, 471, - 472, 480, 473, 466, 474, 472, 470, 465, 473, 476, + 429, 419, 423, 431, 428, 426, 434, 427, 430, 430, + 421, 432, 433, 436, 435, 429, 437, 433, 435, 438, + 432, 431, 439, 440, 441, 434, 443, 442, 436, 447, + 441, 437, 448, 446, 449, 444, 990, 447, 438, 449, + 451, 440, 442, 439, 444, 450, 443, 446, 456, 450, + 450, 452, 448, 451, 453, 453, 452, 454, 455, 457, + 458, 461, 454, 459, 457, 458, 456, 460, 459, 462, + 461, 460, 455, 462, 463, 461, 464, 461, 465, 461, + 466, 467, 468, 469, 470, 470, 471, 471, 466, 463, + 464, 472, 473, 473, 474, 475, 472, 465, 477, 467, - 477, 474, 478, 479, 476, 477, 482, 478, 481, 481, - 480, 483, 479, 486, 484, 485, 485, 487, 488, 490, - 491, 492, 495, 490, 490, 493, 482, 984, 497, 496, - 494, 483, 484, 486, 494, 498, 488, 499, 501, 492, - 498, 495, 487, 496, 499, 493, 491, 497, 500, 502, - 503, 504, 505, 500, 506, 507, 501, 505, 502, 506, - 507, 508, 508, 510, 511, 503, 512, 516, 510, 514, - 512, 512, 504, 513, 513, 514, 515, 517, 518, 519, - 520, 515, 521, 511, 522, 524, 516, 523, 523, 524, - 526, 525, 527, 527, 520, 528, 517, 518, 519, 522, + 476, 478, 469, 475, 477, 476, 480, 468, 478, 483, + 481, 480, 482, 484, 474, 481, 486, 482, 483, 485, + 485, 487, 488, 489, 489, 490, 491, 495, 492, 494, + 496, 499, 484, 494, 494, 497, 486, 501, 498, 502, + 488, 487, 498, 500, 502, 490, 492, 503, 496, 505, + 499, 491, 506, 495, 503, 497, 501, 500, 504, 507, + 508, 506, 988, 504, 509, 510, 511, 505, 515, 509, + 510, 511, 512, 512, 507, 514, 517, 517, 516, 518, + 514, 508, 516, 516, 519, 518, 520, 515, 521, 519, + 522, 523, 524, 525, 527, 527, 526, 528, 530, 529, - 528, 529, 530, 521, 525, 535, 531, 530, 535, 536, - 526, 531, 537, 538, 539, 539, 540, 541, 541, 542, - 544, 529, 543, 546, 536, 547, 543, 548, 538, 549, - 542, 549, 552, 550, 556, 551, 540, 537, 550, 544, - 551, 546, 553, 558, 555, 547, 559, 548, 553, 555, - 557, 557, 552, 560, 564, 561, 562, 562, 560, 556, - 561, 558, 563, 565, 566, 567, 559, 563, 568, 569, - 570, 571, 564, 572, 569, 982, 574, 573, 578, 567, - 575, 568, 579, 565, 566, 574, 580, 578, 574, 584, - 570, 571, 573, 581, 572, 580, 575, 585, 580, 582, + 533, 528, 531, 531, 541, 520, 524, 521, 532, 522, + 523, 526, 529, 532, 525, 542, 534, 535, 530, 541, + 533, 534, 535, 538, 538, 540, 543, 545, 540, 544, + 544, 546, 546, 547, 548, 549, 552, 551, 548, 553, + 542, 543, 557, 554, 547, 554, 555, 545, 556, 561, + 563, 555, 558, 556, 549, 551, 552, 564, 558, 553, + 560, 565, 557, 562, 562, 560, 565, 566, 563, 567, + 567, 568, 566, 569, 561, 570, 568, 564, 571, 572, + 574, 573, 575, 576, 577, 574, 578, 579, 580, 584, + 687, 569, 687, 572, 573, 570, 579, 583, 571, 579, - 586, 579, 581, 587, 582, 583, 583, 588, 590, 584, - 585, 589, 589, 598, 592, 593, 594, 587, 586, 592, - 593, 595, 594, 596, 595, 588, 590, 597, 599, 601, - 595, 596, 598, 602, 603, 604, 606, 602, 605, 603, - 604, 607, 609, 608, 610, 597, 599, 605, 608, 601, - 611, 606, 613, 607, 609, 616, 611, 612, 612, 614, - 614, 613, 610, 615, 617, 617, 618, 618, 615, 619, - 619, 620, 622, 623, 620, 616, 624, 622, 625, 626, - 626, 624, 627, 628, 629, 630, 631, 627, 632, 633, - 635, 623, 634, 634, 636, 628, 638, 628, 637, 639, + 585, 578, 575, 576, 580, 577, 583, 586, 584, 585, + 587, 589, 585, 588, 588, 587, 586, 590, 591, 592, + 593, 594, 594, 595, 597, 607, 603, 598, 599, 597, + 590, 589, 598, 592, 599, 602, 591, 600, 593, 604, + 600, 595, 605, 602, 603, 607, 600, 608, 609, 610, + 611, 608, 612, 609, 610, 622, 613, 614, 604, 611, + 605, 615, 614, 616, 617, 618, 618, 612, 613, 619, + 617, 620, 620, 615, 621, 622, 623, 623, 619, 621, + 629, 616, 624, 624, 625, 625, 626, 628, 630, 626, + 631, 633, 628, 630, 632, 632, 633, 634, 629, 635, - 639, 636, 628, 625, 629, 630, 631, 637, 640, 632, - 635, 641, 643, 644, 646, 633, 645, 643, 644, 647, - 648, 646, 638, 649, 647, 650, 651, 641, 652, 648, - 653, 654, 651, 661, 640, 655, 645, 652, 649, 663, - 655, 659, 656, 657, 650, 654, 656, 656, 657, 658, - 662, 653, 660, 659, 658, 662, 660, 664, 661, 665, - 665, 663, 666, 671, 669, 667, 668, 679, 666, 664, - 667, 674, 668, 669, 678, 671, 673, 673, 684, 678, - 674, 680, 680, 681, 679, 681, 682, 682, 673, 685, - 685, 686, 687, 688, 689, 690, 691, 692, 684, 693, + 636, 637, 638, 639, 640, 640, 641, 642, 643, 634, + 644, 634, 645, 645, 642, 631, 634, 643, 646, 635, + 636, 637, 647, 638, 652, 649, 641, 650, 651, 639, + 649, 652, 650, 654, 653, 655, 644, 656, 647, 653, + 657, 659, 654, 658, 646, 660, 657, 667, 651, 661, + 655, 665, 658, 662, 661, 663, 656, 662, 662, 660, + 663, 664, 659, 665, 666, 668, 664, 669, 666, 670, + 668, 672, 667, 671, 671, 673, 674, 672, 675, 677, + 673, 670, 674, 679, 679, 680, 685, 675, 684, 669, + 690, 677, 692, 684, 680, 679, 686, 686, 688, 688, - 694, 693, 692, 696, 687, 688, 689, 695, 695, 697, - 690, 698, 686, 698, 697, 699, 691, 700, 694, 701, - 699, 702, 700, 703, 705, 704, 706, 707, 703, 696, - 704, 712, 713, 708, 710, 709, 711, 701, 980, 707, - 706, 702, 708, 705, 709, 708, 710, 714, 713, 711, - 716, 712, 717, 714, 718, 718, 716, 719, 720, 721, - 722, 717, 725, 721, 728, 722, 719, 723, 723, 726, - 726, 725, 727, 727, 729, 731, 728, 720, 730, 729, - 732, 733, 730, 734, 735, 736, 738, 771, 739, 738, - 731, 771, 740, 741, 741, 744, 735, 742, 742, 732, + 691, 691, 693, 685, 694, 695, 696, 697, 700, 699, + 690, 699, 702, 692, 693, 698, 694, 695, 701, 701, + 698, 696, 704, 703, 704, 705, 700, 697, 703, 706, + 705, 707, 708, 712, 706, 709, 710, 711, 702, 713, + 709, 710, 718, 716, 715, 714, 717, 712, 719, 707, + 779, 713, 708, 715, 714, 716, 711, 714, 726, 717, + 720, 722, 718, 723, 719, 725, 720, 722, 724, 724, + 779, 727, 723, 728, 725, 727, 731, 726, 728, 729, + 729, 732, 732, 733, 733, 731, 734, 735, 737, 736, + 738, 739, 735, 736, 740, 741, 742, 744, 734, 745, - 733, 739, 743, 743, 734, 740, 736, 747, 744, 745, - 745, 746, 746, 748, 748, 750, 751, 751, 752, 755, - 750, 753, 753, 754, 756, 755, 747, 756, 757, 757, - 758, 758, 759, 760, 760, 761, 761, 752, 762, 763, - 763, 754, 764, 765, 757, 766, 768, 767, 765, 769, - 770, 759, 767, 773, 764, 776, 774, 778, 769, 770, - 776, 768, 775, 775, 762, 774, 766, 780, 783, 778, - 780, 781, 783, 773, 782, 782, 781, 784, 785, 786, - 784, 787, 788, 789, 790, 791, 787, 788, 792, 789, - 791, 793, 805, 793, 796, 796, 792, 805, 785, 786, + 744, 746, 777, 737, 747, 747, 777, 741, 753, 738, + 739, 750, 745, 986, 746, 740, 760, 742, 748, 748, + 749, 749, 751, 751, 750, 752, 752, 753, 754, 754, + 756, 757, 757, 758, 760, 756, 759, 759, 761, 762, + 763, 763, 762, 765, 761, 764, 764, 766, 766, 767, + 767, 768, 758, 769, 769, 770, 763, 772, 771, 773, + 774, 775, 765, 771, 773, 776, 982, 770, 781, 781, + 775, 780, 784, 791, 776, 774, 782, 768, 772, 786, + 780, 782, 786, 787, 784, 788, 788, 789, 787, 790, + 792, 789, 790, 791, 793, 794, 795, 796, 797, 793, - 790, 799, 799, 801, 801, 803, 803, 806, 806, 807, - 808, 809, 811, 811, 814, 815, 809, 815, 816, 814, - 817, 817, 818, 816, 819, 807, 820, 821, 822, 823, - 823, 825, 808, 826, 818, 824, 827, 832, 820, 821, - 822, 828, 819, 829, 824, 834, 828, 835, 829, 827, - 830, 830, 836, 826, 834, 832, 837, 825, 833, 833, - 838, 839, 839, 840, 842, 835, 841, 843, 840, 847, - 836, 848, 837, 850, 848, 849, 849, 851, 854, 838, - 858, 841, 898, 842, 853, 853, 898, 843, 850, 847, - 855, 855, 857, 857, 859, 851, 860, 854, 863, 861, + 794, 798, 795, 797, 799, 813, 799, 802, 802, 798, + 792, 805, 805, 796, 807, 807, 809, 809, 811, 812, + 812, 813, 814, 811, 815, 817, 817, 820, 821, 815, + 821, 822, 820, 823, 823, 824, 822, 825, 826, 827, + 828, 829, 829, 831, 814, 830, 832, 824, 833, 838, + 826, 827, 828, 834, 830, 825, 840, 835, 834, 836, + 836, 833, 835, 839, 839, 840, 832, 838, 841, 831, + 842, 843, 844, 845, 845, 846, 848, 847, 849, 853, + 846, 854, 855, 855, 854, 856, 841, 843, 842, 857, + 860, 844, 847, 859, 859, 848, 861, 861, 849, 853, - 864, 860, 858, 859, 861, 864, 865, 866, 867, 867, - 873, 865, 870, 863, 868, 868, 871, 870, 872, 873, - 874, 872, 866, 875, 875, 876, 878, 879, 871, 874, - 880, 880, 881, 883, 876, 882, 886, 890, 883, 885, - 976, 881, 895, 882, 892, 878, 879, 892, 885, 886, - 888, 888, 891, 891, 893, 893, 895, 890, 894, 894, - 896, 897, 897, 901, 902, 896, 903, 904, 905, 906, - 907, 908, 902, 905, 909, 911, 919, 912, 911, 974, - 908, 915, 901, 904, 914, 903, 913, 913, 914, 906, - 915, 917, 918, 923, 909, 912, 907, 922, 922, 926, + 856, 863, 863, 864, 865, 866, 867, 857, 869, 860, + 866, 867, 870, 865, 871, 872, 877, 870, 904, 871, + 873, 873, 904, 869, 876, 864, 874, 874, 877, 876, + 872, 878, 879, 880, 878, 881, 881, 882, 884, 885, + 887, 879, 880, 886, 886, 888, 882, 889, 892, 887, + 891, 896, 889, 888, 894, 894, 901, 884, 885, 891, + 907, 892, 897, 897, 898, 899, 899, 898, 900, 900, + 901, 896, 902, 903, 903, 908, 909, 902, 910, 907, + 911, 912, 913, 908, 914, 911, 915, 917, 921, 918, + 917, 919, 919, 914, 910, 909, 920, 921, 924, 925, - 917, 919, 923, 925, 918, 927, 928, 928, 925, 929, - 930, 931, 932, 933, 934, 935, 935, 932, 926, 931, - 927, 936, 938, 938, 939, 929, 936, 940, 943, 930, - 941, 941, 944, 934, 942, 942, 945, 945, 947, 933, - 943, 946, 946, 949, 939, 950, 950, 972, 949, 940, - 951, 951, 944, 952, 952, 953, 966, 947, 954, 954, - 953, 956, 956, 958, 958, 959, 962, 962, 963, 977, - 959, 967, 970, 963, 987, 967, 966, 971, 971, 973, - 975, 975, 989, 973, 978, 978, 988, 977, 979, 979, - 981, 981, 983, 983, 987, 988, 990, 989, 991, 992, + 920, 912, 923, 928, 928, 929, 915, 918, 913, 932, + 924, 923, 931, 935, 929, 933, 936, 931, 934, 934, + 938, 939, 940, 937, 925, 938, 941, 941, 932, 935, + 933, 937, 942, 944, 944, 936, 945, 942, 946, 947, + 947, 940, 948, 948, 950, 949, 953, 939, 951, 951, + 952, 952, 980, 955, 956, 956, 945, 949, 955, 972, + 946, 957, 957, 959, 950, 953, 958, 958, 959, 960, + 960, 962, 962, 964, 964, 965, 968, 968, 969, 972, + 965, 973, 983, 969, 979, 973, 977, 977, 979, 981, + 981, 984, 984, 985, 985, 987, 987, 989, 989, 993, - 992, 969, 968, 965, 964, 961, 960, 957, 955, 948, - 990, 937, 924, 921, 920, 916, 910, 991, 995, 995, - 995, 995, 995, 995, 996, 996, 996, 996, 996, 996, - 997, 997, 997, 997, 997, 997, 998, 998, 998, 998, - 998, 998, 1000, 1000, 900, 1000, 1000, 1000, 1001, 1001, - 899, 889, 887, 1001, 1002, 1002, 884, 877, 1002, 1004, - 1004, 869, 862, 856, 1004, 1005, 1005, 852, 1005, 1005, - 1005, 846, 845, 844, 831, 813, 812, 810, 804, 802, - 800, 798, 797, 795, 794, 779, 777, 772, 749, 737, - 724, 715, 683, 677, 676, 675, 672, 670, 642, 621, + 983, 994, 995, 997, 996, 998, 998, 978, 976, 975, + 994, 974, 971, 970, 967, 966, 963, 995, 996, 993, + 961, 954, 997, 1001, 1001, 1001, 1001, 1001, 1001, 1002, + 1002, 1002, 1002, 1002, 1002, 1003, 1003, 1003, 1003, 1003, + 1003, 1004, 1004, 1004, 1004, 1004, 1004, 1006, 1006, 943, + 1006, 1006, 1006, 1007, 1007, 930, 927, 926, 1007, 1008, + 1008, 922, 916, 1008, 1010, 1010, 906, 905, 895, 1010, + 1011, 1011, 893, 1011, 1011, 1011, 890, 883, 875, 868, + 862, 858, 852, 851, 850, 837, 819, 818, 816, 810, + 808, 806, 804, 803, 801, 800, 785, 783, 778, 755, - 600, 591, 577, 576, 554, 545, 534, 533, 532, 509, - 489, 475, 442, 419, 396, 388, 378, 343, 312, 311, - 309, 308, 303, 225, 219, 105, 104, 102, 100, 98, - 56, 52, 48, 47, 43, 38, 12, 11, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994 + 743, 730, 721, 689, 683, 682, 681, 678, 676, 648, + 627, 606, 601, 596, 582, 581, 559, 550, 539, 537, + 536, 513, 493, 479, 445, 422, 398, 390, 380, 344, + 313, 312, 310, 309, 304, 225, 219, 105, 104, 102, + 100, 98, 56, 52, 48, 47, 43, 38, 12, 11, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 } ; static yy_state_type yy_last_accepting_state; @@ -1327,7 +1331,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1330 "" +#line 1334 "" #define INITIAL 0 #define quotedstring 1 @@ -1513,7 +1517,7 @@ YY_DECL #line 107 "util/configlexer.lex" -#line 1516 "" +#line 1520 "" if ( !(yy_init) ) { @@ -1572,13 +1576,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 995 ) + if ( yy_current_state >= 1001 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2039 ); + while ( yy_base[yy_current_state] != 2051 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1860,231 +1864,236 @@ YY_RULE_SETUP case 52: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +{ YDOUT; return VAR_STUB_PRIME;} YY_BREAK case 53: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +{ YDOUT; return VAR_FORWARD_ZONE;} YY_BREAK case 54: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +{ YDOUT; return VAR_FORWARD_ADDR;} YY_BREAK case 55: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +{ YDOUT; return VAR_FORWARD_HOST;} YY_BREAK case 56: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} YY_BREAK case 57: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} YY_BREAK case 58: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +{ YDOUT; return VAR_ACCESS_CONTROL;} YY_BREAK case 59: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +{ YDOUT; return VAR_HIDE_IDENTITY;} YY_BREAK case 60: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +{ YDOUT; return VAR_HIDE_VERSION;} YY_BREAK case 61: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +{ YDOUT; return VAR_IDENTITY;} YY_BREAK case 62: YY_RULE_SETUP #line 169 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +{ YDOUT; return VAR_VERSION;} YY_BREAK case 63: YY_RULE_SETUP #line 170 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR;} +{ YDOUT; return VAR_MODULE_CONF;} YY_BREAK case 64: YY_RULE_SETUP #line 171 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR_FILE;} +{ YDOUT; return VAR_DLV_ANCHOR;} YY_BREAK case 65: YY_RULE_SETUP #line 172 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +{ YDOUT; return VAR_DLV_ANCHOR_FILE;} YY_BREAK case 66: YY_RULE_SETUP #line 173 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} YY_BREAK case 67: YY_RULE_SETUP #line 174 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} YY_BREAK case 68: YY_RULE_SETUP #line 175 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +{ YDOUT; return VAR_TRUST_ANCHOR;} YY_BREAK case 69: YY_RULE_SETUP #line 176 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} YY_BREAK case 70: YY_RULE_SETUP #line 177 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +{ YDOUT; return VAR_BOGUS_TTL;} YY_BREAK case 71: YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} YY_BREAK case 72: YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} YY_BREAK case 73: YY_RULE_SETUP #line 180 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +{ YDOUT; return VAR_KEY_CACHE_SIZE;} YY_BREAK case 74: YY_RULE_SETUP #line 181 "util/configlexer.lex" -{ YDOUT; return VAR_NEG_CACHE_SIZE;} +{ YDOUT; return VAR_KEY_CACHE_SLABS;} YY_BREAK case 75: YY_RULE_SETUP #line 182 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_NEG_CACHE_SIZE;} YY_BREAK case 76: YY_RULE_SETUP #line 183 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 77: YY_RULE_SETUP #line 184 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 78: YY_RULE_SETUP #line 185 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 79: YY_RULE_SETUP #line 186 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA_PTR;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 80: YY_RULE_SETUP #line 187 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_LOCAL_DATA_PTR;} YY_BREAK case 81: YY_RULE_SETUP #line 188 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} +{ YDOUT; return VAR_STATISTICS_INTERVAL;} YY_BREAK case 82: YY_RULE_SETUP #line 189 "util/configlexer.lex" -{ YDOUT; return VAR_EXTENDED_STATISTICS;} +{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} YY_BREAK case 83: YY_RULE_SETUP #line 190 "util/configlexer.lex" -{ YDOUT; return VAR_REMOTE_CONTROL; } +{ YDOUT; return VAR_EXTENDED_STATISTICS;} YY_BREAK case 84: YY_RULE_SETUP #line 191 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_ENABLE; } +{ YDOUT; return VAR_REMOTE_CONTROL; } YY_BREAK case 85: YY_RULE_SETUP #line 192 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_INTERFACE; } +{ YDOUT; return VAR_CONTROL_ENABLE; } YY_BREAK case 86: YY_RULE_SETUP #line 193 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_PORT; } +{ YDOUT; return VAR_CONTROL_INTERFACE; } YY_BREAK case 87: YY_RULE_SETUP #line 194 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER_KEY_FILE; } +{ YDOUT; return VAR_CONTROL_PORT; } YY_BREAK case 88: YY_RULE_SETUP #line 195 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER_CERT_FILE; } +{ YDOUT; return VAR_SERVER_KEY_FILE; } YY_BREAK case 89: YY_RULE_SETUP #line 196 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_KEY_FILE; } +{ YDOUT; return VAR_SERVER_CERT_FILE; } YY_BREAK case 90: YY_RULE_SETUP #line 197 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_CERT_FILE; } +{ YDOUT; return VAR_CONTROL_KEY_FILE; } YY_BREAK case 91: -/* rule 91 can match eol */ YY_RULE_SETUP #line 198 "util/configlexer.lex" +{ YDOUT; return VAR_CONTROL_CERT_FILE; } + YY_BREAK +case 92: +/* rule 92 can match eol */ +YY_RULE_SETUP +#line 199 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 92: +case 93: YY_RULE_SETUP -#line 201 "util/configlexer.lex" +#line 202 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 202 "util/configlexer.lex" +#line 203 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 93: -YY_RULE_SETUP -#line 206 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 94: -/* rule 94 can match eol */ YY_RULE_SETUP #line 207 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 95: +/* rule 95 can match eol */ YY_RULE_SETUP #line 208 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 96: +YY_RULE_SETUP +#line 209 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -2096,32 +2105,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 96: +case 97: YY_RULE_SETUP -#line 219 "util/configlexer.lex" +#line 220 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 220 "util/configlexer.lex" +#line 221 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 97: -YY_RULE_SETUP -#line 224 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 98: -/* rule 98 can match eol */ YY_RULE_SETUP #line 225 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 99: +/* rule 99 can match eol */ YY_RULE_SETUP #line 226 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 100: +YY_RULE_SETUP +#line 227 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -2133,37 +2142,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 100: +case 101: YY_RULE_SETUP -#line 237 "util/configlexer.lex" +#line 238 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 238 "util/configlexer.lex" +#line 239 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK -case 101: -YY_RULE_SETUP -#line 242 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 102: -/* rule 102 can match eol */ YY_RULE_SETUP #line 243 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 103: +/* rule 103 can match eol */ YY_RULE_SETUP #line 244 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 104: YY_RULE_SETUP #line 245 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 105: +YY_RULE_SETUP +#line 246 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2171,26 +2180,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 250 "util/configlexer.lex" +#line 251 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 105: -YY_RULE_SETUP -#line 254 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 106: -/* rule 106 can match eol */ YY_RULE_SETUP #line 255 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK case 107: +/* rule 107 can match eol */ YY_RULE_SETUP #line 256 "util/configlexer.lex" +{ cfg_parser->line++; yymore(); } + YY_BREAK +case 108: +YY_RULE_SETUP +#line 257 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2199,7 +2208,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 262 "util/configlexer.lex" +#line 263 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2210,18 +2219,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 272 "util/configlexer.lex" +#line 273 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 275 "util/configlexer.lex" +#line 276 "util/configlexer.lex" ECHO; YY_BREAK -#line 2224 "" +#line 2233 "" case YY_END_OF_BUFFER: { @@ -2511,7 +2520,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 995 ) + if ( yy_current_state >= 1001 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2539,11 +2548,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 995 ) + if ( yy_current_state >= 1001 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 994); + yy_is_jam = (yy_current_state == 1000); return yy_is_jam ? 0 : yy_current_state; } @@ -3180,7 +3189,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 275 "util/configlexer.lex" +#line 276 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 16364630a..5b9b20436 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -156,6 +156,7 @@ stub-zone{COLON} { YDOUT; return VAR_STUB_ZONE;} name{COLON} { YDOUT; return VAR_NAME;} stub-addr{COLON} { YDOUT; return VAR_STUB_ADDR;} stub-host{COLON} { YDOUT; return VAR_STUB_HOST;} +stub-prime{COLON} { YDOUT; return VAR_STUB_PRIME;} forward-zone{COLON} { YDOUT; return VAR_FORWARD_ZONE;} forward-addr{COLON} { YDOUT; return VAR_FORWARD_ADDR;} forward-host{COLON} { YDOUT; return VAR_FORWARD_HOST;} diff --git a/util/configparser.c b/util/configparser.c index b17be86e7..79a43b9db 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -161,7 +161,8 @@ VAR_CONTROL_CERT_FILE = 350, VAR_EXTENDED_STATISTICS = 351, VAR_LOCAL_DATA_PTR = 352, - VAR_JOSTLE_TIMEOUT = 353 + VAR_JOSTLE_TIMEOUT = 353, + VAR_STUB_PRIME = 354 }; #endif /* Tokens. */ @@ -261,6 +262,7 @@ #define VAR_EXTENDED_STATISTICS 351 #define VAR_LOCAL_DATA_PTR 352 #define VAR_JOSTLE_TIMEOUT 353 +#define VAR_STUB_PRIME 354 @@ -319,7 +321,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 323 "util/configparser.c" +#line 325 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -332,7 +334,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 336 "util/configparser.c" +#line 338 "util/configparser.c" #ifdef short # undef short @@ -547,20 +549,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 177 +#define YYLAST 179 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 99 +#define YYNTOKENS 100 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 100 +#define YYNNTS 101 /* YYNRULES -- Number of rules. */ -#define YYNRULES 189 +#define YYNRULES 191 /* YYNRULES -- Number of states. */ -#define YYNSTATES 277 +#define YYNSTATES 280 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 353 +#define YYMAXUTOK 354 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -603,7 +605,7 @@ static const yytype_uint8 yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98 + 95, 96, 97, 98, 99 }; #if YYDEBUG @@ -620,92 +622,95 @@ static const yytype_uint16 yyprhs[] = 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 174, 175, 177, 179, 181, - 183, 186, 187, 189, 191, 193, 196, 199, 202, 205, - 208, 211, 214, 217, 220, 223, 226, 229, 232, 235, - 238, 241, 244, 247, 250, 253, 256, 259, 262, 265, - 268, 271, 274, 277, 280, 283, 286, 289, 292, 295, - 298, 301, 304, 307, 310, 313, 316, 319, 322, 325, - 328, 331, 334, 337, 340, 343, 346, 349, 352, 355, - 358, 361, 364, 367, 371, 374, 377, 380, 383, 386, - 389, 392, 395, 398, 401, 405, 408, 411, 414, 417, - 420, 423, 426, 429, 431, 434, 435, 437, 439, 441, - 443, 445, 447, 449, 452, 455, 458, 461, 464, 467 + 183, 185, 188, 189, 191, 193, 195, 198, 201, 204, + 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, + 237, 240, 243, 246, 249, 252, 255, 258, 261, 264, + 267, 270, 273, 276, 279, 282, 285, 288, 291, 294, + 297, 300, 303, 306, 309, 312, 315, 318, 321, 324, + 327, 330, 333, 336, 339, 342, 345, 348, 351, 354, + 357, 360, 363, 366, 369, 373, 376, 379, 382, 385, + 388, 391, 394, 397, 400, 403, 407, 410, 413, 416, + 419, 422, 425, 428, 431, 434, 436, 439, 440, 442, + 444, 446, 448, 450, 452, 454, 457, 460, 463, 466, + 469, 472 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 100, 0, -1, -1, 100, 101, -1, 102, 103, -1, - 105, 106, -1, 108, 109, -1, 189, 190, -1, 11, - -1, 103, 104, -1, -1, 111, -1, 112, -1, 116, - -1, 119, -1, 125, -1, 126, -1, 127, -1, 128, - -1, 117, -1, 131, -1, 132, -1, 133, -1, 134, - -1, 135, -1, 147, -1, 148, -1, 149, -1, 151, - -1, 152, -1, 122, -1, 153, -1, 154, -1, 157, - -1, 155, -1, 156, -1, 158, -1, 159, -1, 160, - -1, 167, -1, 142, -1, 143, -1, 144, -1, 145, - -1, 161, -1, 170, -1, 139, -1, 141, -1, 171, - -1, 173, -1, 174, -1, 175, -1, 123, -1, 146, - -1, 177, -1, 178, -1, 140, -1, 176, -1, 130, - -1, 118, -1, 136, -1, 168, -1, 172, -1, 162, - -1, 169, -1, 180, -1, 181, -1, 124, -1, 113, - -1, 129, -1, 164, -1, 114, -1, 120, -1, 121, - -1, 137, -1, 138, -1, 179, -1, 163, -1, 165, - -1, 166, -1, 115, -1, 182, -1, 150, -1, 38, - -1, 106, 107, -1, -1, 183, -1, 184, -1, 185, - -1, 44, -1, 109, 110, -1, -1, 186, -1, 187, - -1, 188, -1, 13, 10, -1, 12, 10, -1, 76, - 10, -1, 79, 10, -1, 96, 10, -1, 14, 10, - -1, 16, 10, -1, 67, 10, -1, 15, 10, -1, - 80, 10, -1, 81, 10, -1, 31, 10, -1, 60, - 10, -1, 75, 10, -1, 17, 10, -1, 18, 10, - -1, 19, 10, -1, 20, 10, -1, 77, 10, -1, - 66, 10, -1, 21, 10, -1, 22, 10, -1, 23, - 10, -1, 24, 10, -1, 25, 10, -1, 68, 10, - -1, 82, 10, -1, 83, 10, -1, 54, 10, -1, - 64, 10, -1, 55, 10, -1, 48, 10, -1, 49, - 10, -1, 50, 10, -1, 51, 10, -1, 61, 10, - -1, 26, 10, -1, 27, 10, -1, 28, 10, -1, - 98, 10, -1, 29, 10, -1, 30, 10, -1, 32, - 10, -1, 33, 10, -1, 35, 10, -1, 36, 10, - -1, 34, 10, -1, 41, 10, -1, 42, 10, -1, - 43, 10, -1, 52, 10, -1, 71, 10, -1, 85, - 10, -1, 78, 10, -1, 86, 10, -1, 87, 10, - -1, 47, 10, -1, 69, 10, -1, 72, 10, 10, - -1, 53, 10, -1, 56, 10, -1, 70, 10, -1, - 57, 10, -1, 58, 10, -1, 59, 10, -1, 65, - 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, - -1, 73, 10, 10, -1, 74, 10, -1, 97, 10, - -1, 37, 10, -1, 39, 10, -1, 40, 10, -1, - 37, 10, -1, 45, 10, -1, 46, 10, -1, 88, - -1, 190, 191, -1, -1, 192, -1, 194, -1, 193, - -1, 195, -1, 196, -1, 197, -1, 198, -1, 89, - 10, -1, 91, 10, -1, 90, 10, -1, 92, 10, - -1, 93, 10, -1, 94, 10, -1, 95, 10, -1 + 101, 0, -1, -1, 101, 102, -1, 103, 104, -1, + 106, 107, -1, 109, 110, -1, 191, 192, -1, 11, + -1, 104, 105, -1, -1, 112, -1, 113, -1, 117, + -1, 120, -1, 126, -1, 127, -1, 128, -1, 129, + -1, 118, -1, 132, -1, 133, -1, 134, -1, 135, + -1, 136, -1, 148, -1, 149, -1, 150, -1, 152, + -1, 153, -1, 123, -1, 154, -1, 155, -1, 158, + -1, 156, -1, 157, -1, 159, -1, 160, -1, 161, + -1, 168, -1, 143, -1, 144, -1, 145, -1, 146, + -1, 162, -1, 171, -1, 140, -1, 142, -1, 172, + -1, 174, -1, 175, -1, 176, -1, 124, -1, 147, + -1, 178, -1, 179, -1, 141, -1, 177, -1, 131, + -1, 119, -1, 137, -1, 169, -1, 173, -1, 163, + -1, 170, -1, 181, -1, 182, -1, 125, -1, 114, + -1, 130, -1, 165, -1, 115, -1, 121, -1, 122, + -1, 138, -1, 139, -1, 180, -1, 164, -1, 166, + -1, 167, -1, 116, -1, 183, -1, 151, -1, 38, + -1, 107, 108, -1, -1, 184, -1, 185, -1, 186, + -1, 187, -1, 44, -1, 110, 111, -1, -1, 188, + -1, 189, -1, 190, -1, 13, 10, -1, 12, 10, + -1, 76, 10, -1, 79, 10, -1, 96, 10, -1, + 14, 10, -1, 16, 10, -1, 67, 10, -1, 15, + 10, -1, 80, 10, -1, 81, 10, -1, 31, 10, + -1, 60, 10, -1, 75, 10, -1, 17, 10, -1, + 18, 10, -1, 19, 10, -1, 20, 10, -1, 77, + 10, -1, 66, 10, -1, 21, 10, -1, 22, 10, + -1, 23, 10, -1, 24, 10, -1, 25, 10, -1, + 68, 10, -1, 82, 10, -1, 83, 10, -1, 54, + 10, -1, 64, 10, -1, 55, 10, -1, 48, 10, + -1, 49, 10, -1, 50, 10, -1, 51, 10, -1, + 61, 10, -1, 26, 10, -1, 27, 10, -1, 28, + 10, -1, 98, 10, -1, 29, 10, -1, 30, 10, + -1, 32, 10, -1, 33, 10, -1, 35, 10, -1, + 36, 10, -1, 34, 10, -1, 41, 10, -1, 42, + 10, -1, 43, 10, -1, 52, 10, -1, 71, 10, + -1, 85, 10, -1, 78, 10, -1, 86, 10, -1, + 87, 10, -1, 47, 10, -1, 69, 10, -1, 72, + 10, 10, -1, 53, 10, -1, 56, 10, -1, 70, + 10, -1, 57, 10, -1, 58, 10, -1, 59, 10, + -1, 65, 10, -1, 62, 10, -1, 63, 10, -1, + 84, 10, -1, 73, 10, 10, -1, 74, 10, -1, + 97, 10, -1, 37, 10, -1, 39, 10, -1, 40, + 10, -1, 99, 10, -1, 37, 10, -1, 45, 10, + -1, 46, 10, -1, 88, -1, 192, 193, -1, -1, + 194, -1, 196, -1, 195, -1, 197, -1, 198, -1, + 199, -1, 200, -1, 89, 10, -1, 91, 10, -1, + 90, 10, -1, 92, 10, -1, 93, 10, -1, 94, + 10, -1, 95, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 101, 101, 101, 102, 102, 103, 103, 107, 112, - 113, 114, 114, 114, 115, 115, 116, 116, 116, 117, - 117, 117, 118, 118, 118, 119, 119, 120, 120, 121, - 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, - 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, - 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, - 134, 135, 135, 136, 136, 137, 137, 137, 138, 138, - 139, 139, 140, 140, 141, 141, 141, 142, 142, 143, - 143, 144, 144, 146, 158, 159, 160, 160, 160, 162, - 174, 175, 176, 176, 176, 178, 187, 196, 207, 216, - 225, 234, 247, 262, 271, 280, 289, 298, 307, 316, - 325, 334, 343, 352, 361, 375, 382, 389, 396, 404, - 411, 418, 425, 432, 440, 448, 455, 464, 473, 480, - 487, 498, 506, 519, 528, 537, 545, 558, 567, 576, - 585, 594, 607, 614, 624, 634, 644, 654, 664, 674, - 681, 688, 695, 705, 719, 726, 744, 753, 762, 772, - 782, 789, 797, 810, 818, 837, 844, 859, 866, 873, - 880, 887, 894, 901, 906, 907, 908, 908, 908, 909, - 909, 909, 910, 912, 922, 931, 938, 945, 952, 959 + 0, 102, 102, 102, 103, 103, 104, 104, 108, 113, + 114, 115, 115, 115, 116, 116, 117, 117, 117, 118, + 118, 118, 119, 119, 119, 120, 120, 121, 121, 122, + 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, + 127, 128, 128, 128, 129, 129, 129, 130, 130, 130, + 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, + 135, 136, 136, 137, 137, 138, 138, 138, 139, 139, + 140, 140, 141, 141, 142, 142, 142, 143, 143, 144, + 144, 145, 145, 147, 159, 160, 161, 161, 161, 161, + 163, 175, 176, 177, 177, 177, 179, 188, 197, 208, + 217, 226, 235, 248, 263, 272, 281, 290, 299, 308, + 317, 326, 335, 344, 353, 362, 376, 383, 390, 397, + 405, 412, 419, 426, 433, 441, 449, 456, 465, 474, + 481, 488, 499, 507, 520, 529, 538, 546, 559, 568, + 577, 586, 595, 608, 615, 625, 635, 645, 655, 665, + 675, 682, 689, 696, 706, 720, 727, 745, 754, 763, + 773, 783, 790, 798, 811, 819, 838, 845, 860, 867, + 874, 881, 891, 898, 905, 912, 917, 918, 919, 919, + 919, 920, 920, 920, 921, 923, 933, 942, 949, 956, + 963, 970 }; #endif @@ -745,16 +750,17 @@ static const char *const yytname[] = "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", - "$accept", "toplevelvars", "toplevelvar", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize", + "VAR_STUB_PRIME", "$accept", "toplevelvars", "toplevelvar", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "server_num_threads", "server_verbosity", + "server_statistics_interval", "server_statistics_cumulative", + "server_extended_statistics", "server_port", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_do_daemonize", "server_use_syslog", "server_chroot", "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", @@ -778,10 +784,11 @@ static const char *const yytname[] = "server_val_nsec3_keysize_iterations", "server_key_cache_size", "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", "server_local_data", "server_local_data_ptr", "stub_name", "stub_host", - "stub_addr", "forward_name", "forward_host", "forward_addr", "rcstart", - "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", - "rc_control_interface", "rc_server_key_file", "rc_server_cert_file", - "rc_control_key_file", "rc_control_cert_file", 0 + "stub_addr", "stub_prime", "forward_name", "forward_host", + "forward_addr", "rcstart", "contents_rc", "content_rc", + "rc_control_enable", "rc_control_port", "rc_control_interface", + "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", + "rc_control_cert_file", 0 }; #endif @@ -799,23 +806,23 @@ static const yytype_uint16 yytoknum[] = 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353 + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 99, 100, 100, 101, 101, 101, 101, 102, 103, - 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, - 109, 109, 110, 110, 110, 111, 112, 113, 114, 115, + 0, 100, 101, 101, 102, 102, 102, 102, 103, 104, + 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 106, 107, 107, 108, 108, 108, 108, + 109, 110, 110, 111, 111, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, @@ -823,8 +830,9 @@ static const yytype_uint8 yyr1[] = 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 190, 191, 191, 191, 191, - 191, 191, 191, 192, 193, 194, 195, 196, 197, 198 + 186, 187, 188, 189, 190, 191, 192, 192, 193, 193, + 193, 193, 193, 193, 193, 194, 195, 196, 197, 198, + 199, 200 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -839,16 +847,17 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2 + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -856,8 +865,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 8, 83, 89, 173, 3, 10, 85, - 91, 175, 4, 5, 6, 7, 0, 0, 0, 0, + 2, 0, 1, 8, 83, 90, 175, 3, 10, 85, + 92, 177, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -872,33 +881,34 @@ static const yytype_uint8 yydefact[] = 29, 31, 32, 34, 35, 33, 36, 37, 38, 44, 63, 77, 70, 78, 79, 39, 61, 64, 45, 48, 62, 49, 50, 51, 57, 54, 55, 76, 65, 66, - 81, 0, 0, 0, 84, 86, 87, 88, 0, 0, - 0, 90, 92, 93, 94, 0, 0, 0, 0, 0, - 0, 0, 174, 176, 178, 177, 179, 180, 181, 182, - 96, 95, 100, 103, 101, 109, 110, 111, 112, 115, - 116, 117, 118, 119, 131, 132, 133, 135, 136, 106, - 137, 138, 141, 139, 140, 142, 143, 144, 151, 126, - 127, 128, 129, 145, 154, 123, 125, 155, 157, 158, - 159, 107, 130, 161, 162, 124, 160, 114, 102, 120, - 152, 156, 146, 0, 0, 165, 108, 97, 113, 148, - 98, 104, 105, 121, 122, 163, 147, 149, 150, 99, - 166, 134, 167, 168, 169, 170, 171, 172, 183, 185, - 184, 186, 187, 188, 189, 153, 164 + 81, 0, 0, 0, 0, 84, 86, 87, 88, 89, + 0, 0, 0, 91, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 176, 178, 180, 179, 181, 182, + 183, 184, 97, 96, 101, 104, 102, 110, 111, 112, + 113, 116, 117, 118, 119, 120, 132, 133, 134, 136, + 137, 107, 138, 139, 142, 140, 141, 143, 144, 145, + 152, 127, 128, 129, 130, 146, 155, 124, 126, 156, + 158, 159, 160, 108, 131, 162, 163, 125, 161, 115, + 103, 121, 153, 157, 147, 0, 0, 166, 109, 98, + 114, 149, 99, 105, 106, 122, 123, 164, 148, 150, + 151, 100, 167, 135, 168, 169, 170, 171, 172, 173, + 174, 185, 187, 186, 188, 189, 190, 191, 154, 165 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 8, 12, 88, 9, 13, 164, 10, - 14, 171, 89, 90, 91, 92, 93, 94, 95, 96, + -1, 1, 7, 8, 12, 88, 9, 13, 165, 10, + 14, 173, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 165, 166, 167, 172, 173, 174, - 11, 15, 182, 183, 184, 185, 186, 187, 188, 189 + 157, 158, 159, 160, 166, 167, 168, 169, 174, 175, + 176, 11, 15, 184, 185, 186, 187, 188, 189, 190, + 191 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -907,14 +917,14 @@ static const yytype_int16 yydefgoto[] = static const yytype_int16 yypact[] = { -88, 0, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, 42, -25, -36, -87, 3, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + -88, -88, 42, -20, -36, -87, 2, 3, 4, 5, + 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, - 41, 43, 69, 70, 71, 72, 76, 77, 120, 121, - 122, 123, 124, 125, 126, 127, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, -88, -88, + 41, 43, 70, 71, 72, 76, 77, 120, 121, 122, + 123, 124, 125, 126, 127, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, @@ -922,18 +932,18 @@ static const yytype_int16 yypact[] = -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, 153, 154, 155, -88, -88, -88, -88, 156, 157, - 158, -88, -88, -88, -88, 159, 160, 161, 162, 163, - 164, 165, -88, -88, -88, -88, -88, -88, -88, -88, + -88, 154, 155, 156, 157, -88, -88, -88, -88, -88, + 158, 159, 160, -88, -88, -88, -88, 161, 162, 163, + 164, 165, 166, 167, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, 166, 167, -88, -88, -88, -88, -88, + -88, -88, -88, -88, -88, 168, 169, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, -88, -88, -88 + -88, -88, -88, -88, -88, -88, -88, -88, -88, -88 }; /* YYPGOTO[NTERM-NUM]. */ @@ -948,7 +958,8 @@ static const yytype_int8 yypgoto[] = -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, -88, -88, -88, -88, -88, -88 + -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, + -88 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -958,36 +969,36 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 2, 168, 175, 176, 177, 178, 179, 180, 181, 169, - 170, 3, 161, 190, 162, 163, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 4, 213, - 214, 215, 216, 217, 5, 218, 219, 220, 221, 222, - 223, 224, 0, 225, 16, 17, 18, 19, 20, 21, + 2, 170, 177, 178, 179, 180, 181, 182, 183, 171, + 172, 3, 192, 193, 194, 195, 196, 161, 197, 162, + 163, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 4, 215, + 216, 217, 218, 219, 5, 220, 221, 222, 223, 224, + 225, 226, 0, 227, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 226, - 227, 228, 229, 41, 42, 43, 230, 231, 6, 44, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 164, + 228, 229, 230, 41, 42, 43, 231, 232, 6, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 232, 233, 234, 235, 236, 237, 238, 239, 85, 86, - 87, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276 + 233, 234, 235, 236, 237, 238, 239, 240, 85, 86, + 87, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279 }; static const yytype_int8 yycheck[] = { 0, 37, 89, 90, 91, 92, 93, 94, 95, 45, - 46, 11, 37, 10, 39, 40, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 46, 11, 10, 10, 10, 10, 10, 37, 10, 39, + 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, 10, 10, -1, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 10, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 99, 10, 10, 10, 41, 42, 43, 10, 10, 88, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, @@ -997,32 +1008,33 @@ static const yytype_int8 yycheck[] = 98, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 100, 0, 11, 38, 44, 88, 101, 102, 105, - 108, 189, 103, 106, 109, 190, 12, 13, 14, 15, + 0, 101, 0, 11, 38, 44, 88, 102, 103, 106, + 109, 191, 104, 107, 110, 192, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 96, 97, 98, 104, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 37, 39, 40, 107, 183, 184, 185, 37, 45, - 46, 110, 186, 187, 188, 89, 90, 91, 92, 93, - 94, 95, 191, 192, 193, 194, 195, 196, 197, 198, + 83, 84, 85, 86, 87, 96, 97, 98, 105, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 37, 39, 40, 99, 108, 184, 185, 186, 187, + 37, 45, 46, 111, 188, 189, 190, 89, 90, 91, + 92, 93, 94, 95, 193, 194, 195, 196, 197, 198, + 199, 200, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1030,8 +1042,7 @@ static const yytype_uint8 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1846,14 +1857,14 @@ yyreduce: switch (yyn) { case 8: -#line 108 "util/configparser.y" +#line 109 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } break; case 83: -#line 147 "util/configparser.y" +#line 148 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -1866,8 +1877,8 @@ yyreduce: } break; - case 89: -#line 163 "util/configparser.y" + case 90: +#line 164 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -1880,8 +1891,8 @@ yyreduce: } break; - case 95: -#line 179 "util/configparser.y" + case 96: +#line 180 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1891,8 +1902,8 @@ yyreduce: } break; - case 96: -#line 188 "util/configparser.y" + case 97: +#line 189 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1902,8 +1913,8 @@ yyreduce: } break; - case 97: -#line 197 "util/configparser.y" + case 98: +#line 198 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -1915,8 +1926,8 @@ yyreduce: } break; - case 98: -#line 208 "util/configparser.y" + case 99: +#line 209 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1926,8 +1937,8 @@ yyreduce: } break; - case 99: -#line 217 "util/configparser.y" + case 100: +#line 218 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1937,8 +1948,8 @@ yyreduce: } break; - case 100: -#line 226 "util/configparser.y" + case 101: +#line 227 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1948,8 +1959,8 @@ yyreduce: } break; - case 101: -#line 235 "util/configparser.y" + case 102: +#line 236 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -1963,8 +1974,8 @@ yyreduce: } break; - case 102: -#line 248 "util/configparser.y" + case 103: +#line 249 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -1980,8 +1991,8 @@ yyreduce: } break; - case 103: -#line 263 "util/configparser.y" + case 104: +#line 264 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1991,8 +2002,8 @@ yyreduce: } break; - case 104: -#line 272 "util/configparser.y" + case 105: +#line 273 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2002,8 +2013,8 @@ yyreduce: } break; - case 105: -#line 281 "util/configparser.y" + case 106: +#line 282 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2013,8 +2024,8 @@ yyreduce: } break; - case 106: -#line 290 "util/configparser.y" + case 107: +#line 291 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2024,8 +2035,8 @@ yyreduce: } break; - case 107: -#line 299 "util/configparser.y" + case 108: +#line 300 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2035,8 +2046,8 @@ yyreduce: } break; - case 108: -#line 308 "util/configparser.y" + case 109: +#line 309 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2046,8 +2057,8 @@ yyreduce: } break; - case 109: -#line 317 "util/configparser.y" + case 110: +#line 318 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2057,8 +2068,8 @@ yyreduce: } break; - case 110: -#line 326 "util/configparser.y" + case 111: +#line 327 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2068,8 +2079,8 @@ yyreduce: } break; - case 111: -#line 335 "util/configparser.y" + case 112: +#line 336 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2079,8 +2090,8 @@ yyreduce: } break; - case 112: -#line 344 "util/configparser.y" + case 113: +#line 345 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2090,8 +2101,8 @@ yyreduce: } break; - case 113: -#line 353 "util/configparser.y" + case 114: +#line 354 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2101,8 +2112,8 @@ yyreduce: } break; - case 114: -#line 362 "util/configparser.y" + case 115: +#line 363 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2117,8 +2128,8 @@ yyreduce: } break; - case 115: -#line 376 "util/configparser.y" + case 116: +#line 377 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2126,8 +2137,8 @@ yyreduce: } break; - case 116: -#line 383 "util/configparser.y" + case 117: +#line 384 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2135,8 +2146,8 @@ yyreduce: } break; - case 117: -#line 390 "util/configparser.y" + case 118: +#line 391 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2144,8 +2155,8 @@ yyreduce: } break; - case 118: -#line 397 "util/configparser.y" + case 119: +#line 398 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2154,8 +2165,8 @@ yyreduce: } break; - case 119: -#line 405 "util/configparser.y" + case 120: +#line 406 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2163,8 +2174,8 @@ yyreduce: } break; - case 120: -#line 412 "util/configparser.y" + case 121: +#line 413 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2172,8 +2183,8 @@ yyreduce: } break; - case 121: -#line 419 "util/configparser.y" + case 122: +#line 420 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2181,8 +2192,8 @@ yyreduce: } break; - case 122: -#line 426 "util/configparser.y" + case 123: +#line 427 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2190,8 +2201,8 @@ yyreduce: } break; - case 123: -#line 433 "util/configparser.y" + case 124: +#line 434 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2200,8 +2211,8 @@ yyreduce: } break; - case 124: -#line 441 "util/configparser.y" + case 125: +#line 442 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2210,8 +2221,8 @@ yyreduce: } break; - case 125: -#line 449 "util/configparser.y" + case 126: +#line 450 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2219,8 +2230,8 @@ yyreduce: } break; - case 126: -#line 456 "util/configparser.y" + case 127: +#line 457 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2230,8 +2241,8 @@ yyreduce: } break; - case 127: -#line 465 "util/configparser.y" + case 128: +#line 466 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2241,8 +2252,8 @@ yyreduce: } break; - case 128: -#line 474 "util/configparser.y" + case 129: +#line 475 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2250,8 +2261,8 @@ yyreduce: } break; - case 129: -#line 481 "util/configparser.y" + case 130: +#line 482 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2259,8 +2270,8 @@ yyreduce: } break; - case 130: -#line 488 "util/configparser.y" + case 131: +#line 489 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2272,8 +2283,8 @@ yyreduce: } break; - case 131: -#line 499 "util/configparser.y" + case 132: +#line 500 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2282,8 +2293,8 @@ yyreduce: } break; - case 132: -#line 507 "util/configparser.y" + case 133: +#line 508 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2297,8 +2308,8 @@ yyreduce: } break; - case 133: -#line 520 "util/configparser.y" + case 134: +#line 521 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2308,8 +2319,8 @@ yyreduce: } break; - case 134: -#line 529 "util/configparser.y" + case 135: +#line 530 "util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2319,8 +2330,8 @@ yyreduce: } break; - case 135: -#line 538 "util/configparser.y" + case 136: +#line 539 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2329,8 +2340,8 @@ yyreduce: } break; - case 136: -#line 546 "util/configparser.y" + case 137: +#line 547 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2344,8 +2355,8 @@ yyreduce: } break; - case 137: -#line 559 "util/configparser.y" + case 138: +#line 560 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2355,8 +2366,8 @@ yyreduce: } break; - case 138: -#line 568 "util/configparser.y" + case 139: +#line 569 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2366,8 +2377,8 @@ yyreduce: } break; - case 139: -#line 577 "util/configparser.y" + case 140: +#line 578 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2377,8 +2388,8 @@ yyreduce: } break; - case 140: -#line 586 "util/configparser.y" + case 141: +#line 587 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> @@ -2388,8 +2399,8 @@ yyreduce: } break; - case 141: -#line 595 "util/configparser.y" + case 142: +#line 596 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2403,8 +2414,8 @@ yyreduce: } break; - case 142: -#line 608 "util/configparser.y" + case 143: +#line 609 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2412,8 +2423,8 @@ yyreduce: } break; - case 143: -#line 615 "util/configparser.y" + case 144: +#line 616 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2424,8 +2435,8 @@ yyreduce: } break; - case 144: -#line 625 "util/configparser.y" + case 145: +#line 626 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2436,8 +2447,8 @@ yyreduce: } break; - case 145: -#line 635 "util/configparser.y" + case 146: +#line 636 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2448,8 +2459,8 @@ yyreduce: } break; - case 146: -#line 645 "util/configparser.y" + case 147: +#line 646 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2460,8 +2471,8 @@ yyreduce: } break; - case 147: -#line 655 "util/configparser.y" + case 148: +#line 656 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2472,8 +2483,8 @@ yyreduce: } break; - case 148: -#line 665 "util/configparser.y" + case 149: +#line 666 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2484,8 +2495,8 @@ yyreduce: } break; - case 149: -#line 675 "util/configparser.y" + case 150: +#line 676 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2493,8 +2504,8 @@ yyreduce: } break; - case 150: -#line 682 "util/configparser.y" + case 151: +#line 683 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2502,8 +2513,8 @@ yyreduce: } break; - case 151: -#line 689 "util/configparser.y" + case 152: +#line 690 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2511,8 +2522,8 @@ yyreduce: } break; - case 152: -#line 696 "util/configparser.y" + case 153: +#line 697 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2523,8 +2534,8 @@ yyreduce: } break; - case 153: -#line 706 "util/configparser.y" + case 154: +#line 707 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2539,8 +2550,8 @@ yyreduce: } break; - case 154: -#line 720 "util/configparser.y" + case 155: +#line 721 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2548,8 +2559,8 @@ yyreduce: } break; - case 155: -#line 727 "util/configparser.y" + case 156: +#line 728 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2568,8 +2579,8 @@ yyreduce: } break; - case 156: -#line 745 "util/configparser.y" + case 157: +#line 746 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2579,8 +2590,8 @@ yyreduce: } break; - case 157: -#line 754 "util/configparser.y" + case 158: +#line 755 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2590,8 +2601,8 @@ yyreduce: } break; - case 158: -#line 763 "util/configparser.y" + case 159: +#line 764 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2602,8 +2613,8 @@ yyreduce: } break; - case 159: -#line 773 "util/configparser.y" + case 160: +#line 774 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2614,8 +2625,8 @@ yyreduce: } break; - case 160: -#line 783 "util/configparser.y" + case 161: +#line 784 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2623,8 +2634,8 @@ yyreduce: } break; - case 161: -#line 790 "util/configparser.y" + case 162: +#line 791 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -2633,8 +2644,8 @@ yyreduce: } break; - case 162: -#line 798 "util/configparser.y" + case 163: +#line 799 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2648,8 +2659,8 @@ yyreduce: } break; - case 163: -#line 811 "util/configparser.y" + case 164: +#line 812 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -2658,8 +2669,8 @@ yyreduce: } break; - case 164: -#line 819 "util/configparser.y" + case 165: +#line 820 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -2679,8 +2690,8 @@ yyreduce: } break; - case 165: -#line 838 "util/configparser.y" + case 166: +#line 839 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -2688,8 +2699,8 @@ yyreduce: } break; - case 166: -#line 845 "util/configparser.y" + case 167: +#line 846 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2705,8 +2716,8 @@ yyreduce: } break; - case 167: -#line 860 "util/configparser.y" + case 168: +#line 861 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2714,8 +2725,8 @@ yyreduce: } break; - case 168: -#line 867 "util/configparser.y" + case 169: +#line 868 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -2723,8 +2734,8 @@ yyreduce: } break; - case 169: -#line 874 "util/configparser.y" + case 170: +#line 875 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -2732,8 +2743,20 @@ yyreduce: } break; - case 170: -#line 881 "util/configparser.y" + case 171: +#line 882 "util/configparser.y" + { + OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->isprime = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 172: +#line 892 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2741,8 +2764,8 @@ yyreduce: } break; - case 171: -#line 888 "util/configparser.y" + case 173: +#line 899 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -2750,8 +2773,8 @@ yyreduce: } break; - case 172: -#line 895 "util/configparser.y" + case 174: +#line 906 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -2759,15 +2782,15 @@ yyreduce: } break; - case 173: -#line 902 "util/configparser.y" + case 175: +#line 913 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 183: -#line 913 "util/configparser.y" + case 185: +#line 924 "util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2778,8 +2801,8 @@ yyreduce: } break; - case 184: -#line 923 "util/configparser.y" + case 186: +#line 934 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2789,8 +2812,8 @@ yyreduce: } break; - case 185: -#line 932 "util/configparser.y" + case 187: +#line 943 "util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -2798,8 +2821,8 @@ yyreduce: } break; - case 186: -#line 939 "util/configparser.y" + case 188: +#line 950 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -2807,8 +2830,8 @@ yyreduce: } break; - case 187: -#line 946 "util/configparser.y" + case 189: +#line 957 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -2816,8 +2839,8 @@ yyreduce: } break; - case 188: -#line 953 "util/configparser.y" + case 190: +#line 964 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -2825,8 +2848,8 @@ yyreduce: } break; - case 189: -#line 960 "util/configparser.y" + case 191: +#line 971 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -2836,7 +2859,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2840 "util/configparser.c" +#line 2863 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3050,7 +3073,7 @@ yyreturn: } -#line 966 "util/configparser.y" +#line 977 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index b58057829..c4cb7affd 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -134,7 +134,8 @@ VAR_CONTROL_CERT_FILE = 350, VAR_EXTENDED_STATISTICS = 351, VAR_LOCAL_DATA_PTR = 352, - VAR_JOSTLE_TIMEOUT = 353 + VAR_JOSTLE_TIMEOUT = 353, + VAR_STUB_PRIME = 354 }; #endif /* Tokens. */ @@ -234,6 +235,7 @@ #define VAR_EXTENDED_STATISTICS 351 #define VAR_LOCAL_DATA_PTR 352 #define VAR_JOSTLE_TIMEOUT 353 +#define VAR_STUB_PRIME 354 @@ -245,7 +247,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 249 "util/configparser.h" +#line 251 "util/configparser.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/util/configparser.y b/util/configparser.y index c5c11b49d..2807c3847 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -96,6 +96,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT +%token VAR_STUB_PRIME %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -157,7 +158,7 @@ stubstart: VAR_STUB_ZONE ; contents_stub: contents_stub content_stub | ; -content_stub: stub_name | stub_host | stub_addr +content_stub: stub_name | stub_host | stub_addr | stub_prime ; forwardstart: VAR_FORWARD_ZONE { @@ -877,6 +878,16 @@ stub_addr: VAR_STUB_ADDR STRING yyerror("out of memory"); } ; +stub_prime: VAR_STUB_PRIME STRING + { + OUTYY(("P(stub-prime:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->isprime = + (strcmp($2, "yes")==0); + free($2); + } + ; forward_name: VAR_NAME STRING { OUTYY(("P(name:%s)\n", $2));