From: Wouter Wijngaards Date: Mon, 6 Oct 2008 09:28:50 +0000 (+0000) Subject: Option for DOS protection on slower links. X-Git-Tag: release-1.1.0~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=351ef6e252a4cee0f1bdc55c8b80627703e2727b;p=thirdparty%2Funbound.git Option for DOS protection on slower links. git-svn-id: file:///svn/unbound/trunk@1282 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index b0a3e0e3f..069adddfb 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +6 October 2008: Wouter + - jostle-timeout option, so you can config for slow links. + 2 October 2008: Wouter - fixup unlink of pidfile. - fixup SHA256 algorithm collation code. diff --git a/doc/example.conf.in b/doc/example.conf.in index 345c005dc..96fffacdf 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -89,6 +89,9 @@ server: # the number of queries that a thread gets to service. # num-queries-per-thread: 1024 + # if very busy, 50% queries run to completion, 50% get timeout in msec + # jostle-timeout: 200 + # the amount of memory to use for the RRset cache. # plain value in bytes or you can append k, m or G. default is "4Mb". # rrset-cache-size: 4m diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 12e3869fe..ef5a037a4 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -182,10 +182,19 @@ reasonable guess. .TP .B num\-queries\-per\-thread: \fI The number of queries that every thread will service simultaneously. -If more queries arrive that need servicing, they are dropped. This forces +If more queries arrive that need servicing, and no queries can be jostled out +(see \fIjostle\-timeout\fR), then the queries are dropped. This forces the client to resend after a timeout; allowing the server time to work on the existing queries. Default 1024. .TP +.B jostle\-timeout: \fI +Timeout used when the server is very busy. Set to a value that usually +results in one roundtrip to the authority servers. If too many queries +arrive, then 50% of the queries are allowed to run to completion, and +the other 50% are replaced with the new incoming query if they have already +spent more than their allowed time. This protects against denial of +service by slow queries or high query rates. Default 200 milliseconds. +.TP .B rrset\-cache\-size: \fI Number of bytes size of the RRset cache. Default is 4 megabytes. A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes diff --git a/services/mesh.c b/services/mesh.c index 1ec60cfd7..a4782dbf2 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -104,6 +104,22 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, size_t d) #endif } +/** histogram compare of time values */ +static int +timeval_smaller(const struct timeval* x, const struct timeval* y) +{ +#ifndef S_SPLINT_S + if(x->tv_sec < y->tv_sec) + return 1; + else if(x->tv_sec == y->tv_sec) { + if(x->tv_usec <= y->tv_usec) + return 1; + else return 0; + } + else return 0; +#endif +} + int mesh_state_compare(const void* ap, const void* bp) { @@ -162,6 +178,9 @@ mesh_create(struct module_stack* stack, struct module_env* env) mesh->stats_dropped = 0; mesh->max_reply_states = env->cfg->num_queries_per_thread; mesh->max_forever_states = (mesh->max_reply_states+1)/2; + mesh->jostle_max.tv_sec = (time_t)(env->cfg->jostle_time / 1000); + mesh->jostle_max.tv_usec = (time_t)((env->cfg->jostle_time % 1000) + *1000); return mesh; } @@ -196,8 +215,7 @@ int mesh_make_new_space(struct mesh_area* mesh) struct timeval age; timeval_subtract(&age, mesh->env->now_tv, &m->reply_list->start_time); -#ifndef S_SPLINT_S - if(age.tv_sec > 0 || age.tv_usec > MESH_JOSTLE_USEC) { + if(timeval_smaller(&mesh->jostle_max, &age)) { /* its a goner */ log_nametypeclass(VERB_ALGO, "query jostled out to " "make space for a new one", @@ -214,7 +232,6 @@ int mesh_make_new_space(struct mesh_area* mesh) mesh_state_delete(&m->s); return 1; } -#endif } /* no space for new item */ return 0; diff --git a/services/mesh.h b/services/mesh.h index 627283b2c..259002127 100644 --- a/services/mesh.h +++ b/services/mesh.h @@ -65,12 +65,6 @@ struct timehist; */ #define MESH_MAX_ACTIVATION 1000 -/** - * Maximum time to live in the jostle list. usec. - * The entries older than this could be removed to make space for new ones. - */ -#define MESH_JOSTLE_USEC 200000 /* 0.200000 sec */ - /** * Mesh of query states */ @@ -133,6 +127,8 @@ struct mesh_area { struct mesh_state* jostle_first; /** last entry in jostle list - this is the entry that is newest */ struct mesh_state* jostle_last; + /** timeout for jostling. if age is lower, it does not get jostled. */ + struct timeval jostle_max; }; /** diff --git a/util/config_file.c b/util/config_file.c index cc885fd91..a083aee68 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -94,6 +94,7 @@ config_create() cfg->msg_cache_size = 4 * 1024 * 1024; cfg->msg_cache_slabs = 4; cfg->num_queries_per_thread = 1024; + cfg->jostle_time = 200; cfg->rrset_cache_size = 4 * 1024 * 1024; cfg->rrset_cache_slabs = 4; cfg->host_ttl = 900; @@ -268,6 +269,9 @@ int config_set_option(struct config_file* cfg, const char* opt, } else if(strcmp(opt, "num-queries-per-thread:") == 0) { IS_NONZERO_NUMBER; cfg->num_queries_per_thread = (size_t)atoi(val); + } else if(strcmp(opt, "jostle-timeout:") == 0) { + IS_NUMBER_OR_ZERO; + cfg->jostle_time = (size_t)atoi(val); } else if(strcmp(opt, "rrset-cache-size:") == 0) { return cfg_parse_memsize(val, &cfg->rrset_cache_size); } else if(strcmp(opt, "rrset-cache-slabs:") == 0) { diff --git a/util/config_file.h b/util/config_file.h index e055d932e..b2cc0f4dd 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -91,6 +91,8 @@ struct config_file { size_t msg_cache_slabs; /** number of queries every thread can service */ size_t num_queries_per_thread; + /** number of msec to wait before items can be jostled out */ + size_t jostle_time; /** size of the rrset cache */ size_t rrset_cache_size; /** slabs in the rrset cache */ diff --git a/util/configlexer.c b/util/configlexer.c index 7db928d89..8926050ea 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 108 -#define YY_END_OF_BUFFER 109 +#define YY_NUM_RULES 109 +#define YY_END_OF_BUFFER 110 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -370,115 +370,118 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[980] = +static yyconst flex_int16_t yy_accept[995] = { 0, - 1, 1, 92, 92, 96, 96, 100, 100, 104, 104, - 109, 107, 1, 90, 91, 2, 95, 108, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 92, 93, 108, 94, - 108, 96, 97, 98, 108, 103, 100, 101, 102, 108, - 104, 105, 106, 108, 107, 0, 1, 2, 2, 2, - 2, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 92, 0, 96, 0, 103, - - 0, 100, 104, 0, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 48, 107, 107, 107, 107, 107, 6, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 20, 107, 107, 107, - - 107, 12, 13, 107, 15, 14, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 3, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 99, 107, 107, 107, 107, 107, 107, 107, 107, 23, - 107, 107, 107, 107, 107, 107, 107, 24, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 60, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 59, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 21, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 22, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 17, - - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 49, 50, 47, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 5, 107, 107, 107, 107, 107, - 107, 107, 107, 62, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 77, 76, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 25, - 107, 107, 107, 107, 107, 107, 107, 107, 75, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - - 107, 107, 107, 107, 107, 107, 107, 107, 107, 41, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 4, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 85, 107, 16, - 107, 107, 52, 53, 51, 107, 107, 107, 107, 107, - 58, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - - 107, 66, 107, 107, 107, 107, 107, 107, 107, 107, - 31, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 57, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 61, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 68, 107, 107, - 107, 107, 56, 107, 83, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 32, - 33, 107, 71, 107, 78, 107, 27, 107, 73, 107, - 107, 107, 107, 107, 7, 107, 46, 82, 107, 107, - - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 63, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 72, 26, - 28, 107, 107, 107, 107, 107, 45, 107, 107, 107, - 86, 107, 107, 107, 107, 107, 44, 107, 107, 107, - 107, 107, 107, 88, 107, 107, 107, 107, 107, 107, - 107, 11, 107, 107, 107, 107, 107, 107, 10, 107, - 107, 29, 107, 87, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 89, 84, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 34, 107, 107, 107, 107, 107, - - 30, 107, 107, 107, 64, 65, 107, 107, 67, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 18, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 81, 107, 107, 107, 107, 107, 107, 19, - 107, 9, 107, 107, 79, 38, 107, 107, 70, 54, - 107, 107, 40, 43, 39, 107, 35, 107, 8, 107, - 69, 107, 107, 107, 36, 107, 80, 107, 55, 42, - 37, 107, 107, 107, 107, 107, 107, 74, 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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 + } ; static yyconst flex_int32_t yy_ec[256] = @@ -494,9 +497,9 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 1, 1, 1, 1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 1, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 1, 1, 1, 1, 1, 1, 1, 1, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -513,694 +516,706 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[39] = +static yyconst flex_int32_t yy_meta[40] = { 0, 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[991] = +static yyconst flex_int16_t yy_base[1006] = { 0, - 0, 0, 36, 39, 43, 50, 62, 74, 55, 67, - 2008, 1994, 49, 2009, 2009, 81, 2009, 88, 32, 83, - 76, 48, 78, 60, 89, 94, 86, 95, 103, 96, - 98, 105, 101, 117, 111, 125, 1993, 2009, 2009, 2009, - 136, 1992, 2009, 2009, 130, 1991, 2001, 2009, 2009, 144, - 1989, 2009, 2009, 140, 1988, 148, 152, 0, 155, 0, - 0, 148, 150, 143, 152, 154, 156, 162, 159, 158, - 163, 164, 161, 167, 169, 176, 181, 182, 172, 187, - 188, 190, 191, 196, 192, 198, 197, 199, 202, 203, - 205, 206, 207, 214, 215, 1987, 229, 1986, 233, 1985, - - 239, 1995, 1983, 243, 236, 208, 229, 218, 239, 245, - 246, 242, 238, 248, 249, 251, 256, 257, 253, 268, - 261, 269, 271, 277, 273, 281, 284, 280, 282, 283, - 285, 286, 289, 290, 292, 293, 294, 297, 298, 310, - 314, 299, 303, 315, 311, 307, 319, 328, 330, 318, - 323, 332, 334, 326, 340, 342, 348, 336, 344, 345, - 349, 346, 351, 356, 352, 358, 368, 360, 362, 366, - 372, 374, 376, 377, 373, 384, 380, 388, 381, 394, - 391, 387, 395, 397, 414, 401, 400, 402, 408, 404, - 405, 407, 411, 425, 434, 418, 421, 433, 435, 438, - - 440, 441, 442, 443, 445, 449, 446, 456, 463, 459, - 460, 461, 466, 1982, 468, 464, 471, 473, 472, 1981, - 474, 475, 477, 491, 478, 476, 488, 487, 497, 498, - 490, 500, 503, 504, 505, 507, 511, 508, 510, 525, - 509, 519, 522, 527, 529, 530, 535, 537, 543, 540, - 545, 546, 548, 554, 553, 550, 512, 556, 547, 559, - 563, 565, 569, 566, 577, 574, 575, 576, 581, 582, - 583, 584, 585, 592, 588, 595, 605, 591, 602, 593, - 601, 608, 611, 609, 614, 616, 618, 617, 620, 621, - 622, 619, 623, 628, 635, 639, 1980, 642, 631, 643, - - 633, 1979, 1978, 644, 1977, 1976, 645, 655, 661, 652, - 646, 653, 659, 662, 666, 656, 673, 680, 676, 681, - 671, 687, 688, 689, 690, 692, 693, 694, 696, 702, - 709, 705, 706, 711, 713, 1975, 715, 714, 707, 717, - 720, 721, 727, 728, 664, 731, 729, 732, 735, 737, - 739, 740, 742, 743, 744, 768, 745, 747, 750, 752, - 753, 774, 766, 765, 755, 780, 762, 781, 784, 787, - 1974, 793, 789, 790, 791, 795, 796, 797, 798, 1973, - 804, 805, 807, 809, 806, 819, 822, 1972, 823, 821, - 813, 825, 826, 829, 830, 836, 837, 838, 839, 842, - - 412, 846, 840, 848, 849, 850, 764, 851, 852, 855, - 1971, 857, 864, 860, 858, 862, 869, 866, 873, 876, - 877, 878, 881, 884, 882, 887, 885, 889, 890, 891, - 892, 894, 895, 1970, 898, 900, 902, 905, 917, 919, - 922, 915, 918, 924, 930, 932, 928, 934, 935, 936, - 929, 926, 937, 945, 942, 946, 947, 957, 961, 963, - 949, 958, 964, 967, 971, 1969, 977, 979, 980, 976, - 981, 983, 984, 986, 987, 988, 990, 991, 993, 1968, - 997, 994, 995, 998, 1002, 1000, 1001, 1007, 1008, 1016, - 1021, 1011, 1020, 1022, 1024, 1027, 1035, 1038, 1039, 1967, - - 1031, 1042, 1046, 1047, 1048, 1034, 1050, 1051, 1054, 1057, - 1055, 1059, 1060, 1058, 1064, 1063, 1066, 1074, 1067, 1083, - 1085, 1966, 1965, 1964, 951, 1077, 1071, 1084, 1088, 1081, - 1089, 1092, 1093, 1094, 1963, 1096, 1099, 1101, 1103, 1104, - 1111, 1107, 1108, 1962, 1110, 1116, 1121, 1117, 1119, 1123, - 1124, 1131, 1127, 1125, 1133, 1135, 1136, 1139, 1146, 1137, - 1143, 1144, 1148, 1145, 1961, 1960, 1158, 1147, 1161, 1166, - 1155, 1169, 1163, 1171, 1173, 1174, 1176, 1177, 1179, 1959, - 1185, 1186, 1188, 1189, 1191, 1184, 1195, 1197, 1958, 1200, - 1202, 1203, 1204, 1207, 1210, 1211, 1217, 1215, 1218, 1221, - - 1229, 1223, 1231, 1225, 1233, 1237, 1239, 1241, 1242, 1957, - 1248, 1234, 1249, 1246, 1254, 1255, 1247, 1256, 1257, 1259, - 1261, 1262, 1264, 1266, 1268, 1267, 1271, 1269, 1274, 1956, - 1279, 1285, 1281, 1288, 1282, 1290, 1291, 1293, 1296, 1297, - 1298, 1301, 1308, 1317, 1309, 1315, 1313, 1319, 1307, 1325, - 1321, 1322, 1327, 1328, 1330, 1332, 1336, 1955, 1329, 1954, - 1343, 1337, 1953, 1952, 1951, 1352, 1339, 1348, 1351, 1357, - 1950, 1341, 1358, 1350, 1361, 1362, 1363, 1364, 1366, 1365, - 1368, 1376, 1369, 1377, 1379, 1383, 1384, 1380, 1386, 1392, - 1390, 1391, 1393, 1396, 1399, 1402, 1401, 1403, 1398, 1404, - - 1414, 1949, 1416, 1418, 1424, 1421, 1413, 1425, 1428, 1435, - 1948, 1432, 1437, 1438, 1440, 1442, 1444, 1443, 1445, 1446, - 1449, 1450, 1452, 1947, 1453, 1454, 1455, 1458, 1471, 1474, - 1465, 1476, 1460, 1480, 1946, 1481, 1483, 1484, 1488, 1468, - 1489, 1490, 1491, 1497, 1494, 1499, 1501, 1503, 1504, 1507, - 1508, 1509, 1510, 1511, 1514, 1517, 1516, 1945, 1519, 1521, - 1531, 1527, 1944, 1524, 1943, 1533, 1534, 1541, 1542, 1544, - 1537, 1543, 1545, 1553, 1549, 1551, 1552, 1559, 1558, 1942, - 1941, 1563, 1940, 1569, 1939, 1571, 1938, 1573, 1937, 1579, - 1575, 1565, 1561, 1578, 1936, 1585, 1935, 1934, 1581, 1587, - - 1588, 1591, 1592, 1577, 1595, 1596, 1597, 1599, 1600, 1601, - 1602, 1604, 1605, 1612, 1614, 1933, 1611, 1618, 1615, 1620, - 1622, 1623, 1625, 1630, 1632, 1631, 1633, 1634, 1932, 1931, - 1930, 1635, 1641, 1647, 1636, 1640, 1926, 1649, 1642, 1656, - 1922, 1658, 1652, 1661, 1662, 1663, 1921, 1664, 1666, 1669, - 1665, 1676, 1681, 1920, 1672, 1682, 1683, 1685, 1687, 1688, - 1690, 1916, 1684, 1691, 1698, 1692, 1695, 1700, 1915, 1704, - 1706, 1911, 1708, 1910, 1710, 1711, 1714, 1716, 1720, 1721, - 1727, 1724, 1726, 1909, 1903, 1725, 1728, 1731, 1732, 1733, - 1735, 1737, 1739, 1740, 1875, 1741, 1746, 1751, 1752, 1755, - - 1874, 1757, 1742, 1745, 1873, 1869, 1760, 1758, 1868, 1765, - 1768, 1771, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1781, - 1783, 1867, 1791, 1787, 1792, 1795, 1799, 1796, 1800, 1802, - 1805, 1808, 1866, 1809, 1811, 1816, 1818, 1820, 1822, 1864, - 1823, 1863, 1828, 1829, 1862, 1812, 1831, 1832, 1554, 1462, - 1833, 1835, 1426, 1400, 1205, 1841, 1153, 1838, 1056, 1844, - 758, 1836, 1846, 1848, 697, 1850, 654, 1854, 558, 353, - 174, 1851, 1856, 1857, 1859, 1858, 1861, 114, 2009, 1889, - 1895, 1901, 1907, 100, 1913, 1919, 1925, 61, 1930, 1936 + 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, + 2038, 2024, 50, 2039, 2039, 82, 2039, 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, + 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, + + 240, 2015, 246, 2025, 2013, 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, + 306, 309, 312, 315, 321, 317, 322, 318, 311, 331, + 337, 341, 61, 324, 332, 343, 344, 345, 348, 354, + 350, 351, 352, 355, 357, 268, 359, 361, 214, 364, + 366, 378, 360, 367, 371, 374, 380, 381, 385, 393, + 389, 390, 391, 397, 394, 396, 398, 404, 419, 408, + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 1948, 1954, 62, 1959, 1965 } ; -static yyconst flex_int16_t yy_def[991] = +static yyconst flex_int16_t yy_def[1006] = { 0, - 979, 1, 980, 980, 981, 981, 982, 982, 983, 983, - 979, 984, 979, 979, 979, 985, 979, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 986, 979, 979, 979, - 986, 987, 979, 979, 987, 988, 979, 979, 979, 988, - 989, 979, 979, 989, 984, 984, 979, 990, 985, 990, - 985, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 986, 986, 987, 987, 988, - - 988, 979, 989, 989, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 984, 984, 984, 984, 984, 984, 984, 984, 0, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979 + 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, + + 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, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, 999, 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, + + 994, 994, 994, 994, 994 } ; -static yyconst flex_int16_t yy_nxt[2048] = +static yyconst flex_int16_t yy_nxt[2079] = { 0, 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, 12, 12, 18, 19, 12, 20, 21, 22, 23, 12, - 24, 25, 26, 27, 28, 29, 30, 31, 12, 32, - 33, 34, 35, 36, 12, 12, 12, 12, 38, 39, - 40, 38, 39, 40, 56, 43, 39, 62, 41, 44, - 57, 41, 43, 39, 58, 45, 44, 52, 52, 53, - 56, 100, 45, 47, 48, 48, 49, 54, 39, 52, - 52, 53, 56, 71, 50, 47, 48, 48, 49, 54, - 39, 72, 60, 69, 60, 60, 50, 60, 56, 55, - 56, 55, 55, 61, 55, 56, 63, 66, 56, 67, - - 55, 56, 68, 64, 70, 73, 56, 56, 56, 65, - 56, 75, 76, 56, 74, 56, 79, 56, 89, 83, - 80, 77, 86, 56, 84, 78, 56, 85, 82, 56, - 91, 87, 90, 98, 88, 81, 98, 56, 94, 96, - 96, 93, 95, 103, 103, 100, 92, 100, 100, 55, - 100, 55, 55, 57, 55, 56, 60, 58, 60, 60, - 56, 60, 56, 105, 56, 106, 56, 61, 56, 111, - 56, 56, 107, 56, 56, 56, 56, 108, 116, 56, - 115, 56, 117, 109, 56, 118, 56, 113, 56, 110, - 112, 121, 114, 56, 56, 122, 125, 123, 119, 56, - - 56, 124, 56, 56, 56, 120, 126, 129, 56, 56, - 56, 56, 127, 131, 56, 56, 136, 56, 56, 56, - 56, 128, 132, 133, 140, 130, 56, 56, 144, 134, - 56, 135, 96, 96, 138, 137, 98, 141, 139, 98, - 100, 56, 100, 100, 142, 100, 103, 103, 56, 146, - 56, 56, 148, 143, 56, 145, 147, 56, 56, 154, - 56, 56, 149, 56, 156, 56, 157, 150, 56, 56, - 162, 151, 155, 56, 164, 163, 158, 152, 153, 159, - 56, 56, 160, 56, 167, 56, 161, 165, 169, 56, - 168, 170, 56, 56, 56, 56, 56, 56, 56, 171, - - 172, 56, 56, 166, 56, 56, 56, 177, 180, 56, - 56, 56, 175, 186, 173, 56, 181, 183, 174, 56, - 176, 185, 56, 56, 179, 178, 56, 56, 182, 187, - 56, 56, 189, 188, 192, 56, 191, 190, 56, 184, - 56, 193, 56, 194, 56, 195, 56, 197, 56, 196, - 198, 199, 56, 200, 56, 202, 56, 56, 56, 201, - 56, 56, 206, 56, 56, 56, 208, 203, 56, 205, - 56, 214, 56, 210, 56, 207, 204, 215, 56, 209, - 56, 211, 212, 213, 56, 56, 56, 220, 56, 56, - 221, 223, 56, 56, 216, 219, 56, 217, 218, 56, - - 56, 227, 226, 56, 222, 225, 56, 56, 228, 56, - 230, 224, 56, 56, 56, 241, 56, 56, 229, 56, - 56, 239, 232, 56, 56, 231, 56, 238, 233, 234, - 56, 243, 240, 56, 463, 242, 245, 56, 244, 235, - 236, 237, 246, 247, 248, 56, 56, 56, 250, 249, - 56, 252, 56, 56, 56, 56, 260, 56, 56, 258, - 251, 56, 255, 257, 261, 254, 259, 253, 56, 262, - 263, 56, 56, 56, 256, 56, 56, 265, 56, 267, - 56, 268, 264, 56, 56, 56, 56, 56, 56, 56, - 56, 270, 274, 266, 271, 272, 269, 275, 276, 56, - - 56, 279, 56, 56, 283, 273, 278, 277, 280, 56, - 56, 285, 56, 287, 284, 56, 56, 56, 282, 56, - 56, 56, 56, 56, 56, 281, 286, 289, 292, 288, - 297, 56, 295, 296, 56, 290, 294, 56, 293, 56, - 291, 56, 56, 312, 300, 298, 302, 56, 303, 56, - 304, 305, 56, 299, 301, 56, 306, 56, 56, 56, - 56, 309, 56, 307, 308, 56, 56, 311, 56, 310, - 56, 56, 314, 313, 315, 56, 318, 56, 56, 316, - 319, 56, 317, 322, 323, 320, 56, 56, 56, 56, - 325, 326, 324, 56, 56, 56, 56, 56, 327, 332, - - 56, 330, 331, 56, 56, 56, 321, 56, 329, 333, - 334, 328, 335, 56, 56, 341, 336, 56, 338, 339, - 56, 56, 337, 56, 342, 343, 56, 340, 56, 56, - 56, 56, 56, 56, 56, 56, 347, 348, 349, 350, - 56, 344, 346, 56, 352, 56, 345, 56, 351, 356, - 354, 56, 355, 353, 56, 56, 56, 56, 56, 359, - 357, 361, 362, 358, 56, 56, 56, 56, 56, 368, - 371, 56, 360, 56, 56, 369, 56, 363, 56, 373, - 364, 372, 374, 56, 365, 56, 375, 403, 56, 370, - 366, 367, 56, 56, 378, 376, 377, 379, 380, 56, - - 56, 56, 56, 381, 56, 56, 56, 382, 56, 56, - 383, 386, 384, 388, 56, 387, 389, 56, 56, 56, - 390, 56, 385, 56, 392, 56, 56, 56, 393, 56, - 396, 391, 56, 56, 401, 394, 395, 397, 399, 56, - 56, 56, 398, 56, 56, 406, 400, 56, 404, 56, - 407, 56, 56, 411, 56, 56, 56, 56, 402, 56, - 423, 405, 56, 409, 56, 56, 408, 56, 429, 412, - 56, 410, 469, 420, 56, 421, 56, 56, 56, 413, - 56, 419, 431, 414, 422, 415, 56, 424, 428, 416, - 417, 427, 56, 56, 425, 418, 56, 430, 434, 56, - - 435, 56, 56, 56, 436, 56, 432, 56, 56, 56, - 56, 426, 439, 440, 433, 438, 56, 56, 56, 56, - 437, 56, 444, 442, 445, 56, 446, 447, 441, 449, - 443, 56, 448, 56, 56, 56, 450, 56, 56, 451, - 454, 56, 56, 455, 453, 457, 456, 452, 56, 56, - 56, 56, 56, 464, 56, 460, 461, 462, 56, 466, - 56, 56, 56, 56, 56, 458, 465, 56, 459, 56, - 56, 474, 56, 471, 56, 468, 56, 475, 56, 467, - 470, 56, 473, 476, 480, 56, 478, 477, 56, 56, - 56, 472, 479, 56, 56, 483, 56, 56, 482, 56, - - 485, 56, 56, 56, 56, 481, 56, 56, 486, 491, - 56, 484, 56, 487, 56, 488, 494, 56, 492, 490, - 496, 489, 498, 495, 499, 493, 501, 56, 500, 56, - 56, 56, 503, 497, 56, 502, 56, 506, 56, 507, - 56, 56, 56, 504, 56, 508, 56, 56, 56, 56, - 509, 516, 514, 505, 56, 515, 510, 56, 56, 56, - 511, 56, 512, 56, 513, 518, 585, 517, 522, 56, - 56, 519, 523, 56, 524, 56, 56, 521, 526, 56, - 525, 527, 520, 56, 530, 528, 531, 532, 56, 56, - 529, 56, 56, 56, 535, 56, 56, 533, 56, 56, - - 56, 539, 56, 56, 543, 56, 56, 56, 544, 56, - 56, 534, 56, 56, 56, 536, 538, 537, 548, 56, - 56, 540, 542, 56, 546, 552, 550, 541, 56, 547, - 549, 545, 56, 56, 56, 553, 56, 551, 554, 56, - 555, 556, 560, 56, 559, 561, 56, 56, 557, 564, - 56, 56, 562, 565, 56, 568, 558, 566, 56, 56, - 56, 563, 56, 56, 569, 567, 56, 56, 56, 56, - 56, 56, 56, 576, 577, 56, 56, 580, 56, 56, - 570, 571, 573, 56, 572, 575, 56, 574, 578, 56, - 583, 581, 584, 56, 579, 56, 56, 56, 582, 589, - - 56, 56, 591, 586, 56, 56, 56, 587, 56, 593, - 588, 56, 590, 56, 592, 56, 56, 598, 600, 56, - 56, 599, 56, 56, 594, 595, 602, 603, 56, 56, - 596, 56, 597, 56, 605, 56, 56, 56, 601, 56, - 608, 609, 610, 56, 611, 56, 606, 56, 56, 56, - 607, 56, 604, 617, 612, 56, 56, 56, 56, 56, - 56, 615, 629, 616, 613, 56, 614, 56, 618, 621, - 56, 622, 623, 56, 619, 56, 620, 625, 56, 624, - 630, 56, 626, 56, 627, 56, 56, 628, 56, 56, - 636, 56, 638, 639, 631, 632, 56, 56, 56, 634, - - 56, 56, 633, 56, 641, 635, 640, 56, 637, 56, - 642, 643, 56, 644, 56, 56, 56, 56, 648, 56, - 649, 650, 56, 56, 654, 645, 646, 56, 651, 56, - 56, 647, 661, 56, 653, 56, 652, 56, 655, 657, - 658, 56, 660, 56, 659, 56, 56, 656, 663, 56, - 664, 56, 665, 56, 56, 667, 669, 666, 56, 56, - 56, 56, 672, 668, 662, 671, 56, 56, 56, 56, - 673, 56, 674, 56, 56, 680, 56, 675, 56, 56, - 56, 56, 670, 56, 685, 682, 56, 676, 677, 683, - 678, 56, 689, 56, 56, 681, 688, 56, 679, 692, - - 56, 687, 56, 56, 684, 56, 686, 691, 56, 56, - 56, 693, 690, 56, 696, 700, 703, 694, 697, 56, - 56, 56, 704, 695, 701, 56, 699, 56, 702, 56, - 698, 56, 708, 56, 56, 706, 705, 56, 711, 56, - 56, 56, 56, 707, 56, 710, 712, 713, 56, 56, - 714, 56, 716, 56, 709, 56, 717, 715, 719, 720, - 56, 722, 56, 56, 56, 723, 718, 721, 724, 56, - 56, 726, 725, 56, 56, 56, 56, 56, 56, 733, - 56, 56, 727, 732, 728, 729, 730, 735, 56, 56, - 731, 56, 56, 738, 737, 56, 56, 734, 56, 743, - - 739, 740, 56, 56, 56, 56, 736, 744, 56, 741, - 56, 56, 56, 56, 56, 56, 56, 742, 746, 747, - 748, 745, 749, 750, 751, 56, 56, 752, 56, 753, - 56, 754, 755, 56, 756, 758, 56, 56, 56, 757, - 56, 761, 759, 760, 56, 762, 763, 56, 765, 56, - 56, 766, 56, 764, 56, 56, 56, 56, 56, 768, - 769, 56, 56, 767, 56, 56, 56, 56, 776, 770, - 56, 779, 56, 774, 56, 771, 772, 56, 777, 778, - 56, 773, 780, 56, 775, 781, 56, 783, 56, 782, - 784, 785, 56, 56, 787, 56, 56, 790, 786, 789, - - 56, 56, 56, 56, 793, 792, 56, 791, 795, 56, - 797, 56, 798, 56, 788, 56, 56, 800, 794, 56, - 56, 56, 56, 56, 796, 802, 56, 804, 56, 56, - 801, 56, 808, 56, 812, 806, 56, 805, 807, 56, - 799, 803, 810, 56, 811, 56, 56, 813, 814, 56, - 809, 815, 816, 56, 56, 56, 56, 56, 817, 818, - 822, 56, 821, 56, 56, 56, 56, 823, 819, 825, - 56, 56, 827, 56, 820, 56, 828, 56, 824, 826, - 829, 56, 830, 56, 831, 56, 832, 56, 833, 56, - 56, 56, 834, 56, 835, 836, 837, 56, 838, 56, - - 56, 839, 841, 56, 56, 840, 843, 56, 56, 56, - 847, 56, 56, 56, 56, 842, 56, 56, 844, 845, - 846, 848, 852, 56, 56, 854, 56, 56, 851, 853, - 56, 856, 56, 850, 56, 56, 857, 56, 849, 863, - 855, 862, 56, 56, 56, 56, 56, 56, 56, 858, - 860, 859, 56, 56, 56, 861, 868, 864, 869, 56, - 872, 56, 870, 865, 56, 866, 867, 874, 56, 871, - 56, 875, 873, 56, 56, 56, 56, 56, 56, 878, - 879, 56, 877, 881, 56, 876, 882, 884, 56, 886, - 880, 883, 885, 56, 56, 56, 56, 56, 888, 56, - - 56, 891, 56, 56, 56, 887, 889, 56, 890, 895, - 56, 892, 56, 896, 893, 897, 56, 898, 56, 901, - 56, 894, 56, 56, 903, 899, 56, 905, 56, 904, - 900, 906, 56, 56, 908, 909, 56, 56, 56, 56, - 56, 902, 910, 56, 56, 56, 907, 56, 912, 56, - 915, 56, 56, 56, 56, 911, 920, 56, 56, 914, - 918, 913, 922, 56, 56, 926, 916, 56, 923, 56, - 56, 919, 56, 928, 917, 921, 924, 56, 925, 929, - 56, 927, 930, 56, 933, 56, 56, 56, 56, 56, - 56, 56, 940, 56, 937, 56, 936, 932, 931, 56, - - 941, 934, 942, 56, 56, 935, 945, 56, 56, 939, - 946, 56, 56, 949, 56, 938, 950, 56, 943, 947, - 56, 56, 953, 56, 56, 944, 952, 954, 56, 955, - 56, 948, 56, 957, 56, 56, 958, 956, 951, 959, - 56, 56, 961, 56, 56, 56, 960, 56, 56, 962, - 56, 964, 965, 56, 966, 967, 56, 969, 56, 970, - 56, 971, 56, 56, 963, 968, 56, 972, 56, 56, - 56, 56, 978, 56, 56, 56, 56, 974, 56, 56, - 56, 56, 973, 975, 976, 56, 56, 56, 977, 37, - 37, 37, 37, 37, 37, 42, 42, 42, 42, 42, - - 42, 46, 46, 46, 46, 46, 46, 51, 51, 51, - 51, 51, 51, 59, 59, 56, 59, 59, 59, 96, - 96, 56, 56, 56, 96, 98, 98, 56, 56, 98, - 103, 103, 56, 56, 56, 103, 60, 60, 56, 60, - 60, 60, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 104, 102, 101, 99, 97, - - 56, 104, 102, 101, 99, 97, 56, 979, 11, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979 + 24, 25, 26, 27, 28, 29, 30, 31, 32, 12, + 33, 34, 35, 36, 37, 12, 12, 12, 12, 39, + 40, 41, 39, 40, 41, 57, 44, 40, 63, 42, + 45, 58, 42, 44, 40, 59, 46, 45, 53, 53, + 54, 57, 102, 46, 48, 49, 49, 50, 55, 40, + 53, 53, 54, 57, 57, 51, 48, 49, 49, 50, + 55, 40, 84, 61, 57, 61, 61, 51, 61, 199, + 56, 57, 56, 56, 62, 56, 57, 64, 70, 71, + + 67, 57, 72, 68, 65, 57, 69, 57, 57, 74, + 73, 66, 57, 77, 57, 57, 81, 57, 57, 75, + 82, 100, 76, 57, 100, 57, 85, 78, 88, 79, + 91, 57, 86, 80, 107, 87, 83, 95, 89, 57, + 93, 90, 57, 96, 57, 92, 184, 97, 98, 98, + 102, 57, 102, 102, 108, 102, 57, 94, 105, 105, + 56, 57, 56, 56, 58, 56, 57, 61, 59, 61, + 61, 57, 61, 57, 109, 110, 113, 57, 62, 57, + 57, 57, 57, 117, 111, 57, 57, 118, 57, 119, + 57, 115, 120, 112, 126, 57, 57, 114, 116, 124, + + 57, 57, 127, 125, 122, 57, 121, 129, 57, 57, + 57, 57, 57, 123, 128, 132, 57, 57, 130, 134, + 57, 57, 139, 57, 57, 135, 57, 133, 131, 57, + 57, 136, 57, 57, 143, 215, 137, 159, 138, 98, + 98, 141, 140, 100, 144, 142, 100, 102, 145, 102, + 102, 57, 102, 105, 105, 57, 146, 57, 57, 57, + 151, 57, 57, 147, 150, 57, 157, 57, 57, 57, + 57, 57, 148, 160, 57, 165, 57, 167, 149, 57, + 57, 161, 57, 152, 57, 158, 162, 164, 153, 163, + 169, 166, 212, 154, 57, 168, 171, 170, 57, 155, + + 156, 57, 173, 172, 174, 57, 57, 57, 57, 57, + 57, 57, 175, 57, 176, 57, 57, 57, 57, 187, + 181, 57, 189, 57, 57, 185, 177, 57, 179, 57, + 57, 180, 178, 57, 57, 190, 57, 183, 182, 193, + 186, 195, 188, 57, 57, 194, 196, 201, 192, 57, + 197, 200, 191, 57, 198, 57, 57, 57, 204, 202, + 57, 206, 57, 57, 57, 205, 57, 57, 210, 57, + 203, 57, 57, 57, 213, 220, 57, 209, 57, 57, + 217, 218, 207, 57, 208, 214, 57, 211, 216, 219, + 57, 225, 57, 57, 226, 224, 221, 57, 223, 222, + + 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, + 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, + 256, 57, 265, 57, 57, 263, 260, 57, 262, 266, + 57, 258, 259, 264, 57, 267, 57, 268, 269, 261, + 57, 57, 57, 57, 57, 271, 270, 57, 273, 57, + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, 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, + + 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, 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, + + 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, + + 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, 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, + + 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, + + 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, + 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 } ; -static yyconst flex_int16_t yy_chk[2048] = +static yyconst flex_int16_t yy_chk[2079] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 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, - 22, 988, 6, 7, 7, 7, 7, 9, 7, 10, - 10, 10, 24, 24, 7, 8, 8, 8, 8, 10, - 8, 24, 16, 22, 16, 16, 8, 16, 21, 18, - 23, 18, 18, 16, 18, 20, 20, 21, 27, 21, - - 984, 25, 21, 20, 23, 25, 26, 28, 30, 20, - 31, 26, 27, 33, 25, 29, 29, 32, 33, 31, - 29, 28, 32, 35, 31, 28, 978, 31, 30, 34, - 34, 32, 33, 45, 32, 29, 45, 36, 36, 41, - 41, 35, 36, 54, 54, 50, 34, 50, 50, 56, - 50, 56, 56, 57, 56, 64, 59, 57, 59, 59, - 62, 59, 63, 62, 65, 63, 66, 59, 67, 68, - 70, 69, 64, 73, 68, 71, 72, 65, 73, 74, - 72, 75, 74, 66, 79, 74, 971, 70, 76, 67, - 69, 76, 71, 77, 78, 76, 79, 77, 74, 80, - - 81, 78, 82, 83, 85, 75, 80, 83, 84, 87, - 86, 88, 81, 85, 89, 90, 90, 91, 92, 93, - 106, 82, 86, 87, 93, 84, 94, 95, 106, 88, - 108, 89, 97, 97, 91, 90, 99, 94, 92, 99, - 101, 107, 101, 101, 95, 101, 104, 104, 105, 108, - 113, 109, 110, 105, 112, 107, 109, 110, 111, 112, - 114, 115, 111, 116, 114, 119, 115, 111, 117, 118, - 119, 111, 113, 121, 121, 120, 116, 111, 111, 117, - 120, 122, 117, 123, 124, 125, 118, 122, 126, 124, - 125, 127, 128, 126, 129, 130, 127, 131, 132, 128, - - 129, 133, 134, 123, 135, 136, 137, 134, 137, 138, - 139, 142, 132, 142, 130, 143, 138, 140, 131, 146, - 133, 141, 140, 145, 136, 135, 141, 144, 139, 142, - 150, 147, 144, 143, 147, 151, 146, 145, 154, 140, - 148, 148, 149, 149, 152, 150, 153, 152, 158, 151, - 153, 154, 155, 155, 156, 157, 159, 160, 162, 156, - 157, 161, 161, 163, 165, 970, 163, 158, 164, 160, - 166, 168, 168, 165, 169, 162, 159, 169, 170, 164, - 167, 166, 167, 167, 171, 175, 172, 173, 173, 174, - 174, 176, 177, 179, 170, 172, 176, 170, 171, 182, - - 178, 180, 179, 181, 175, 178, 180, 183, 181, 184, - 183, 177, 187, 186, 188, 189, 190, 191, 182, 192, - 189, 187, 184, 193, 401, 183, 185, 186, 185, 185, - 196, 191, 188, 197, 401, 190, 193, 194, 192, 185, - 185, 185, 194, 195, 195, 198, 195, 199, 197, 196, - 200, 199, 201, 202, 203, 204, 206, 205, 207, 204, - 198, 206, 202, 203, 207, 201, 205, 200, 208, 208, - 209, 210, 211, 212, 202, 209, 216, 211, 213, 213, - 215, 215, 210, 217, 219, 218, 221, 222, 226, 223, - 225, 217, 222, 212, 218, 219, 216, 223, 224, 228, - - 227, 227, 231, 224, 229, 221, 226, 225, 227, 229, - 230, 230, 232, 232, 229, 233, 234, 235, 228, 236, - 238, 241, 239, 237, 257, 227, 231, 234, 237, 233, - 242, 242, 240, 241, 243, 235, 239, 240, 238, 244, - 236, 245, 246, 257, 245, 243, 247, 247, 248, 248, - 249, 250, 250, 244, 246, 249, 251, 251, 252, 259, - 253, 254, 256, 252, 253, 255, 254, 256, 258, 255, - 969, 260, 259, 258, 260, 261, 261, 262, 264, 260, - 262, 263, 260, 264, 265, 263, 266, 267, 268, 265, - 267, 268, 266, 269, 270, 271, 272, 273, 269, 274, - - 275, 272, 273, 278, 274, 280, 263, 276, 271, 275, - 276, 270, 277, 281, 279, 282, 277, 277, 279, 280, - 282, 284, 278, 283, 283, 284, 285, 281, 286, 288, - 287, 292, 289, 290, 291, 293, 288, 289, 290, 291, - 294, 285, 287, 299, 293, 301, 286, 295, 292, 298, - 295, 296, 296, 294, 298, 300, 304, 307, 311, 301, - 299, 307, 308, 300, 310, 312, 967, 308, 316, 310, - 313, 313, 304, 309, 314, 311, 345, 309, 315, 315, - 309, 314, 316, 321, 309, 317, 317, 345, 319, 312, - 309, 309, 318, 320, 320, 318, 319, 321, 322, 322, - - 323, 324, 325, 323, 326, 327, 328, 324, 329, 965, - 325, 328, 326, 330, 330, 329, 331, 332, 333, 339, - 332, 331, 327, 334, 334, 335, 338, 337, 335, 340, - 338, 333, 341, 342, 343, 335, 337, 339, 341, 343, - 344, 347, 340, 346, 348, 348, 342, 349, 346, 350, - 349, 351, 352, 353, 353, 354, 355, 357, 344, 358, - 361, 347, 359, 351, 360, 361, 350, 365, 365, 354, - 961, 352, 407, 358, 367, 359, 407, 364, 363, 355, - 356, 357, 367, 356, 360, 356, 362, 362, 364, 356, - 356, 363, 366, 368, 362, 356, 369, 366, 370, 370, - - 372, 373, 374, 375, 373, 372, 368, 376, 377, 378, - 379, 362, 376, 377, 369, 375, 381, 382, 385, 383, - 374, 384, 382, 379, 383, 391, 384, 385, 378, 387, - 381, 386, 386, 390, 387, 389, 389, 392, 393, 389, - 392, 394, 395, 393, 391, 395, 394, 390, 396, 397, - 398, 399, 403, 402, 400, 398, 399, 400, 402, 404, - 404, 405, 406, 408, 409, 396, 403, 410, 397, 412, - 415, 413, 414, 409, 416, 406, 413, 414, 418, 405, - 408, 417, 412, 415, 419, 419, 417, 416, 420, 421, - 422, 410, 418, 423, 425, 422, 424, 427, 421, 426, - - 424, 428, 429, 430, 431, 420, 432, 433, 425, 430, - 435, 423, 436, 426, 437, 427, 433, 438, 431, 429, - 436, 428, 438, 435, 439, 432, 440, 442, 439, 439, - 443, 440, 442, 437, 441, 441, 444, 445, 452, 446, - 447, 451, 445, 443, 446, 447, 448, 449, 450, 453, - 448, 452, 450, 444, 455, 451, 449, 454, 456, 457, - 449, 461, 449, 525, 449, 454, 525, 453, 458, 458, - 462, 455, 459, 459, 460, 460, 463, 457, 462, 464, - 461, 463, 456, 465, 467, 464, 468, 469, 470, 467, - 465, 468, 469, 471, 472, 472, 473, 470, 474, 475, - - 476, 476, 477, 478, 481, 479, 482, 483, 481, 481, - 484, 471, 486, 487, 485, 473, 475, 474, 485, 488, - 489, 477, 479, 492, 483, 489, 487, 478, 490, 484, - 486, 482, 493, 491, 494, 490, 495, 488, 491, 496, - 492, 493, 497, 501, 496, 498, 506, 497, 494, 502, - 498, 499, 499, 502, 502, 505, 495, 503, 503, 504, - 505, 501, 507, 508, 506, 504, 509, 511, 959, 510, - 514, 512, 513, 513, 514, 516, 515, 517, 517, 519, - 507, 508, 510, 527, 509, 512, 518, 511, 515, 526, - 520, 518, 521, 530, 516, 520, 528, 521, 519, 529, - - 529, 531, 531, 526, 532, 533, 534, 527, 536, 533, - 528, 537, 530, 538, 532, 539, 540, 539, 541, 542, - 543, 540, 545, 541, 534, 536, 543, 545, 546, 548, - 537, 549, 538, 547, 547, 550, 551, 554, 542, 553, - 550, 551, 552, 552, 553, 555, 548, 556, 557, 560, - 549, 558, 546, 559, 554, 561, 562, 564, 559, 568, - 563, 557, 571, 558, 555, 957, 556, 571, 560, 563, - 567, 563, 564, 569, 561, 573, 562, 568, 570, 567, - 572, 572, 569, 574, 569, 575, 576, 570, 577, 578, - 578, 579, 581, 582, 573, 574, 586, 581, 582, 576, - - 583, 584, 575, 585, 584, 577, 583, 587, 579, 588, - 584, 585, 590, 586, 591, 592, 593, 955, 591, 594, - 592, 593, 595, 596, 597, 587, 588, 598, 594, 597, - 599, 590, 604, 600, 596, 602, 595, 604, 598, 600, - 601, 601, 603, 603, 602, 605, 612, 599, 606, 606, - 607, 607, 608, 608, 609, 611, 613, 609, 614, 617, - 611, 613, 616, 612, 605, 615, 615, 616, 618, 619, - 617, 620, 617, 621, 622, 622, 623, 617, 624, 626, - 625, 628, 614, 627, 627, 624, 629, 618, 619, 625, - 620, 631, 632, 633, 635, 623, 631, 632, 621, 635, - - 634, 629, 636, 637, 626, 638, 628, 634, 639, 640, - 641, 636, 633, 642, 639, 643, 645, 637, 640, 649, - 643, 645, 646, 638, 644, 647, 642, 646, 644, 644, - 641, 648, 650, 651, 652, 648, 647, 650, 653, 653, - 654, 659, 655, 649, 656, 652, 654, 655, 657, 662, - 656, 667, 659, 672, 651, 661, 661, 657, 662, 666, - 668, 668, 674, 669, 666, 669, 661, 667, 670, 670, - 673, 673, 672, 675, 676, 677, 678, 680, 679, 680, - 681, 683, 674, 679, 675, 676, 677, 682, 682, 684, - 678, 685, 688, 685, 684, 686, 687, 681, 689, 690, - - 686, 687, 691, 692, 690, 693, 683, 691, 694, 688, - 699, 695, 954, 697, 696, 698, 700, 689, 693, 694, - 695, 692, 695, 696, 697, 707, 701, 698, 703, 699, - 704, 700, 701, 706, 703, 705, 705, 708, 953, 704, - 709, 708, 706, 707, 712, 709, 710, 710, 713, 713, - 714, 714, 715, 712, 716, 718, 717, 719, 720, 716, - 717, 721, 722, 715, 723, 725, 726, 727, 725, 718, - 728, 728, 733, 722, 950, 719, 720, 731, 726, 727, - 740, 721, 729, 729, 723, 730, 730, 732, 732, 731, - 733, 734, 734, 736, 737, 737, 738, 740, 736, 739, - - 739, 741, 742, 743, 743, 742, 745, 741, 744, 744, - 746, 746, 747, 747, 738, 748, 749, 749, 743, 750, - 751, 752, 753, 754, 745, 751, 755, 753, 757, 756, - 750, 759, 757, 760, 762, 755, 764, 754, 756, 762, - 748, 752, 760, 761, 761, 766, 767, 764, 766, 771, - 759, 767, 768, 768, 769, 772, 770, 773, 769, 770, - 774, 775, 773, 776, 777, 774, 949, 775, 771, 777, - 779, 778, 779, 793, 772, 782, 782, 792, 776, 778, - 784, 784, 786, 786, 788, 788, 790, 791, 791, 804, - 794, 790, 792, 799, 793, 794, 796, 796, 799, 800, - - 801, 800, 802, 802, 803, 801, 804, 805, 806, 807, - 808, 808, 809, 810, 811, 803, 812, 813, 805, 806, - 807, 809, 813, 817, 814, 815, 815, 819, 812, 814, - 818, 818, 820, 811, 821, 822, 819, 823, 810, 825, - 817, 824, 824, 826, 825, 827, 828, 832, 835, 820, - 822, 821, 836, 833, 839, 823, 833, 826, 834, 834, - 838, 838, 835, 827, 843, 828, 832, 840, 840, 836, - 842, 842, 839, 844, 845, 846, 848, 851, 849, 845, - 846, 850, 844, 849, 855, 843, 850, 852, 852, 855, - 848, 851, 853, 853, 856, 857, 863, 858, 857, 859, - - 860, 860, 861, 864, 866, 856, 858, 867, 859, 865, - 865, 861, 868, 866, 863, 867, 870, 868, 871, 873, - 873, 864, 875, 876, 876, 870, 877, 878, 878, 877, - 871, 879, 879, 880, 881, 882, 882, 886, 883, 881, - 887, 875, 883, 888, 889, 890, 880, 891, 887, 892, - 890, 893, 894, 896, 903, 886, 896, 904, 897, 889, - 893, 888, 898, 898, 899, 903, 891, 900, 899, 902, - 908, 894, 907, 907, 892, 897, 900, 910, 902, 908, - 911, 904, 910, 912, 913, 913, 914, 915, 916, 917, - 918, 919, 920, 920, 917, 921, 916, 912, 911, 924, - - 921, 914, 923, 923, 925, 915, 926, 926, 928, 919, - 927, 927, 929, 930, 930, 918, 931, 931, 924, 928, - 932, 934, 935, 935, 946, 925, 934, 936, 936, 937, - 937, 929, 938, 939, 939, 941, 941, 938, 932, 943, - 943, 944, 947, 947, 948, 951, 944, 952, 962, 948, - 958, 952, 956, 956, 958, 960, 960, 963, 963, 964, - 964, 966, 966, 972, 951, 962, 968, 968, 973, 974, - 976, 975, 977, 977, 945, 942, 940, 973, 933, 922, - 909, 906, 972, 974, 975, 905, 901, 895, 976, 980, - 980, 980, 980, 980, 980, 981, 981, 981, 981, 981, - - 981, 982, 982, 982, 982, 982, 982, 983, 983, 983, - 983, 983, 983, 985, 985, 885, 985, 985, 985, 986, - 986, 884, 874, 872, 986, 987, 987, 869, 862, 987, - 989, 989, 854, 847, 841, 989, 990, 990, 837, 990, - 990, 990, 831, 830, 829, 816, 798, 797, 795, 789, - 787, 785, 783, 781, 780, 765, 763, 758, 735, 724, - 711, 702, 671, 665, 664, 663, 660, 658, 630, 610, - 589, 580, 566, 565, 544, 535, 524, 523, 522, 500, - 480, 466, 434, 411, 388, 380, 371, 336, 306, 305, - 303, 302, 297, 220, 214, 103, 102, 100, 98, 96, - - 55, 51, 47, 46, 42, 37, 12, 11, 979, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979 + 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, + 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, + + 21, 24, 24, 21, 20, 25, 21, 26, 27, 25, + 24, 20, 28, 27, 29, 30, 30, 32, 36, 25, + 30, 46, 26, 33, 46, 34, 32, 28, 33, 29, + 34, 63, 32, 29, 63, 32, 30, 36, 33, 35, + 35, 33, 37, 37, 140, 34, 140, 37, 42, 42, + 51, 64, 51, 51, 64, 51, 65, 35, 55, 55, + 57, 66, 57, 57, 58, 57, 67, 60, 58, 60, + 60, 68, 60, 71, 65, 66, 69, 70, 60, 73, + 72, 69, 74, 73, 67, 76, 75, 74, 77, 75, + 79, 71, 75, 68, 79, 80, 78, 70, 72, 78, + + 82, 81, 80, 78, 76, 83, 75, 82, 84, 86, + 87, 85, 88, 77, 81, 85, 89, 90, 83, 87, + 91, 92, 92, 93, 94, 88, 169, 86, 84, 95, + 97, 89, 96, 116, 95, 169, 90, 116, 91, 99, + 99, 93, 92, 101, 96, 94, 101, 103, 97, 103, + 103, 107, 103, 106, 106, 108, 107, 109, 110, 111, + 112, 114, 115, 108, 111, 112, 114, 118, 117, 120, + 121, 122, 109, 117, 119, 121, 126, 123, 110, 113, + 166, 118, 123, 113, 125, 115, 119, 120, 113, 119, + 125, 122, 166, 113, 124, 124, 127, 126, 128, 113, + + 113, 127, 129, 128, 130, 131, 133, 129, 132, 130, + 134, 136, 131, 135, 132, 137, 138, 139, 141, 143, + 137, 142, 144, 149, 143, 141, 133, 144, 135, 146, + 148, 136, 134, 145, 147, 145, 154, 139, 138, 147, + 142, 149, 143, 150, 155, 148, 150, 155, 146, 151, + 151, 154, 145, 152, 152, 156, 157, 158, 158, 156, + 159, 160, 161, 162, 163, 159, 160, 164, 164, 165, + 157, 167, 173, 168, 167, 173, 170, 163, 171, 174, + 171, 171, 161, 175, 162, 168, 176, 165, 170, 172, + 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, + 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, + 202, 208, 210, 211, 209, 208, 206, 210, 207, 211, + 212, 204, 205, 209, 215, 212, 213, 213, 214, 206, + 216, 217, 221, 214, 222, 216, 215, 218, 218, 220, + 220, 223, 222, 224, 226, 230, 227, 231, 228, 229, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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, + + 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 } ; static yy_state_type yy_last_accepting_state; @@ -1312,7 +1327,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1315 "" +#line 1330 "" #define INITIAL 0 #define quotedstring 1 @@ -1498,7 +1513,7 @@ YY_DECL #line 107 "util/configlexer.lex" -#line 1501 "" +#line 1516 "" if ( !(yy_init) ) { @@ -1557,13 +1572,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 >= 980 ) + if ( yy_current_state >= 995 ) 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] != 2009 ); + while ( yy_base[yy_current_state] != 2039 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1775,296 +1790,301 @@ YY_RULE_SETUP case 38: YY_RULE_SETUP #line 145 "util/configlexer.lex" -{ YDOUT; return VAR_TARGET_FETCH_POLICY;} +{ YDOUT; return VAR_JOSTLE_TIMEOUT;} YY_BREAK case 39: YY_RULE_SETUP #line 146 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} +{ YDOUT; return VAR_TARGET_FETCH_POLICY;} YY_BREAK case 40: YY_RULE_SETUP #line 147 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} +{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} YY_BREAK case 41: YY_RULE_SETUP #line 148 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_GLUE;} +{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} YY_BREAK case 42: YY_RULE_SETUP #line 149 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} +{ YDOUT; return VAR_HARDEN_GLUE;} YY_BREAK case 43: YY_RULE_SETUP #line 150 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_REFERRAL_PATH;} +{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} YY_BREAK case 44: YY_RULE_SETUP #line 151 "util/configlexer.lex" -{ YDOUT; return VAR_USE_CAPS_FOR_ID;} +{ YDOUT; return VAR_HARDEN_REFERRAL_PATH;} YY_BREAK case 45: YY_RULE_SETUP #line 152 "util/configlexer.lex" -{ YDOUT; return VAR_PRIVATE_ADDRESS;} +{ YDOUT; return VAR_USE_CAPS_FOR_ID;} YY_BREAK case 46: YY_RULE_SETUP #line 153 "util/configlexer.lex" -{ YDOUT; return VAR_PRIVATE_DOMAIN;} +{ YDOUT; return VAR_PRIVATE_ADDRESS;} YY_BREAK case 47: YY_RULE_SETUP #line 154 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ZONE;} +{ YDOUT; return VAR_PRIVATE_DOMAIN;} YY_BREAK case 48: YY_RULE_SETUP #line 155 "util/configlexer.lex" -{ YDOUT; return VAR_NAME;} +{ YDOUT; return VAR_STUB_ZONE;} YY_BREAK case 49: YY_RULE_SETUP #line 156 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ADDR;} +{ YDOUT; return VAR_NAME;} YY_BREAK case 50: YY_RULE_SETUP #line 157 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_HOST;} +{ YDOUT; return VAR_STUB_ADDR;} YY_BREAK case 51: YY_RULE_SETUP #line 158 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +{ YDOUT; return VAR_STUB_HOST;} YY_BREAK case 52: YY_RULE_SETUP #line 159 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +{ YDOUT; return VAR_FORWARD_ZONE;} YY_BREAK case 53: YY_RULE_SETUP #line 160 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +{ YDOUT; return VAR_FORWARD_ADDR;} YY_BREAK case 54: YY_RULE_SETUP #line 161 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +{ YDOUT; return VAR_FORWARD_HOST;} YY_BREAK case 55: YY_RULE_SETUP #line 162 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} YY_BREAK case 56: YY_RULE_SETUP #line 163 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} YY_BREAK case 57: YY_RULE_SETUP #line 164 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +{ YDOUT; return VAR_ACCESS_CONTROL;} YY_BREAK case 58: YY_RULE_SETUP #line 165 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +{ YDOUT; return VAR_HIDE_IDENTITY;} YY_BREAK case 59: YY_RULE_SETUP #line 166 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +{ YDOUT; return VAR_HIDE_VERSION;} YY_BREAK case 60: YY_RULE_SETUP #line 167 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +{ YDOUT; return VAR_IDENTITY;} YY_BREAK case 61: YY_RULE_SETUP #line 168 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +{ YDOUT; return VAR_VERSION;} YY_BREAK case 62: YY_RULE_SETUP #line 169 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR;} +{ YDOUT; return VAR_MODULE_CONF;} YY_BREAK case 63: YY_RULE_SETUP #line 170 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR_FILE;} +{ YDOUT; return VAR_DLV_ANCHOR;} YY_BREAK case 64: YY_RULE_SETUP #line 171 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +{ YDOUT; return VAR_DLV_ANCHOR_FILE;} YY_BREAK case 65: YY_RULE_SETUP #line 172 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} YY_BREAK case 66: YY_RULE_SETUP #line 173 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} YY_BREAK case 67: YY_RULE_SETUP #line 174 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +{ YDOUT; return VAR_TRUST_ANCHOR;} YY_BREAK case 68: YY_RULE_SETUP #line 175 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} YY_BREAK case 69: YY_RULE_SETUP #line 176 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +{ YDOUT; return VAR_BOGUS_TTL;} YY_BREAK case 70: YY_RULE_SETUP #line 177 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} YY_BREAK case 71: YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} YY_BREAK case 72: YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +{ YDOUT; return VAR_KEY_CACHE_SIZE;} YY_BREAK case 73: YY_RULE_SETUP #line 180 "util/configlexer.lex" -{ YDOUT; return VAR_NEG_CACHE_SIZE;} +{ YDOUT; return VAR_KEY_CACHE_SLABS;} YY_BREAK case 74: YY_RULE_SETUP #line 181 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +{ YDOUT; return VAR_NEG_CACHE_SIZE;} YY_BREAK case 75: YY_RULE_SETUP #line 182 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} YY_BREAK case 76: YY_RULE_SETUP #line 183 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +{ YDOUT; return VAR_USE_SYSLOG;} YY_BREAK case 77: YY_RULE_SETUP #line 184 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +{ YDOUT; return VAR_LOCAL_ZONE;} YY_BREAK case 78: YY_RULE_SETUP #line 185 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA_PTR;} +{ YDOUT; return VAR_LOCAL_DATA;} YY_BREAK case 79: YY_RULE_SETUP #line 186 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +{ YDOUT; return VAR_LOCAL_DATA_PTR;} YY_BREAK case 80: YY_RULE_SETUP #line 187 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} +{ YDOUT; return VAR_STATISTICS_INTERVAL;} YY_BREAK case 81: YY_RULE_SETUP #line 188 "util/configlexer.lex" -{ YDOUT; return VAR_EXTENDED_STATISTICS;} +{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} YY_BREAK case 82: YY_RULE_SETUP #line 189 "util/configlexer.lex" -{ YDOUT; return VAR_REMOTE_CONTROL; } +{ YDOUT; return VAR_EXTENDED_STATISTICS;} YY_BREAK case 83: YY_RULE_SETUP #line 190 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_ENABLE; } +{ YDOUT; return VAR_REMOTE_CONTROL; } YY_BREAK case 84: YY_RULE_SETUP #line 191 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_INTERFACE; } +{ YDOUT; return VAR_CONTROL_ENABLE; } YY_BREAK case 85: YY_RULE_SETUP #line 192 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_PORT; } +{ YDOUT; return VAR_CONTROL_INTERFACE; } YY_BREAK case 86: YY_RULE_SETUP #line 193 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER_KEY_FILE; } +{ YDOUT; return VAR_CONTROL_PORT; } YY_BREAK case 87: YY_RULE_SETUP #line 194 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER_CERT_FILE; } +{ YDOUT; return VAR_SERVER_KEY_FILE; } YY_BREAK case 88: YY_RULE_SETUP #line 195 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_KEY_FILE; } +{ YDOUT; return VAR_SERVER_CERT_FILE; } YY_BREAK case 89: YY_RULE_SETUP #line 196 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_CERT_FILE; } +{ YDOUT; return VAR_CONTROL_KEY_FILE; } YY_BREAK case 90: -/* rule 90 can match eol */ YY_RULE_SETUP #line 197 "util/configlexer.lex" +{ YDOUT; return VAR_CONTROL_CERT_FILE; } + YY_BREAK +case 91: +/* rule 91 can match eol */ +YY_RULE_SETUP +#line 198 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 91: +case 92: YY_RULE_SETUP -#line 200 "util/configlexer.lex" +#line 201 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 201 "util/configlexer.lex" +#line 202 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 92: -YY_RULE_SETUP -#line 205 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 93: -/* rule 93 can match eol */ YY_RULE_SETUP #line 206 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ 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(); } + YY_BREAK +case 95: +YY_RULE_SETUP +#line 208 "util/configlexer.lex" { LEXOUT(("QE ")); BEGIN(INITIAL); @@ -2076,32 +2096,32 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 95: +case 96: YY_RULE_SETUP -#line 218 "util/configlexer.lex" +#line 219 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 219 "util/configlexer.lex" +#line 220 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 96: -YY_RULE_SETUP -#line 223 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 97: -/* rule 97 can match eol */ YY_RULE_SETUP #line 224 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ 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(); } + YY_BREAK +case 99: +YY_RULE_SETUP +#line 226 "util/configlexer.lex" { LEXOUT(("SQE ")); BEGIN(INITIAL); @@ -2113,37 +2133,37 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 99: +case 100: YY_RULE_SETUP -#line 236 "util/configlexer.lex" +#line 237 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 237 "util/configlexer.lex" +#line 238 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(INITIAL); } YY_BREAK -case 100: -YY_RULE_SETUP -#line 241 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 101: -/* rule 101 can match eol */ YY_RULE_SETUP #line 242 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 102: +/* rule 102 can match eol */ YY_RULE_SETUP #line 243 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 103: YY_RULE_SETUP #line 244 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 104: +YY_RULE_SETUP +#line 245 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2151,26 +2171,26 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 249 "util/configlexer.lex" +#line 250 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(INITIAL); } YY_BREAK -case 104: -YY_RULE_SETUP -#line 253 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 105: -/* rule 105 can match eol */ YY_RULE_SETUP #line 254 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +{ 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(); } + YY_BREAK +case 107: +YY_RULE_SETUP +#line 256 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2179,7 +2199,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 261 "util/configlexer.lex" +#line 262 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2190,18 +2210,18 @@ case YY_STATE_EOF(INITIAL): } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 271 "util/configlexer.lex" +#line 272 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 274 "util/configlexer.lex" +#line 275 "util/configlexer.lex" ECHO; YY_BREAK -#line 2204 "" +#line 2224 "" case YY_END_OF_BUFFER: { @@ -2491,7 +2511,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 >= 980 ) + if ( yy_current_state >= 995 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2519,11 +2539,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 >= 980 ) + if ( yy_current_state >= 995 ) 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 == 979); + yy_is_jam = (yy_current_state == 994); return yy_is_jam ? 0 : yy_current_state; } @@ -3160,7 +3180,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 274 "util/configlexer.lex" +#line 275 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index c6c74bab7..16364630a 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -142,6 +142,7 @@ infra-cache-slabs{COLON} { YDOUT; return VAR_INFRA_CACHE_SLABS;} infra-cache-numhosts{COLON} { YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} infra-cache-lame-size{COLON} { YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} num-queries-per-thread{COLON} { YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} +jostle-timeout{COLON} { YDOUT; return VAR_JOSTLE_TIMEOUT;} target-fetch-policy{COLON} { YDOUT; return VAR_TARGET_FETCH_POLICY;} harden-short-bufsize{COLON} { YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} harden-large-queries{COLON} { YDOUT; return VAR_HARDEN_LARGE_QUERIES;} diff --git a/util/configparser.c b/util/configparser.c index 58e675ad5..b17be86e7 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -160,7 +160,8 @@ VAR_CONTROL_KEY_FILE = 349, VAR_CONTROL_CERT_FILE = 350, VAR_EXTENDED_STATISTICS = 351, - VAR_LOCAL_DATA_PTR = 352 + VAR_LOCAL_DATA_PTR = 352, + VAR_JOSTLE_TIMEOUT = 353 }; #endif /* Tokens. */ @@ -259,6 +260,7 @@ #define VAR_CONTROL_CERT_FILE 350 #define VAR_EXTENDED_STATISTICS 351 #define VAR_LOCAL_DATA_PTR 352 +#define VAR_JOSTLE_TIMEOUT 353 @@ -317,7 +319,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 321 "util/configparser.c" +#line 323 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -330,7 +332,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 334 "util/configparser.c" +#line 336 "util/configparser.c" #ifdef short # undef short @@ -545,20 +547,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 175 +#define YYLAST 177 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 98 +#define YYNTOKENS 99 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 99 +#define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 187 +#define YYNRULES 189 /* YYNRULES -- Number of states. */ -#define YYNSTATES 274 +#define YYNSTATES 277 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 352 +#define YYMAXUTOK 353 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -601,7 +603,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 + 95, 96, 97, 98 }; #if YYDEBUG @@ -617,69 +619,69 @@ static const yytype_uint16 yyprhs[] = 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, - 163, 165, 167, 169, 172, 173, 175, 177, 179, 181, - 184, 185, 187, 189, 191, 194, 197, 200, 203, 206, - 209, 212, 215, 218, 221, 224, 227, 230, 233, 236, - 239, 242, 245, 248, 251, 254, 257, 260, 263, 266, - 269, 272, 275, 278, 281, 284, 287, 290, 293, 296, - 299, 302, 305, 308, 311, 314, 317, 320, 323, 326, - 329, 332, 335, 338, 341, 344, 347, 350, 353, 356, - 359, 362, 366, 369, 372, 375, 378, 381, 384, 387, - 390, 393, 396, 400, 403, 406, 409, 412, 415, 418, - 421, 424, 426, 429, 430, 432, 434, 436, 438, 440, - 442, 444, 447, 450, 453, 456, 459, 462 + 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 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 99, 0, -1, -1, 99, 100, -1, 101, 102, -1, - 104, 105, -1, 107, 108, -1, 187, 188, -1, 11, - -1, 102, 103, -1, -1, 110, -1, 111, -1, 115, - -1, 118, -1, 124, -1, 125, -1, 126, -1, 127, - -1, 116, -1, 130, -1, 131, -1, 132, -1, 133, - -1, 134, -1, 146, -1, 147, -1, 148, -1, 149, - -1, 150, -1, 121, -1, 151, -1, 152, -1, 155, - -1, 153, -1, 154, -1, 156, -1, 157, -1, 158, - -1, 165, -1, 141, -1, 142, -1, 143, -1, 144, - -1, 159, -1, 168, -1, 138, -1, 140, -1, 169, - -1, 171, -1, 172, -1, 173, -1, 122, -1, 145, - -1, 175, -1, 176, -1, 139, -1, 174, -1, 129, - -1, 117, -1, 135, -1, 166, -1, 170, -1, 160, - -1, 167, -1, 178, -1, 179, -1, 123, -1, 112, - -1, 128, -1, 162, -1, 113, -1, 119, -1, 120, - -1, 136, -1, 137, -1, 177, -1, 161, -1, 163, - -1, 164, -1, 114, -1, 180, -1, 38, -1, 105, - 106, -1, -1, 181, -1, 182, -1, 183, -1, 44, - -1, 108, 109, -1, -1, 184, -1, 185, -1, 186, - -1, 13, 10, -1, 12, 10, -1, 76, 10, -1, - 79, 10, -1, 96, 10, -1, 14, 10, -1, 16, - 10, -1, 67, 10, -1, 15, 10, -1, 80, 10, - -1, 81, 10, -1, 31, 10, -1, 60, 10, -1, - 75, 10, -1, 17, 10, -1, 18, 10, -1, 19, - 10, -1, 20, 10, -1, 77, 10, -1, 66, 10, - -1, 21, 10, -1, 22, 10, -1, 23, 10, -1, - 24, 10, -1, 25, 10, -1, 68, 10, -1, 82, - 10, -1, 83, 10, -1, 54, 10, -1, 64, 10, - -1, 55, 10, -1, 48, 10, -1, 49, 10, -1, - 50, 10, -1, 51, 10, -1, 61, 10, -1, 26, - 10, -1, 27, 10, -1, 28, 10, -1, 29, 10, - -1, 30, 10, -1, 32, 10, -1, 33, 10, -1, - 35, 10, -1, 36, 10, -1, 34, 10, -1, 41, - 10, -1, 42, 10, -1, 43, 10, -1, 52, 10, - -1, 71, 10, -1, 85, 10, -1, 78, 10, -1, - 86, 10, -1, 87, 10, -1, 47, 10, -1, 69, - 10, -1, 72, 10, 10, -1, 53, 10, -1, 56, - 10, -1, 70, 10, -1, 57, 10, -1, 58, 10, - -1, 59, 10, -1, 65, 10, -1, 62, 10, -1, - 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, - 74, 10, -1, 97, 10, -1, 37, 10, -1, 39, - 10, -1, 40, 10, -1, 37, 10, -1, 45, 10, - -1, 46, 10, -1, 88, -1, 188, 189, -1, -1, - 190, -1, 192, -1, 191, -1, 193, -1, 194, -1, - 195, -1, 196, -1, 89, 10, -1, 91, 10, -1, - 90, 10, -1, 92, 10, -1, 93, 10, -1, 94, - 10, -1, 95, 10, -1 + 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 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -693,17 +695,17 @@ static const yytype_uint16 yyrline[] = 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, 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, 536, 549, 558, 567, 576, 585, - 598, 605, 615, 625, 635, 645, 655, 665, 672, 679, - 686, 696, 710, 717, 735, 744, 753, 763, 773, 780, - 788, 801, 809, 828, 835, 850, 857, 864, 871, 878, - 885, 892, 897, 898, 899, 899, 899, 900, 900, 900, - 901, 903, 913, 922, 929, 936, 943, 950 + 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 }; #endif @@ -742,10 +744,10 @@ static const char *const yytname[] = "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE", "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", - "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", + "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", @@ -760,24 +762,24 @@ static const char *const yytname[] = "server_trust_anchor", "server_hide_identity", "server_hide_version", "server_identity", "server_version", "server_msg_buffer_size", "server_msg_cache_size", "server_msg_cache_slabs", - "server_num_queries_per_thread", "server_rrset_cache_size", - "server_rrset_cache_slabs", "server_infra_host_ttl", - "server_infra_lame_ttl", "server_infra_cache_numhosts", - "server_infra_cache_lame_size", "server_infra_cache_slabs", - "server_target_fetch_policy", "server_harden_short_bufsize", - "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_harden_referral_path", - "server_use_caps_for_id", "server_private_address", - "server_private_domain", "server_do_not_query_address", - "server_do_not_query_localhost", "server_access_control", - "server_module_conf", "server_val_override_date", "server_cache_max_ttl", - "server_bogus_ttl", "server_val_clean_additional", - "server_val_permissive_mode", "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", + "server_num_queries_per_thread", "server_jostle_timeout", + "server_rrset_cache_size", "server_rrset_cache_slabs", + "server_infra_host_ttl", "server_infra_lame_ttl", + "server_infra_cache_numhosts", "server_infra_cache_lame_size", + "server_infra_cache_slabs", "server_target_fetch_policy", + "server_harden_short_bufsize", "server_harden_large_queries", + "server_harden_glue", "server_harden_dnssec_stripped", + "server_harden_referral_path", "server_use_caps_for_id", + "server_private_address", "server_private_domain", + "server_do_not_query_address", "server_do_not_query_localhost", + "server_access_control", "server_module_conf", + "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl", + "server_val_clean_additional", "server_val_permissive_mode", + "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 }; @@ -797,23 +799,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 + 345, 346, 347, 348, 349, 350, 351, 352, 353 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 98, 99, 99, 100, 100, 100, 100, 101, 102, - 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 104, 105, 105, 106, 106, 106, 107, 108, - 108, 109, 109, 109, 110, 111, 112, 113, 114, 115, + 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, 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, @@ -821,8 +823,8 @@ 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, 188, 189, 189, 189, 189, 189, 189, - 189, 190, 191, 192, 193, 194, 195, 196 + 186, 187, 188, 189, 190, 190, 191, 191, 191, 191, + 191, 191, 191, 192, 193, 194, 195, 196, 197, 198 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -836,17 +838,17 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 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, 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 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -854,49 +856,49 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 8, 82, 88, 171, 3, 10, 84, - 90, 173, 4, 5, 6, 7, 0, 0, 0, 0, + 2, 0, 1, 8, 83, 89, 173, 3, 10, 85, + 91, 175, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 11, 12, - 68, 71, 80, 13, 19, 59, 14, 72, 73, 30, - 52, 67, 15, 16, 17, 18, 69, 58, 20, 21, - 22, 23, 24, 60, 74, 75, 46, 56, 47, 40, - 41, 42, 43, 53, 25, 26, 27, 28, 29, 31, - 32, 34, 35, 33, 36, 37, 38, 44, 63, 77, - 70, 78, 79, 39, 61, 64, 45, 48, 62, 49, - 50, 51, 57, 54, 55, 76, 65, 66, 81, 0, - 0, 0, 83, 85, 86, 87, 0, 0, 0, 89, - 91, 92, 93, 0, 0, 0, 0, 0, 0, 0, - 172, 174, 176, 175, 177, 178, 179, 180, 95, 94, - 99, 102, 100, 108, 109, 110, 111, 114, 115, 116, - 117, 118, 130, 131, 132, 133, 134, 105, 135, 136, - 139, 137, 138, 140, 141, 142, 149, 125, 126, 127, - 128, 143, 152, 122, 124, 153, 155, 156, 157, 106, - 129, 159, 160, 123, 158, 113, 101, 119, 150, 154, - 144, 0, 0, 163, 107, 96, 112, 146, 97, 103, - 104, 120, 121, 161, 145, 147, 148, 98, 164, 165, - 166, 167, 168, 169, 170, 181, 183, 182, 184, 185, - 186, 187, 151, 162 + 0, 0, 0, 0, 0, 0, 0, 0, 9, 11, + 12, 68, 71, 80, 13, 19, 59, 14, 72, 73, + 30, 52, 67, 15, 16, 17, 18, 69, 58, 20, + 21, 22, 23, 24, 60, 74, 75, 46, 56, 47, + 40, 41, 42, 43, 53, 25, 26, 27, 82, 28, + 29, 31, 32, 34, 35, 33, 36, 37, 38, 44, + 63, 77, 70, 78, 79, 39, 61, 64, 45, 48, + 62, 49, 50, 51, 57, 54, 55, 76, 65, 66, + 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 8, 12, 87, 9, 13, 162, 10, - 14, 169, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 163, 164, 165, 170, 171, 172, 11, - 15, 180, 181, 182, 183, 184, 185, 186, 187 + -1, 1, 7, 8, 12, 88, 9, 13, 164, 10, + 14, 171, 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 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -910,28 +912,28 @@ static const yytype_int16 yypact[] = 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 69, 70, 71, 72, 76, 77, 120, 121, - 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, -88, -88, -88, + 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, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, -88, -88, -88, -88, -88, 151, - 152, 153, -88, -88, -88, -88, 154, 155, 156, -88, - -88, -88, -88, 157, 158, 159, 160, 161, 162, 163, -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, -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, 164, 165, -88, -88, -88, -88, -88, -88, -88, + -88, -88, -88, 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 }; /* YYPGOTO[NTERM-NUM]. */ @@ -946,7 +948,7 @@ static const yytype_int8 yypgoto[] = -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, -88, -88, -88, -88, -88 + -88, -88, -88, -88, -88, -88, -88, -88, -88, -88 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -956,24 +958,24 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 2, 166, 173, 174, 175, 176, 177, 178, 179, 167, - 168, 3, 159, 188, 160, 161, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 4, 211, - 212, 213, 214, 215, 5, 216, 217, 218, 219, 220, - 221, 222, 0, 223, 16, 17, 18, 19, 20, 21, + 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, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 224, - 225, 226, 227, 41, 42, 43, 228, 229, 6, 44, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 226, + 227, 228, 229, 41, 42, 43, 230, 231, 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, - 230, 231, 232, 233, 234, 235, 236, 237, 85, 86, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273 + 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 }; static const yytype_int8 yycheck[] = @@ -992,35 +994,35 @@ static const yytype_int8 yycheck[] = 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 10, 10, 10, 10, 10, 10, 10, 10, 96, 97, + 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, 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, 99, 0, 11, 38, 44, 88, 100, 101, 104, - 107, 187, 102, 105, 108, 188, 12, 13, 14, 15, + 0, 100, 0, 11, 38, 44, 88, 101, 102, 105, + 108, 189, 103, 106, 109, 190, 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, 103, 110, 111, + 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, 37, - 39, 40, 106, 181, 182, 183, 37, 45, 46, 109, - 184, 185, 186, 89, 90, 91, 92, 93, 94, 95, - 189, 190, 191, 192, 193, 194, 195, 196, 10, 10, + 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, 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, @@ -1029,7 +1031,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 }; #define yyerrok (yyerrstatus = 0) @@ -1850,7 +1852,7 @@ yyreduce: } break; - case 82: + case 83: #line 147 "util/configparser.y" { struct config_stub* s; @@ -1864,7 +1866,7 @@ yyreduce: } break; - case 88: + case 89: #line 163 "util/configparser.y" { struct config_stub* s; @@ -1878,7 +1880,7 @@ yyreduce: } break; - case 94: + case 95: #line 179 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1889,7 +1891,7 @@ yyreduce: } break; - case 95: + case 96: #line 188 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1900,7 +1902,7 @@ yyreduce: } break; - case 96: + case 97: #line 197 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1913,7 +1915,7 @@ yyreduce: } break; - case 97: + case 98: #line 208 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1924,7 +1926,7 @@ yyreduce: } break; - case 98: + case 99: #line 217 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1935,7 +1937,7 @@ yyreduce: } break; - case 99: + case 100: #line 226 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1946,7 +1948,7 @@ yyreduce: } break; - case 100: + case 101: #line 235 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1961,7 +1963,7 @@ yyreduce: } break; - case 101: + case 102: #line 248 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1978,7 +1980,7 @@ yyreduce: } break; - case 102: + case 103: #line 263 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); @@ -1989,7 +1991,7 @@ yyreduce: } break; - case 103: + case 104: #line 272 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2000,7 +2002,7 @@ yyreduce: } break; - case 104: + case 105: #line 281 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2011,7 +2013,7 @@ yyreduce: } break; - case 105: + case 106: #line 290 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2022,7 +2024,7 @@ yyreduce: } break; - case 106: + case 107: #line 299 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2033,7 +2035,7 @@ yyreduce: } break; - case 107: + case 108: #line 308 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2044,7 +2046,7 @@ yyreduce: } break; - case 108: + case 109: #line 317 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2055,7 +2057,7 @@ yyreduce: } break; - case 109: + case 110: #line 326 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2066,7 +2068,7 @@ yyreduce: } break; - case 110: + case 111: #line 335 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2077,7 +2079,7 @@ yyreduce: } break; - case 111: + case 112: #line 344 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2088,7 +2090,7 @@ yyreduce: } break; - case 112: + case 113: #line 353 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2099,7 +2101,7 @@ yyreduce: } break; - case 113: + case 114: #line 362 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2115,7 +2117,7 @@ yyreduce: } break; - case 114: + case 115: #line 376 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2124,7 +2126,7 @@ yyreduce: } break; - case 115: + case 116: #line 383 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2133,7 +2135,7 @@ yyreduce: } break; - case 116: + case 117: #line 390 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2142,7 +2144,7 @@ yyreduce: } break; - case 117: + case 118: #line 397 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2152,7 +2154,7 @@ yyreduce: } break; - case 118: + case 119: #line 405 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2161,7 +2163,7 @@ yyreduce: } break; - case 119: + case 120: #line 412 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2170,7 +2172,7 @@ yyreduce: } break; - case 120: + case 121: #line 419 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2179,7 +2181,7 @@ yyreduce: } break; - case 121: + case 122: #line 426 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2188,7 +2190,7 @@ yyreduce: } break; - case 122: + case 123: #line 433 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2198,7 +2200,7 @@ yyreduce: } break; - case 123: + case 124: #line 441 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2208,7 +2210,7 @@ yyreduce: } break; - case 124: + case 125: #line 449 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2217,7 +2219,7 @@ yyreduce: } break; - case 125: + case 126: #line 456 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2228,7 +2230,7 @@ yyreduce: } break; - case 126: + case 127: #line 465 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2239,7 +2241,7 @@ yyreduce: } break; - case 127: + case 128: #line 474 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2248,7 +2250,7 @@ yyreduce: } break; - case 128: + case 129: #line 481 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2257,7 +2259,7 @@ yyreduce: } break; - case 129: + case 130: #line 488 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2270,7 +2272,7 @@ yyreduce: } break; - case 130: + case 131: #line 499 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2280,7 +2282,7 @@ yyreduce: } break; - case 131: + case 132: #line 507 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2295,7 +2297,7 @@ yyreduce: } break; - case 132: + case 133: #line 520 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2306,8 +2308,19 @@ yyreduce: } break; - case 133: + case 134: #line 529 "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) + yyerror("number expected"); + else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 135: +#line 538 "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)) @@ -2316,8 +2329,8 @@ yyreduce: } break; - case 134: -#line 537 "util/configparser.y" + case 136: +#line 546 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2331,8 +2344,8 @@ yyreduce: } break; - case 135: -#line 550 "util/configparser.y" + case 137: +#line 559 "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) @@ -2342,8 +2355,8 @@ yyreduce: } break; - case 136: -#line 559 "util/configparser.y" + case 138: +#line 568 "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) @@ -2353,8 +2366,8 @@ yyreduce: } break; - case 137: -#line 568 "util/configparser.y" + case 139: +#line 577 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2364,8 +2377,8 @@ yyreduce: } break; - case 138: -#line 577 "util/configparser.y" + case 140: +#line 586 "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-> @@ -2375,8 +2388,8 @@ yyreduce: } break; - case 139: -#line 586 "util/configparser.y" + case 141: +#line 595 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2390,8 +2403,8 @@ yyreduce: } break; - case 140: -#line 599 "util/configparser.y" + case 142: +#line 608 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2399,8 +2412,8 @@ yyreduce: } break; - case 141: -#line 606 "util/configparser.y" + case 143: +#line 615 "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) @@ -2411,8 +2424,8 @@ yyreduce: } break; - case 142: -#line 616 "util/configparser.y" + case 144: +#line 625 "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) @@ -2423,8 +2436,8 @@ yyreduce: } break; - case 143: -#line 626 "util/configparser.y" + case 145: +#line 635 "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) @@ -2435,8 +2448,8 @@ yyreduce: } break; - case 144: -#line 636 "util/configparser.y" + case 146: +#line 645 "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) @@ -2447,8 +2460,8 @@ yyreduce: } break; - case 145: -#line 646 "util/configparser.y" + case 147: +#line 655 "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) @@ -2459,8 +2472,8 @@ yyreduce: } break; - case 146: -#line 656 "util/configparser.y" + case 148: +#line 665 "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) @@ -2471,8 +2484,8 @@ yyreduce: } break; - case 147: -#line 666 "util/configparser.y" + case 149: +#line 675 "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))) @@ -2480,8 +2493,8 @@ yyreduce: } break; - case 148: -#line 673 "util/configparser.y" + case 150: +#line 682 "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))) @@ -2489,8 +2502,8 @@ yyreduce: } break; - case 149: -#line 680 "util/configparser.y" + case 151: +#line 689 "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))) @@ -2498,8 +2511,8 @@ yyreduce: } break; - case 150: -#line 687 "util/configparser.y" + case 152: +#line 696 "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) @@ -2510,8 +2523,8 @@ yyreduce: } break; - case 151: -#line 697 "util/configparser.y" + case 153: +#line 706 "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 && @@ -2526,8 +2539,8 @@ yyreduce: } break; - case 152: -#line 711 "util/configparser.y" + case 154: +#line 720 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2535,8 +2548,8 @@ yyreduce: } break; - case 153: -#line 718 "util/configparser.y" + case 155: +#line 727 "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) { @@ -2555,8 +2568,8 @@ yyreduce: } break; - case 154: -#line 736 "util/configparser.y" + case 156: +#line 745 "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) @@ -2566,8 +2579,8 @@ yyreduce: } break; - case 155: -#line 745 "util/configparser.y" + case 157: +#line 754 "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) @@ -2577,8 +2590,8 @@ yyreduce: } break; - case 156: -#line 754 "util/configparser.y" + case 158: +#line 763 "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) @@ -2589,8 +2602,8 @@ yyreduce: } break; - case 157: -#line 764 "util/configparser.y" + case 159: +#line 773 "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) @@ -2601,8 +2614,8 @@ yyreduce: } break; - case 158: -#line 774 "util/configparser.y" + case 160: +#line 783 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2610,8 +2623,8 @@ yyreduce: } break; - case 159: -#line 781 "util/configparser.y" + case 161: +#line 790 "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)) @@ -2620,8 +2633,8 @@ yyreduce: } break; - case 160: -#line 789 "util/configparser.y" + case 162: +#line 798 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2635,8 +2648,8 @@ yyreduce: } break; - case 161: -#line 802 "util/configparser.y" + case 163: +#line 811 "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)) @@ -2645,8 +2658,8 @@ yyreduce: } break; - case 162: -#line 810 "util/configparser.y" + case 164: +#line 819 "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 && @@ -2666,8 +2679,8 @@ yyreduce: } break; - case 163: -#line 829 "util/configparser.y" + case 165: +#line 838 "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))) @@ -2675,8 +2688,8 @@ yyreduce: } break; - case 164: -#line 836 "util/configparser.y" + case 166: +#line 845 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2692,8 +2705,8 @@ yyreduce: } break; - case 165: -#line 851 "util/configparser.y" + case 167: +#line 860 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2701,8 +2714,8 @@ yyreduce: } break; - case 166: -#line 858 "util/configparser.y" + case 168: +#line 867 "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))) @@ -2710,8 +2723,8 @@ yyreduce: } break; - case 167: -#line 865 "util/configparser.y" + case 169: +#line 874 "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))) @@ -2719,8 +2732,8 @@ yyreduce: } break; - case 168: -#line 872 "util/configparser.y" + case 170: +#line 881 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2728,8 +2741,8 @@ yyreduce: } break; - case 169: -#line 879 "util/configparser.y" + case 171: +#line 888 "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))) @@ -2737,8 +2750,8 @@ yyreduce: } break; - case 170: -#line 886 "util/configparser.y" + case 172: +#line 895 "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))) @@ -2746,15 +2759,15 @@ yyreduce: } break; - case 171: -#line 893 "util/configparser.y" + case 173: +#line 902 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 181: -#line 904 "util/configparser.y" + case 183: +#line 913 "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) @@ -2765,8 +2778,8 @@ yyreduce: } break; - case 182: -#line 914 "util/configparser.y" + case 184: +#line 923 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2776,8 +2789,8 @@ yyreduce: } break; - case 183: -#line 923 "util/configparser.y" + case 185: +#line 932 "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))) @@ -2785,8 +2798,8 @@ yyreduce: } break; - case 184: -#line 930 "util/configparser.y" + case 186: +#line 939 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -2794,8 +2807,8 @@ yyreduce: } break; - case 185: -#line 937 "util/configparser.y" + case 187: +#line 946 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -2803,8 +2816,8 @@ yyreduce: } break; - case 186: -#line 944 "util/configparser.y" + case 188: +#line 953 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -2812,8 +2825,8 @@ yyreduce: } break; - case 187: -#line 951 "util/configparser.y" + case 189: +#line 960 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -2823,7 +2836,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2827 "util/configparser.c" +#line 2840 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3037,7 +3050,7 @@ yyreturn: } -#line 957 "util/configparser.y" +#line 966 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index ccfd32762..b58057829 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -133,7 +133,8 @@ VAR_CONTROL_KEY_FILE = 349, VAR_CONTROL_CERT_FILE = 350, VAR_EXTENDED_STATISTICS = 351, - VAR_LOCAL_DATA_PTR = 352 + VAR_LOCAL_DATA_PTR = 352, + VAR_JOSTLE_TIMEOUT = 353 }; #endif /* Tokens. */ @@ -232,6 +233,7 @@ #define VAR_CONTROL_CERT_FILE 350 #define VAR_EXTENDED_STATISTICS 351 #define VAR_LOCAL_DATA_PTR 352 +#define VAR_JOSTLE_TIMEOUT 353 @@ -243,7 +245,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 247 "util/configparser.h" +#line 249 "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 43866a558..c5c11b49d 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -95,7 +95,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE -%token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR +%token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -141,7 +141,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size | server_harden_referral_path | server_private_address | server_private_domain | server_extended_statistics | - server_local_data_ptr + server_local_data_ptr | server_jostle_timeout ; stubstart: VAR_STUB_ZONE { @@ -525,6 +525,15 @@ server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING free($2); } ; +server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING + { + OUTYY(("P(server_jostle_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->jostle_time = atoi($2); + free($2); + } + ; server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING { OUTYY(("P(server_rrset_cache_size:%s)\n", $2));