diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/config_file.c | 10 | ||||
-rw-r--r-- | util/config_file.h | 4 | ||||
-rw-r--r-- | util/configlexer.c | 3878 | ||||
-rw-r--r-- | util/configlexer.lex | 5 | ||||
-rw-r--r-- | util/configparser.c | 1198 | ||||
-rw-r--r-- | util/configparser.h | 6 | ||||
-rw-r--r-- | util/configparser.y | 14 | ||||
-rw-r--r-- | util/data/msgencode.c | 2 | ||||
-rw-r--r-- | util/iana_ports.inc | 6 | ||||
-rw-r--r-- | util/net_help.c | 23 |
10 files changed, 2622 insertions, 2524 deletions
diff --git a/util/config_file.c b/util/config_file.c index 5d31301fa002..211fffba4b88 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -70,6 +70,8 @@ uid_t cfg_uid = (uid_t)-1; /** from cfg username, after daemonise setup performed */ gid_t cfg_gid = (gid_t)-1; +/** for debug allow small timeout values for fast rollovers */ +int autr_permit_small_holddown = 0; /** global config during parsing */ struct config_parser_state* cfg_parser = 0; @@ -172,7 +174,7 @@ config_create(void) cfg->harden_dnssec_stripped = 1; cfg->harden_below_nxdomain = 0; cfg->harden_referral_path = 0; - cfg->harden_algo_downgrade = 1; + cfg->harden_algo_downgrade = 0; cfg->use_caps_bits_for_id = 0; cfg->caps_whitelist = NULL; cfg->private_address = NULL; @@ -200,6 +202,7 @@ config_create(void) cfg->add_holddown = 30*24*3600; cfg->del_holddown = 30*24*3600; cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */ + cfg->permit_small_holddown = 0; cfg->key_cache_size = 4 * 1024 * 1024; cfg->key_cache_slabs = 4; cfg->neg_cache_size = 1 * 1024 * 1024; @@ -444,6 +447,9 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown) else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown) else S_UNSIGNED_OR_ZERO("keep-missing:", keep_missing) + else if(strcmp(opt, "permit-small-holddown:") == 0) + { IS_YES_OR_NO; cfg->permit_small_holddown = (strcmp(val, "yes") == 0); + autr_permit_small_holddown = cfg->permit_small_holddown; } else S_MEMSIZE("key-cache-size:", key_cache_size) else S_POW2("key-cache-slabs:", key_cache_slabs) else S_MEMSIZE("neg-cache-size:", neg_cache_size) @@ -705,6 +711,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_UNS(opt, "add-holddown", add_holddown) else O_UNS(opt, "del-holddown", del_holddown) else O_UNS(opt, "keep-missing", keep_missing) + else O_YNO(opt, "permit-small-holddown", permit_small_holddown) else O_MEM(opt, "key-cache-size", key_cache_size) else O_DEC(opt, "key-cache-slabs", key_cache_slabs) else O_MEM(opt, "neg-cache-size", neg_cache_size) @@ -1243,6 +1250,7 @@ config_apply(struct config_file* config) MINIMAL_RESPONSES = config->minimal_responses; RRSET_ROUNDROBIN = config->rrset_roundrobin; log_set_time_asc(config->log_time_ascii); + autr_permit_small_holddown = config->permit_small_holddown; } void config_lookup_uid(struct config_file* cfg) diff --git a/util/config_file.h b/util/config_file.h index 1c3c31dcf136..99b15e06ebcd 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -269,6 +269,8 @@ struct config_file { unsigned int del_holddown; /** autotrust keep_missing time, in seconds. 0 is forever. */ unsigned int keep_missing; + /** permit small holddown values, allowing 5011 rollover very fast */ + int permit_small_holddown; /** size of the key cache */ size_t key_cache_size; @@ -368,6 +370,8 @@ struct config_file { extern uid_t cfg_uid; /** from cfg username, after daemonise setup performed */ extern gid_t cfg_gid; +/** debug and enable small timeouts */ +extern int autr_permit_small_holddown; /** * Stub config options diff --git a/util/configlexer.c b/util/configlexer.c index e9fa947bf759..449ebd7bfeb5 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 174 -#define YY_END_OF_BUFFER 175 +#define YY_NUM_RULES 175 +#define YY_END_OF_BUFFER 176 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,198 +372,201 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1731] = +static yyconst flex_int16_t yy_accept[1752] = { 0, - 1, 1, 156, 156, 160, 160, 164, 164, 168, 168, - 1, 1, 175, 172, 1, 154, 154, 173, 2, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 173, 156, - 157, 157, 158, 173, 160, 161, 161, 162, 173, 167, - 164, 165, 165, 166, 173, 168, 169, 169, 170, 173, - 171, 155, 2, 159, 171, 173, 172, 0, 1, 2, - 2, 2, 2, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 156, 0, 160, 0, 167, 0, 164, - 168, 0, 171, 0, 2, 2, 171, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 171, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 171, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 70, 172, 172, 172, 172, 172, 6, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 171, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 171, 172, 172, 172, 172, 172, 30, - 172, 172, 172, 172, 172, 172, 172, 172, 135, 172, - 12, 13, 172, 15, 14, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 128, 172, 172, 172, 172, 172, 172, - 3, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 171, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 163, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 33, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 34, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 85, 163, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 84, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 68, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 20, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 31, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 32, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 22, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 148, 172, 172, - 172, 172, 172, 172, 26, 172, 27, 172, 172, 172, - 71, 172, 72, 172, 69, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 5, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 87, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 23, 172, 172, 172, 172, 172, 112, 111, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 35, 172, 172, 172, 172, 172, 172, 172, 172, 74, - 73, 172, 172, 172, 172, 172, 172, 172, 108, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 53, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 57, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 110, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 4, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 105, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 121, 172, 106, 172, 133, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 21, 172, 172, 172, - - 172, 76, 172, 77, 75, 172, 172, 172, 172, 172, - 172, 172, 83, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 107, 172, 172, 172, 172, 132, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 67, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 28, 172, 172, 17, 172, - 172, 172, 16, 172, 92, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 42, - 44, 172, 172, 172, 172, 172, 172, 172, 172, 136, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 78, 172, 172, 172, 172, 172, 172, - 82, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 86, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 127, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 96, 172, 100, 172, 172, 172, 172, 81, 172, - 172, 63, 172, 119, 172, 172, 172, 172, 134, 172, - 172, 172, 172, 172, 172, 172, 141, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 99, 172, - - 172, 172, 172, 172, 45, 46, 172, 29, 52, 101, - 172, 113, 109, 172, 172, 38, 172, 103, 172, 172, - 172, 172, 172, 7, 172, 66, 172, 172, 172, 150, - 172, 118, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 88, - 140, 172, 172, 172, 172, 172, 172, 172, 172, 129, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 102, 172, 37, 39, 172, 172, - 172, 172, 172, 65, 172, 172, 172, 149, 172, 172, - - 172, 172, 123, 18, 19, 172, 172, 172, 172, 172, - 172, 172, 62, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 125, 122, 172, 172, 172, 172, 172, - 172, 172, 172, 36, 172, 172, 172, 172, 172, 172, - 172, 11, 172, 172, 172, 172, 172, 172, 172, 172, - 10, 172, 172, 172, 153, 172, 40, 172, 131, 124, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 95, 94, 172, 172, 126, 120, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 47, 172, 130, 172, 172, - - 172, 172, 172, 172, 41, 172, 172, 172, 89, 91, - 114, 172, 172, 172, 93, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 137, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 24, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 139, 172, - 172, 117, 172, 172, 172, 172, 172, 172, 172, 50, - 172, 25, 172, 9, 172, 172, 172, 172, 115, 54, - 172, 172, 172, 98, 172, 172, 172, 172, 172, 172, - 172, 138, 79, 172, 172, 172, 172, 56, 60, 55, - - 172, 48, 172, 8, 172, 151, 172, 172, 97, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 61, - 59, 172, 49, 172, 172, 116, 172, 172, 90, 43, - 172, 172, 172, 172, 172, 172, 80, 58, 51, 152, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 64, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 104, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 144, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 142, 172, - 145, 146, 172, 172, 172, 172, 172, 143, 147, 0 + 1, 1, 157, 157, 161, 161, 165, 165, 169, 169, + 1, 1, 176, 173, 1, 155, 155, 174, 2, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 174, 157, + 158, 158, 159, 174, 161, 162, 162, 163, 174, 168, + 165, 166, 166, 167, 174, 169, 170, 170, 171, 174, + 172, 156, 2, 160, 172, 174, 173, 0, 1, 2, + 2, 2, 2, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 157, 0, 161, 0, 168, 0, + 165, 169, 0, 172, 0, 2, 2, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 172, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 172, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 70, 173, 173, 173, + 173, 173, 173, 6, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 172, 173, + 173, 173, 173, 173, 30, 173, 173, 173, 173, 173, + 173, 173, 173, 136, 173, 12, 13, 173, 15, 14, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 129, + 173, 173, 173, 173, 173, 173, 3, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 164, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 33, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 34, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 85, + 164, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 84, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 68, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 20, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 31, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 32, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 22, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 149, 173, 173, 173, + 173, 173, 173, 26, 173, 27, 173, 173, 173, 71, + 173, 72, 173, 69, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 5, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 87, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 23, + 173, 173, 173, 173, 173, 113, 112, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 35, 173, 173, 173, 173, 173, 173, 173, 173, 74, + 73, 173, 173, 173, 173, 173, 173, 173, 109, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 53, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 57, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 111, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 4, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 105, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 122, 173, 106, 173, 134, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 21, 173, 173, + 173, 173, 76, 173, 77, 75, 173, 173, 173, 173, + 173, 173, 173, 83, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 107, 173, 173, 173, 173, + 133, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 67, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 28, 173, 173, + 17, 173, 173, 173, 16, 173, 92, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 42, 44, 173, 173, 173, 173, 173, 173, 173, + + 173, 137, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 78, 173, 173, 173, 173, + 173, 173, 82, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 86, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 128, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 96, 173, 100, 173, 173, 173, + 173, 81, 173, 173, 63, 173, 120, 173, 173, 173, + 173, 135, 173, 173, 173, 173, 173, 173, 173, 142, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 99, 173, 173, 173, 173, 173, 45, 46, 173, + 29, 52, 101, 173, 114, 110, 173, 173, 38, 173, + 103, 173, 173, 173, 173, 173, 7, 173, 173, 66, + 173, 173, 173, 151, 173, 119, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 88, 141, 173, 173, 173, 173, 173, + 173, 173, 173, 130, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 102, 173, + + 37, 39, 173, 173, 173, 173, 173, 173, 65, 173, + 173, 173, 150, 173, 173, 173, 173, 124, 18, 19, + 173, 173, 173, 173, 173, 173, 173, 62, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 126, 123, + 173, 173, 173, 173, 173, 173, 173, 173, 36, 173, + 173, 173, 173, 173, 173, 173, 11, 173, 173, 173, + 173, 173, 173, 173, 173, 10, 173, 173, 173, 173, + 154, 173, 40, 173, 132, 125, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 95, 94, 173, + 173, 127, 121, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 47, 173, 131, 173, 173, 173, 173, 173, 173, + 173, 41, 173, 173, 173, 89, 91, 115, 173, 173, + 173, 93, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 138, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 24, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 140, 173, 173, 118, + 173, 173, 173, 173, 173, 173, 173, 50, 173, 25, + 173, 9, 173, 173, 173, 173, 173, 116, 54, 173, + + 173, 173, 98, 173, 173, 173, 173, 173, 173, 173, + 139, 79, 173, 173, 173, 173, 56, 60, 55, 173, + 48, 173, 8, 173, 173, 152, 173, 173, 97, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 61, + 59, 173, 49, 173, 108, 173, 117, 173, 173, 90, + 43, 173, 173, 173, 173, 173, 173, 80, 58, 51, + 153, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 64, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 104, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 145, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 143, + 173, 146, 147, 173, 173, 173, 173, 173, 144, 148, + 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -609,399 +612,403 @@ static yyconst flex_int32_t yy_meta[66] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1745] = +static yyconst flex_int16_t yy_base[1766] = { 0, 0, 0, 63, 66, 69, 71, 77, 83, 88, 91, - 129, 135, 378, 309, 95, 5006, 5006, 5006, 107, 110, + 129, 135, 393, 348, 95, 5065, 5065, 5065, 107, 110, 142, 180, 108, 50, 145, 172, 118, 148, 121, 181, - 197, 166, 217, 233, 252, 236, 164, 269, 116, 298, - 5006, 5006, 5006, 94, 295, 5006, 5006, 5006, 96, 249, - 265, 5006, 5006, 5006, 238, 216, 5006, 5006, 5006, 102, - 214, 5006, 290, 5006, 259, 257, 209, 312, 111, 0, - 316, 0, 0, 265, 170, 283, 310, 296, 301, 306, - 302, 297, 308, 325, 317, 312, 330, 333, 345, 329, - 336, 361, 250, 343, 368, 376, 347, 341, 365, 377, - - 372, 380, 388, 370, 382, 398, 413, 399, 403, 408, - 409, 410, 414, 260, 415, 437, 426, 436, 412, 445, - 450, 449, 439, 193, 159, 177, 169, 141, 298, 165, - 122, 174, 115, 488, 497, 0, 464, 470, 262, 471, - 485, 477, 484, 480, 505, 498, 435, 509, 553, 513, - 491, 511, 492, 517, 523, 508, 519, 539, 541, 526, - 544, 543, 549, 556, 568, 579, 581, 578, 561, 583, - 588, 601, 602, 592, 597, 584, 607, 594, 609, 618, - 610, 612, 622, 611, 628, 626, 615, 639, 644, 652, - 637, 645, 660, 662, 667, 663, 658, 650, 668, 671, - - 681, 679, 678, 673, 694, 674, 701, 709, 213, 711, - 713, 700, 707, 720, 715, 708, 728, 718, 724, 743, - 734, 733, 736, 735, 744, 763, 740, 761, 750, 760, - 770, 766, 762, 759, 773, 777, 781, 790, 808, 778, - 804, 795, 799, 809, 813, 819, 822, 801, 820, 828, - 831, 833, 825, 851, 847, 846, 855, 870, 858, 850, - 849, 857, 873, 876, 888, 928, 878, 877, 880, 889, - 894, 890, 922, 896, 905, 897, 911, 937, 907, 934, - 945, 935, 954, 967, 936, 952, 957, 962, 958, 978, - 970, 963, 971, 983, 986, 995, 987, 1005, 1000, 998, - - 1007, 1011, 1004, 1020, 1015, 1003, 1019, 1025, 1032, 1038, - 1035, 1029, 1044, 5006, 1048, 1033, 1053, 1059, 1046, 5006, - 1062, 1063, 1043, 1060, 1073, 1066, 1095, 1076, 1070, 1077, - 1075, 1084, 1102, 1096, 1089, 1139, 1097, 1111, 1132, 1130, - 1116, 1114, 1121, 1148, 1135, 1141, 1143, 1142, 1129, 1166, - 1170, 1162, 1168, 1180, 1190, 1175, 1173, 1186, 1188, 1194, - 1189, 1192, 1200, 1197, 1202, 1206, 1238, 1223, 1220, 1235, - 1213, 1237, 1241, 1246, 1224, 1239, 1249, 1247, 1250, 1243, - 1240, 1259, 1251, 1255, 1276, 1289, 1267, 1277, 1262, 1283, - 1294, 1296, 1293, 1286, 1302, 1312, 1318, 1305, 1308, 1306, - - 1334, 1326, 1320, 1329, 1335, 1339, 1341, 1348, 1347, 1354, - 1350, 1373, 1382, 1361, 1352, 1370, 1362, 1365, 1366, 1374, - 1392, 1375, 1389, 1387, 1393, 1399, 1398, 1412, 1402, 1411, - 1410, 1414, 1409, 1421, 1420, 1419, 1436, 1440, 1447, 1432, - 1446, 1449, 1442, 1455, 1459, 1461, 1454, 1489, 1457, 5006, - 1468, 1474, 1479, 1476, 1488, 1481, 1482, 1530, 5006, 1485, - 5006, 5006, 1487, 5006, 5006, 1501, 1505, 1493, 1517, 1579, - 1514, 1518, 1523, 1526, 1533, 1540, 1550, 1528, 1557, 1562, - 1563, 1569, 1567, 1574, 1592, 1601, 1584, 1585, 1577, 1605, - 1534, 1544, 1613, 1611, 1614, 1615, 1618, 1626, 1627, 1621, - - 1625, 1639, 1628, 5006, 1637, 1648, 1642, 1658, 1650, 1668, - 5006, 1641, 1667, 1649, 1660, 1666, 1664, 1673, 1677, 1678, - 1683, 1692, 1676, 1706, 1693, 1700, 1720, 1722, 1717, 1705, - 1718, 1726, 1715, 1733, 1729, 1732, 1719, 1725, 1747, 1746, - 1750, 1754, 1740, 1764, 1751, 1745, 1757, 1756, 1801, 1782, - 1760, 1763, 1765, 1784, 1791, 1794, 1796, 1799, 1815, 1819, - 1811, 1813, 1829, 1839, 1823, 1847, 1842, 1831, 1850, 1856, - 1858, 1857, 1852, 1851, 1869, 1867, 1872, 5006, 1875, 1887, - 1874, 1884, 1899, 1879, 1889, 1900, 1891, 1902, 1892, 1894, - 1913, 1917, 5006, 1911, 1915, 1926, 1918, 1938, 1942, 1919, - - 1950, 1952, 5006, 1956, 1957, 1959, 1944, 1939, 1953, 1960, - 1955, 1967, 1970, 1986, 1977, 1989, 1996, 1997, 1980, 2002, - 1983, 1990, 1988, 1999, 2013, 2016, 2019, 2011, 2020, 2015, - 2034, 2038, 2029, 2049, 2032, 2036, 2040, 120, 2035, 2046, - 2041, 2045, 5006, 76, 2061, 2042, 2054, 2087, 2089, 2081, - 2085, 2077, 2078, 2088, 2079, 2076, 2083, 2080, 2096, 2082, - 2105, 2104, 2127, 2125, 2122, 2119, 2131, 2117, 2132, 2137, - 2120, 2138, 2121, 2146, 2136, 2156, 2159, 2168, 2164, 2160, - 2157, 2162, 2182, 2166, 2165, 2187, 5006, 2186, 2183, 2191, - 2184, 2189, 2229, 2200, 2216, 2207, 2213, 2232, 2234, 2225, - - 2228, 2236, 2239, 2240, 2224, 2223, 2243, 2246, 2249, 2265, - 2268, 2247, 5006, 2267, 2263, 2261, 2287, 2266, 2270, 2283, - 2285, 2290, 2275, 2301, 2288, 2319, 5006, 2317, 2316, 2304, - 2322, 2305, 2324, 2328, 2329, 2314, 2331, 2330, 2332, 2339, - 2327, 2347, 2335, 5006, 2343, 2372, 2366, 2377, 2367, 2356, - 2368, 2378, 2361, 2359, 2388, 2387, 2365, 2384, 2373, 2389, - 2393, 2394, 2404, 2405, 2402, 2421, 5006, 2439, 2415, 2428, - 2431, 2416, 2442, 2423, 2434, 2437, 2441, 2444, 2454, 2447, - 2450, 2469, 2457, 2460, 2464, 2461, 2480, 2463, 2488, 2491, - 2494, 2483, 2502, 2489, 2506, 2487, 2514, 2517, 2521, 2522, - - 5006, 2524, 2509, 2525, 2518, 2515, 2547, 2537, 2536, 2539, - 2541, 2543, 2550, 2544, 2546, 2553, 2557, 2559, 2561, 2560, - 2564, 2568, 2585, 2589, 2584, 2591, 2607, 5006, 2594, 2598, - 2596, 2606, 2595, 2608, 5006, 2611, 5006, 2625, 2618, 2635, - 5006, 2632, 5006, 2639, 5006, 2640, 2646, 2633, 2624, 2636, - 2653, 2654, 2644, 2641, 2663, 2656, 2668, 2680, 2667, 2660, - 5006, 2671, 2683, 2681, 2688, 2692, 2694, 2690, 2698, 2700, - 2696, 2676, 2710, 2704, 2708, 2732, 2727, 5006, 2716, 2735, - 2726, 2724, 2752, 2746, 2729, 2739, 2742, 2725, 2761, 2772, - 2775, 2760, 2762, 2763, 2779, 2790, 2769, 2788, 2780, 2789, - - 2777, 2798, 2803, 2786, 2797, 2799, 2802, 2808, 2811, 2813, - 5006, 2827, 2822, 2826, 2835, 2825, 5006, 5006, 2842, 2840, - 2846, 2849, 2839, 2853, 2870, 2854, 2850, 2856, 2864, 2873, - 2867, 2874, 2862, 2875, 2894, 2880, 2898, 2904, 2915, 2890, - 5006, 2902, 2910, 2914, 2912, 2906, 2920, 2921, 2935, 5006, - 5006, 2932, 2923, 2925, 2930, 2960, 2942, 2946, 5006, 2948, - 2962, 2967, 2969, 2973, 2970, 2954, 2965, 2982, 2976, 2981, - 2971, 2999, 2993, 3006, 3001, 2996, 3010, 3018, 3019, 3021, - 5006, 3015, 3025, 3017, 3026, 3023, 3035, 3039, 3050, 3048, - 3040, 3046, 3036, 3038, 3051, 3049, 3044, 3069, 3059, 3080, - - 3083, 3081, 3093, 3087, 5006, 3096, 3076, 3097, 3073, 3101, - 3103, 3106, 3122, 3091, 3095, 3099, 3102, 3118, 3105, 3121, - 3126, 3117, 5006, 3131, 3150, 3142, 3144, 3143, 3129, 3158, - 3146, 3149, 5006, 3170, 3164, 3160, 3174, 3183, 3184, 3179, - 3173, 3178, 3191, 3177, 3186, 3197, 3199, 3200, 3208, 3203, - 3220, 3228, 3221, 3231, 3213, 3224, 3246, 3233, 3249, 3247, - 3226, 3242, 3248, 3245, 3258, 3251, 3241, 3271, 3255, 3274, - 3268, 5006, 3283, 3287, 3291, 3292, 3276, 3293, 3289, 3300, - 3302, 5006, 3303, 5006, 3285, 5006, 3305, 3309, 3314, 3313, - 3310, 3312, 3321, 3337, 3275, 3329, 5006, 3345, 3332, 3338, - - 3344, 5006, 3351, 5006, 5006, 3339, 3348, 3349, 3365, 3359, - 3361, 3367, 5006, 3372, 3371, 3384, 3374, 3375, 3381, 3388, - 3392, 3380, 3394, 3397, 5006, 3398, 3411, 3408, 3407, 5006, - 3415, 3405, 3410, 3423, 3431, 3434, 3440, 3430, 3427, 3450, - 3444, 5006, 3432, 3438, 3462, 3453, 3461, 3473, 3459, 3480, - 3458, 3475, 3488, 3474, 3486, 5006, 3489, 3491, 5006, 3479, - 3485, 3477, 5006, 3497, 5006, 3516, 3511, 3502, 3519, 3531, - 3524, 3534, 3517, 3535, 3532, 3529, 3540, 3544, 3521, 5006, - 5006, 3545, 3538, 3550, 3556, 3558, 3555, 3571, 3575, 5006, - 3553, 3581, 3564, 3574, 3583, 3572, 3577, 3592, 3591, 3579, - - 3602, 3585, 3604, 5006, 3601, 3603, 3606, 3605, 3628, 3614, - 5006, 3609, 3634, 3629, 3630, 3632, 3638, 3643, 3646, 3636, - 3647, 3648, 3658, 3641, 3677, 3678, 3661, 5006, 3674, 3681, - 3663, 3683, 3666, 3685, 3686, 3698, 3692, 3675, 3695, 5006, - 3673, 3688, 3693, 3717, 3708, 3728, 3705, 3732, 3720, 3722, - 3735, 3711, 3724, 3718, 3738, 3742, 3741, 3744, 3758, 3746, - 3748, 5006, 3754, 5006, 3767, 3777, 3786, 3782, 5006, 3773, - 3780, 5006, 3775, 5006, 3790, 3792, 3801, 3795, 5006, 3796, - 3784, 3805, 3800, 3815, 3807, 3830, 5006, 3832, 3834, 3808, - 3833, 3820, 3827, 3839, 3824, 3845, 3849, 3846, 5006, 3853, - - 3857, 3859, 3866, 3873, 5006, 5006, 3877, 5006, 5006, 5006, - 3881, 5006, 5006, 3880, 3882, 5006, 3883, 5006, 3891, 3887, - 3876, 3868, 3889, 5006, 3897, 5006, 3895, 3893, 3898, 5006, - 3899, 5006, 3901, 3921, 3915, 3922, 3930, 3931, 3932, 3924, - 3916, 3925, 3933, 3935, 3939, 3926, 3941, 3956, 3943, 3955, - 3954, 3952, 3963, 3960, 3958, 3979, 3981, 3988, 3989, 5006, - 5006, 3971, 3982, 3990, 3994, 3992, 4002, 4005, 3998, 5006, - 3993, 4015, 4003, 4016, 4017, 4018, 4030, 4021, 4033, 4038, - 4029, 4037, 4034, 4039, 5006, 4049, 5006, 5006, 4050, 4051, - 4055, 4056, 4057, 5006, 4065, 4072, 4074, 5006, 4085, 4081, - - 4088, 4089, 5006, 5006, 5006, 4090, 4082, 4084, 4098, 4101, - 4086, 4099, 5006, 4095, 4114, 4116, 4108, 4124, 4129, 4140, - 4133, 4139, 4142, 5006, 5006, 4144, 4141, 4147, 4146, 4134, - 4150, 4148, 4151, 5006, 4154, 4165, 4173, 4161, 4178, 4188, - 4182, 5006, 4174, 4175, 4177, 4194, 4190, 4198, 4200, 4201, - 5006, 4202, 4217, 4192, 5006, 4223, 5006, 4212, 5006, 5006, - 4216, 4231, 4234, 4240, 4241, 4242, 4227, 4233, 4235, 4246, - 4244, 5006, 5006, 4243, 4256, 5006, 5006, 4260, 4261, 4262, - 4259, 4267, 4255, 4265, 4282, 4272, 4294, 4296, 4269, 4293, - 4283, 4274, 4304, 4299, 4308, 5006, 4311, 5006, 4315, 4302, - - 4312, 4323, 4321, 4327, 5006, 4335, 4325, 4320, 5006, 5006, - 5006, 4346, 4348, 4347, 5006, 4352, 4358, 4350, 4359, 4360, - 4363, 4362, 4341, 4369, 5006, 4372, 4373, 4382, 4394, 4386, - 4385, 4383, 4396, 4400, 4390, 4403, 4387, 4411, 4414, 5006, - 4420, 4415, 4423, 4412, 4418, 4434, 4436, 4425, 4437, 4428, - 4454, 4445, 4438, 4451, 4441, 4463, 4452, 4466, 5006, 4473, - 4455, 5006, 4472, 4475, 4481, 4480, 4488, 4491, 4487, 5006, - 4494, 5006, 4497, 5006, 4495, 4496, 4503, 4501, 5006, 5006, - 4502, 4509, 4507, 5006, 4515, 4499, 4513, 4519, 4526, 4524, - 4522, 5006, 5006, 4521, 4550, 4552, 4551, 5006, 5006, 5006, - - 4556, 5006, 4553, 5006, 4546, 5006, 4559, 4548, 5006, 4547, - 4561, 4564, 4542, 4566, 4568, 4571, 4580, 4577, 4597, 5006, - 5006, 4599, 5006, 4600, 4601, 5006, 4590, 4604, 5006, 5006, - 4610, 4595, 4606, 4594, 4607, 4603, 5006, 5006, 5006, 5006, - 4614, 4615, 4626, 4624, 4629, 4628, 4623, 4634, 4654, 4650, - 4652, 4653, 4638, 4645, 4668, 4655, 5006, 4673, 4664, 4671, - 4672, 4675, 4665, 4674, 4680, 4684, 4691, 4695, 4687, 4692, - 4707, 4690, 4722, 4720, 4721, 4724, 4713, 4717, 4727, 4730, - 4719, 4736, 4745, 4739, 4747, 5006, 4756, 4743, 4748, 4763, - 4741, 4766, 4754, 4777, 4779, 4781, 4784, 4782, 4792, 4788, - - 4789, 4783, 4794, 4793, 5006, 4809, 4819, 4798, 4808, 4829, - 4813, 4815, 4836, 4831, 4826, 4838, 4843, 4840, 5006, 4844, - 5006, 5006, 4845, 4854, 4856, 4852, 4855, 5006, 5006, 5006, - 4914, 4921, 4928, 4935, 4942, 82, 4949, 4956, 4963, 4970, - 4977, 4984, 4991, 4998 + 197, 166, 241, 225, 260, 233, 164, 257, 116, 343, + 5065, 5065, 5065, 94, 331, 5065, 5065, 5065, 96, 329, + 301, 5065, 5065, 5065, 249, 263, 5065, 5065, 5065, 102, + 254, 5065, 304, 5065, 206, 279, 221, 308, 111, 0, + 319, 0, 0, 201, 170, 268, 302, 237, 296, 301, + 298, 227, 303, 308, 306, 297, 309, 323, 330, 333, + 312, 349, 346, 332, 358, 359, 340, 357, 368, 367, + + 375, 370, 379, 360, 382, 399, 387, 407, 391, 393, + 395, 402, 404, 406, 425, 429, 427, 418, 426, 437, + 444, 452, 435, 443, 210, 159, 205, 169, 141, 488, + 165, 122, 174, 115, 497, 503, 0, 208, 472, 464, + 482, 478, 481, 487, 490, 505, 507, 476, 508, 552, + 514, 492, 513, 493, 517, 520, 509, 536, 542, 504, + 548, 567, 538, 543, 550, 563, 586, 571, 580, 575, + 578, 598, 601, 605, 597, 593, 602, 590, 609, 599, + 614, 607, 623, 620, 639, 624, 634, 631, 635, 616, + 647, 660, 645, 651, 656, 674, 672, 667, 673, 670, + + 668, 679, 683, 681, 678, 680, 694, 684, 701, 713, + 439, 716, 721, 707, 703, 724, 728, 726, 730, 719, + 736, 734, 742, 738, 729, 746, 755, 751, 753, 766, + 754, 763, 780, 774, 776, 769, 778, 779, 795, 797, + 815, 449, 807, 803, 804, 802, 812, 825, 827, 839, + 826, 816, 829, 830, 831, 855, 858, 848, 853, 856, + 837, 866, 852, 850, 876, 867, 883, 890, 930, 880, + 900, 893, 892, 897, 896, 888, 898, 908, 925, 935, + 910, 927, 937, 934, 952, 948, 785, 936, 954, 966, + 971, 963, 980, 969, 972, 979, 991, 989, 998, 995, + + 962, 997, 1006, 1007, 1012, 992, 1019, 1027, 1015, 1029, + 1014, 1039, 1044, 1035, 1028, 1047, 5065, 1050, 1031, 1053, + 1055, 1063, 1057, 5065, 1065, 1066, 1046, 1072, 1084, 1087, + 1098, 1079, 1078, 1080, 1099, 1094, 1110, 1102, 1104, 1150, + 1112, 1117, 1138, 1137, 1121, 1119, 1127, 1134, 1142, 1159, + 1148, 1153, 1160, 1168, 1165, 1162, 1179, 1184, 1195, 1185, + 1178, 1189, 1199, 1204, 1198, 1201, 1211, 1203, 1216, 1217, + 1239, 1229, 1220, 1227, 1221, 1232, 1249, 1254, 1230, 1247, + 1257, 1259, 1258, 1248, 1244, 1269, 1263, 1256, 1290, 1272, + 1274, 1280, 1276, 1278, 1279, 1300, 1303, 1297, 1306, 1296, + + 1301, 1319, 1316, 1315, 1329, 1331, 1323, 1320, 1348, 1346, + 1349, 1350, 1364, 1344, 1358, 1353, 1363, 1369, 1365, 1368, + 1370, 1356, 1380, 1383, 1384, 1382, 1379, 1385, 1399, 1401, + 1407, 1403, 1418, 1420, 1394, 1428, 1421, 1423, 1425, 1429, + 1430, 1432, 1448, 1449, 1440, 1434, 1461, 1457, 1467, 1474, + 1469, 1462, 1478, 1481, 5065, 1482, 1488, 1491, 1468, 1485, + 1484, 1496, 1544, 5065, 1501, 5065, 5065, 1507, 5065, 5065, + 1518, 1519, 1528, 1495, 1593, 1530, 1513, 1512, 1538, 1533, + 1540, 1560, 1554, 1571, 1574, 1581, 1583, 1562, 1587, 1599, + 1590, 1588, 1598, 1614, 1623, 1511, 1546, 1625, 1629, 1632, + + 1634, 1618, 1626, 1630, 1641, 1644, 1639, 1548, 1646, 5065, + 1645, 1648, 1656, 1675, 1662, 1679, 5065, 1659, 1683, 1664, + 1673, 1672, 1678, 1686, 1692, 1700, 1689, 1702, 1687, 1720, + 1704, 1716, 1652, 1736, 1729, 1715, 1725, 1735, 1723, 1738, + 1745, 1743, 1731, 1741, 1752, 1755, 1759, 1769, 1762, 1770, + 1761, 1760, 1764, 1763, 1809, 1788, 1779, 1797, 1801, 1808, + 1815, 1817, 1796, 1811, 1845, 1827, 1834, 1841, 1837, 1840, + 1807, 1868, 1843, 1858, 1852, 1853, 1870, 1878, 1873, 1872, + 1885, 1884, 1887, 5065, 1892, 1899, 1888, 1893, 1911, 1890, + 1908, 1913, 1918, 1920, 1903, 1914, 1930, 1931, 5065, 1927, + + 1926, 1933, 1951, 1954, 1957, 1952, 1941, 1936, 1963, 5065, + 1974, 1981, 1964, 1945, 1972, 1973, 1977, 1975, 1990, 1992, + 1999, 1994, 2000, 1998, 2002, 2012, 2013, 2017, 2009, 2014, + 2018, 2037, 2041, 2029, 2045, 2038, 2039, 2054, 2056, 2044, + 2053, 2058, 2065, 2055, 120, 2066, 2061, 2068, 2064, 5065, + 76, 2076, 2081, 2078, 2103, 2104, 2097, 2105, 2093, 2095, + 2108, 2100, 2099, 2106, 2119, 2101, 2123, 2133, 2124, 2142, + 2147, 2146, 2135, 2151, 2137, 2148, 2156, 2140, 2158, 2168, + 2173, 2180, 2176, 2178, 2165, 2182, 2179, 2175, 2183, 2202, + 2197, 2195, 2204, 5065, 2221, 2205, 2203, 2206, 2222, 2241, + + 2217, 2233, 2230, 2238, 2249, 2250, 2253, 2254, 2255, 2257, + 2262, 2261, 2246, 2273, 2276, 2274, 2283, 2281, 2291, 2285, + 5065, 2294, 2289, 2293, 2309, 2301, 2308, 2305, 2316, 2319, + 2314, 2307, 2318, 2329, 5065, 2341, 2342, 2331, 2348, 2332, + 2349, 2346, 2353, 2335, 2356, 2357, 2358, 2366, 2354, 2364, + 2379, 5065, 2391, 2393, 2390, 2400, 2389, 2382, 2392, 2402, + 2384, 2385, 2409, 2412, 2387, 2411, 2397, 2420, 2413, 2416, + 2419, 2439, 2422, 2446, 5065, 2456, 2448, 2447, 2452, 2449, + 2462, 2461, 2458, 2467, 2471, 2473, 2472, 2475, 2460, 2499, + 2483, 2487, 2481, 2490, 2494, 2492, 2507, 2508, 2518, 2498, + + 2520, 2522, 2521, 2519, 2526, 2545, 2548, 2550, 5065, 2552, + 2539, 2554, 2541, 2542, 2574, 2560, 2544, 2546, 2567, 2564, + 2570, 2584, 2577, 2579, 2580, 2581, 2575, 2588, 2590, 2594, + 2601, 2607, 2610, 2606, 2615, 2629, 5065, 2618, 2630, 2639, + 2643, 2632, 2622, 5065, 2636, 5065, 2645, 2659, 2657, 5065, + 2655, 5065, 2661, 5065, 2664, 2668, 2658, 2651, 2666, 2678, + 2674, 2690, 2672, 2696, 2682, 2687, 2702, 2693, 2703, 5065, + 2695, 2701, 2710, 2716, 2707, 2724, 2709, 2726, 2730, 2736, + 2751, 2729, 2754, 2738, 2755, 2756, 5065, 2734, 2759, 2757, + 2747, 2774, 2768, 2761, 2763, 2770, 2773, 2788, 2807, 2804, + + 2790, 2787, 2789, 2815, 2814, 2799, 2816, 2811, 2818, 2810, + 2819, 2824, 2813, 2840, 2843, 2833, 2837, 2838, 2832, 5065, + 2863, 2846, 2855, 2860, 2859, 5065, 5065, 2874, 2873, 2886, + 2865, 2884, 2878, 2895, 2885, 2882, 2898, 2890, 2901, 2888, + 2902, 2911, 2905, 2908, 2918, 2920, 2922, 2941, 2939, 2934, + 5065, 2943, 2937, 2944, 2953, 2938, 2964, 2949, 2978, 5065, + 5065, 2965, 2961, 2966, 2971, 2976, 2979, 2986, 5065, 2982, + 2992, 2989, 3005, 3007, 2988, 3003, 3013, 3018, 3006, 3029, + 3015, 3023, 3019, 3045, 3031, 3030, 3046, 3044, 3056, 3049, + 5065, 3042, 3060, 3054, 3062, 3055, 3065, 3053, 3069, 3075, + + 3078, 3073, 3085, 3094, 3082, 3080, 3086, 3108, 3090, 3114, + 3116, 3115, 3122, 3117, 5065, 3126, 3105, 3131, 3104, 3128, + 3133, 3140, 3150, 3118, 3132, 3146, 3143, 3127, 3151, 3145, + 3167, 3154, 5065, 3173, 3176, 3165, 3178, 3177, 3161, 3196, + 3184, 3190, 5065, 3194, 3212, 3195, 3209, 3222, 3202, 3214, + 3211, 3205, 3218, 3224, 3213, 3208, 3243, 3233, 3236, 3235, + 3247, 3256, 3259, 3257, 3264, 3245, 3262, 3260, 3267, 3285, + 3282, 3270, 3278, 3283, 3286, 3284, 3287, 3277, 3305, 3294, + 3310, 3295, 5065, 3315, 3319, 3308, 3324, 3311, 3321, 3323, + 3330, 3332, 5065, 3334, 5065, 3337, 5065, 3340, 3333, 3342, + + 3344, 3338, 3351, 3368, 3369, 3348, 3359, 5065, 3376, 3363, + 3375, 3378, 5065, 3382, 5065, 5065, 3379, 3371, 3395, 3390, + 3391, 3408, 3393, 5065, 3406, 3396, 3423, 3417, 3404, 3415, + 3418, 3420, 3414, 3419, 3428, 5065, 3431, 3447, 3442, 3452, + 5065, 3450, 3438, 3441, 3457, 3468, 3466, 3473, 3454, 3463, + 3477, 3475, 3474, 5065, 3484, 3492, 3485, 3481, 3493, 3490, + 3509, 3516, 3510, 3512, 3523, 3517, 3515, 5065, 3529, 3530, + 5065, 3519, 3511, 3539, 5065, 3541, 5065, 3554, 3548, 3540, + 3561, 3564, 3562, 3569, 3553, 3573, 3574, 3580, 3576, 3575, + 3558, 5065, 5065, 3584, 3585, 3586, 3607, 3597, 3596, 3590, + + 3615, 5065, 3591, 3620, 3603, 3604, 3622, 3610, 3613, 3632, + 3634, 3618, 3639, 3624, 3643, 5065, 3640, 3645, 3649, 3637, + 3661, 3653, 5065, 3648, 3654, 3665, 3672, 3666, 3681, 3683, + 3687, 3684, 3691, 3694, 3698, 3685, 3702, 3703, 3688, 5065, + 3711, 3717, 3700, 3720, 3705, 3722, 3730, 3725, 3735, 3721, + 3718, 3739, 5065, 3731, 3744, 3738, 3740, 3751, 3756, 3746, + 3760, 3765, 3763, 3771, 3752, 3767, 3764, 3779, 3778, 3773, + 3786, 3794, 3800, 3806, 5065, 3796, 5065, 3805, 3817, 3819, + 3825, 5065, 3809, 3820, 5065, 3827, 5065, 3828, 3833, 3822, + 3830, 5065, 3840, 3836, 3847, 3852, 3845, 3843, 3867, 5065, + + 3869, 3875, 3871, 3876, 3860, 3870, 3879, 3865, 3877, 3892, + 3887, 5065, 3874, 3894, 3917, 3907, 3914, 5065, 5065, 3921, + 5065, 5065, 5065, 3918, 5065, 5065, 3919, 3923, 5065, 3925, + 5065, 3931, 3927, 3913, 3908, 3932, 5065, 3926, 3933, 5065, + 3935, 3943, 3948, 5065, 3939, 5065, 3942, 3965, 3954, 3966, + 3972, 3973, 3976, 3970, 3959, 3975, 3979, 3984, 3978, 3981, + 3980, 4003, 3989, 3993, 4004, 3995, 4007, 4006, 4005, 4020, + 4030, 4026, 4029, 5065, 5065, 4016, 4023, 4033, 4018, 4040, + 4039, 4043, 4057, 5065, 4037, 4060, 4064, 4062, 4054, 4056, + 4063, 4073, 4075, 4082, 4076, 4078, 4088, 4090, 5065, 4089, + + 5065, 5065, 4091, 4109, 4095, 4098, 4096, 4120, 5065, 4122, + 4127, 4115, 5065, 4129, 4125, 4130, 4131, 5065, 5065, 5065, + 4132, 4121, 4136, 4141, 4156, 4147, 4142, 5065, 4149, 4157, + 4160, 4152, 4175, 4178, 4184, 4176, 4182, 4185, 5065, 5065, + 4190, 4191, 4192, 4187, 4183, 4193, 4194, 4188, 5065, 4203, + 4186, 4216, 4223, 4225, 4235, 4228, 5065, 4219, 4220, 4222, + 4239, 4233, 4244, 4243, 4248, 5065, 4245, 4260, 4270, 4261, + 5065, 4256, 5065, 4258, 5065, 5065, 4259, 4281, 4286, 4277, + 4290, 4291, 4275, 4278, 4298, 4295, 4303, 5065, 5065, 4304, + 4300, 5065, 5065, 4294, 4309, 4297, 4306, 4318, 4323, 4316, + + 4320, 4321, 4343, 4345, 4333, 4324, 4334, 4331, 4355, 4348, + 4358, 5065, 4360, 5065, 4347, 4352, 4362, 4371, 4373, 4356, + 4377, 5065, 4385, 4387, 4376, 5065, 5065, 5065, 4392, 4405, + 4393, 5065, 4403, 4400, 4390, 4395, 4413, 4407, 4415, 4414, + 4423, 5065, 4419, 4429, 4431, 4443, 4440, 4432, 4434, 4446, + 4450, 4436, 4451, 4441, 4457, 4459, 5065, 4469, 4452, 4465, + 4482, 4471, 4468, 4493, 4494, 4478, 4489, 4480, 4502, 4491, + 4484, 4508, 4487, 4512, 4505, 4519, 5065, 4525, 4507, 5065, + 4531, 4524, 4532, 4541, 4542, 4543, 4539, 5065, 4545, 5065, + 4546, 5065, 4548, 4540, 4551, 4555, 4552, 5065, 5065, 4553, + + 4556, 4571, 5065, 4572, 4573, 4568, 4574, 4575, 4570, 4584, + 5065, 5065, 4587, 4594, 4596, 4601, 5065, 5065, 5065, 4606, + 5065, 4604, 5065, 4609, 4610, 5065, 4615, 4611, 5065, 4612, + 4622, 4625, 4602, 4628, 4619, 4636, 4639, 4629, 4645, 5065, + 5065, 4647, 5065, 4650, 5065, 4658, 5065, 4649, 4659, 5065, + 5065, 4663, 4651, 4657, 4654, 4664, 4653, 5065, 5065, 5065, + 5065, 4675, 4674, 4670, 4676, 4680, 4677, 4686, 4690, 4699, + 4703, 4709, 4710, 4691, 4704, 4727, 4720, 5065, 4713, 4725, + 4731, 4733, 4721, 4732, 4730, 4736, 4737, 4738, 4740, 4747, + 4763, 4764, 4754, 4774, 4765, 4777, 4779, 4767, 4783, 4785, + + 4780, 4789, 4796, 4792, 4798, 4805, 5065, 4794, 4801, 4803, + 4811, 4826, 4828, 4810, 4830, 4835, 4834, 4841, 4840, 4843, + 4845, 4857, 4846, 4866, 4850, 5065, 4873, 4875, 4855, 4862, + 4882, 4868, 4884, 4889, 4885, 4892, 4888, 4894, 4897, 5065, + 4901, 5065, 5065, 4908, 4910, 4915, 4918, 4920, 5065, 5065, + 5065, 4973, 4980, 4987, 4994, 5001, 82, 5008, 5015, 5022, + 5029, 5036, 5043, 5050, 5057 } ; -static yyconst flex_int16_t yy_def[1745] = +static yyconst flex_int16_t yy_def[1766] = { 0, - 1730, 1, 1731, 1731, 1732, 1732, 1733, 1733, 1734, 1734, - 1735, 1735, 1730, 1736, 1730, 1730, 1730, 1730, 1737, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1738, - 1730, 1730, 1730, 1738, 1739, 1730, 1730, 1730, 1739, 1740, - 1730, 1730, 1730, 1730, 1740, 1741, 1730, 1730, 1730, 1741, - 1742, 1730, 1743, 1730, 1742, 1742, 1736, 1736, 1730, 1744, - 1737, 1744, 1737, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1738, 1738, 1739, 1739, 1740, 1740, 1730, - 1741, 1741, 1742, 1742, 1743, 1743, 1742, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1742, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1742, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1730, 1730, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1742, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1742, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, - 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - - 1736, 1730, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1730, 1736, - 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - - 1736, 1736, 1736, 1736, 1730, 1730, 1736, 1730, 1730, 1730, - 1736, 1730, 1730, 1736, 1736, 1730, 1736, 1730, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1730, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1730, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1730, 1736, 1736, - - 1736, 1736, 1730, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1730, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1730, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1730, 1736, 1736, 1730, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1730, 1736, 1736, - - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1730, 1730, - 1730, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1736, 1730, 1736, 1730, 1736, 1736, 1736, 1736, 1730, 1730, - 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1730, 1730, 1736, 1736, 1736, 1736, 1730, 1730, 1730, - - 1736, 1730, 1736, 1730, 1736, 1730, 1736, 1736, 1730, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, - 1730, 1736, 1730, 1736, 1736, 1730, 1736, 1736, 1730, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 1730, 1730, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - - 1736, 1736, 1736, 1736, 1730, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1730, 1736, - 1730, 1730, 1736, 1736, 1736, 1736, 1736, 1730, 1730, 0, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730 + 1751, 1, 1752, 1752, 1753, 1753, 1754, 1754, 1755, 1755, + 1756, 1756, 1751, 1757, 1751, 1751, 1751, 1751, 1758, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1759, + 1751, 1751, 1751, 1759, 1760, 1751, 1751, 1751, 1760, 1761, + 1751, 1751, 1751, 1751, 1761, 1762, 1751, 1751, 1751, 1762, + 1763, 1751, 1764, 1751, 1763, 1763, 1757, 1757, 1751, 1765, + 1758, 1765, 1758, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1759, 1759, 1760, 1760, 1761, 1761, + 1751, 1762, 1762, 1763, 1763, 1764, 1764, 1763, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1763, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1751, 1751, 1757, 1751, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1763, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1763, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1751, + 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1757, 1757, 1751, 1757, 1751, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1751, 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, + 1751, 1751, 1751, 1757, 1751, 1751, 1757, 1757, 1751, 1757, + 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1751, + 1757, 1757, 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + + 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1751, 1751, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1751, 1757, 1751, 1757, 1751, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, + 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1751, 1751, 1751, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1751, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1751, + 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1757, + + 1757, 1757, 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1751, 1751, 1757, 1757, 1757, 1757, 1751, 1751, 1751, 1757, + 1751, 1757, 1751, 1757, 1757, 1751, 1757, 1757, 1751, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1751, 1757, 1751, 1757, 1751, 1757, 1751, 1757, 1757, 1751, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1751, 1751, + 1751, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + + 1757, 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1751, 1757, 1757, 1757, 1757, + 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1751, + 1757, 1751, 1751, 1757, 1757, 1757, 1757, 1757, 1751, 1751, + 0, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751 } ; -static yyconst flex_int16_t yy_nxt[5072] = +static yyconst flex_int16_t yy_nxt[5131] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 14, 21, 22, 23, 24, 14, 25, @@ -1012,558 +1019,564 @@ static yyconst flex_int16_t yy_nxt[5072] = 38, 14, 14, 14, 14, 41, 42, 43, 41, 42, 43, 46, 47, 46, 47, 48, 87, 48, 51, 52, 53, 54, 67, 18, 51, 52, 53, 54, 68, 18, - 57, 58, 59, 57, 58, 59, 69, 124, 124, 126, + 57, 58, 59, 57, 58, 59, 69, 125, 125, 127, - 70, 44, 126, 87, 44, 131, 131, 49, 72, 49, - 72, 72, 69, 72, 134, 55, 70, 67, 72, 67, - 67, 55, 67, 85, 74, 75, 60, 67, 748, 60, + 70, 44, 127, 87, 44, 132, 132, 49, 72, 49, + 72, 72, 69, 72, 135, 55, 70, 67, 72, 67, + 67, 55, 67, 85, 74, 75, 60, 67, 756, 60, 15, 16, 17, 62, 63, 64, 15, 16, 17, 62, 63, 64, 76, 86, 94, 73, 68, 96, 68, 65, - 85, 74, 75, 134, 77, 65, 68, 88, 68, 68, - 132, 78, 124, 124, 95, 89, 130, 66, 79, 76, - 86, 94, 126, 66, 96, 126, 65, 131, 131, 129, - 68, 77, 65, 68, 88, 139, 68, 90, 78, 120, - 91, 95, 89, 97, 121, 79, 80, 92, 104, 93, + 85, 74, 75, 135, 77, 65, 68, 88, 68, 68, + 133, 78, 125, 125, 95, 89, 131, 66, 79, 76, + 86, 94, 127, 66, 96, 127, 65, 132, 132, 130, + 68, 77, 65, 68, 88, 140, 68, 90, 78, 121, + 91, 95, 89, 97, 122, 79, 80, 92, 104, 93, 81, 98, 68, 82, 68, 83, 84, 99, 68, 101, - 68, 100, 139, 102, 90, 127, 120, 91, 68, 68, - 97, 121, 281, 80, 92, 104, 93, 81, 98, 103, - 82, 125, 83, 84, 99, 68, 101, 105, 100, 128, - 102, 128, 128, 106, 128, 109, 107, 68, 117, 110, - 118, 68, 134, 108, 132, 68, 103, 161, 133, 111, - 133, 133, 112, 133, 105, 119, 130, 185, 113, 199, - 106, 68, 109, 107, 68, 117, 110, 118, 114, 138, - 108, 122, 115, 116, 137, 123, 111, 129, 68, 112, - 68, 72, 119, 72, 72, 113, 72, 134, 68, 128, - - 68, 128, 128, 68, 128, 114, 138, 68, 122, 115, - 116, 137, 123, 67, 140, 67, 67, 72, 67, 72, - 72, 68, 72, 67, 141, 143, 144, 72, 136, 145, - 147, 146, 149, 127, 68, 68, 125, 142, 148, 68, - 68, 140, 151, 152, 68, 156, 68, 68, 68, 150, - 68, 141, 143, 144, 73, 68, 145, 147, 146, 153, - 155, 157, 154, 68, 142, 148, 168, 68, 68, 151, - 152, 68, 156, 162, 68, 158, 150, 1730, 159, 68, - 169, 68, 167, 68, 163, 68, 153, 155, 157, 154, - 165, 1730, 160, 168, 166, 170, 171, 175, 172, 68, - - 162, 174, 158, 68, 164, 159, 68, 169, 68, 167, - 68, 163, 173, 1730, 68, 68, 1730, 165, 68, 160, - 68, 166, 170, 171, 175, 172, 68, 176, 174, 177, - 179, 164, 181, 178, 180, 182, 68, 68, 186, 173, - 183, 68, 208, 184, 191, 1730, 68, 68, 68, 187, - 68, 68, 68, 68, 176, 189, 177, 179, 192, 181, - 178, 180, 182, 190, 68, 186, 194, 183, 196, 188, - 184, 191, 195, 68, 68, 68, 187, 68, 197, 193, - 1730, 1730, 189, 68, 1730, 192, 198, 68, 68, 133, - 190, 133, 133, 194, 133, 196, 188, 200, 72, 195, - - 72, 72, 134, 72, 201, 197, 193, 202, 68, 68, - 203, 204, 205, 198, 207, 68, 1730, 206, 68, 209, - 1730, 217, 68, 68, 200, 216, 219, 218, 1730, 68, - 68, 201, 220, 222, 202, 136, 68, 203, 204, 221, - 210, 207, 227, 68, 206, 223, 68, 68, 217, 68, - 1730, 68, 216, 219, 218, 68, 228, 68, 1730, 220, - 222, 68, 224, 232, 68, 225, 221, 210, 211, 227, - 226, 1730, 223, 212, 230, 229, 231, 68, 213, 68, - 233, 68, 68, 228, 214, 215, 234, 68, 236, 224, - 239, 68, 225, 238, 68, 211, 235, 226, 237, 68, - - 212, 230, 229, 231, 240, 213, 68, 233, 241, 242, - 243, 214, 215, 1730, 244, 245, 68, 68, 1730, 68, - 238, 68, 68, 235, 246, 237, 68, 247, 248, 1730, - 68, 240, 68, 256, 249, 68, 250, 243, 252, 68, - 68, 244, 245, 251, 253, 68, 257, 68, 68, 68, - 68, 246, 258, 68, 247, 248, 68, 254, 255, 260, - 68, 249, 259, 250, 68, 252, 68, 261, 262, 264, - 251, 253, 263, 257, 266, 68, 267, 68, 272, 258, - 270, 269, 68, 68, 254, 255, 274, 271, 68, 259, - 68, 265, 1730, 268, 261, 262, 134, 273, 68, 263, - - 68, 68, 276, 267, 275, 68, 68, 270, 269, 68, - 278, 68, 68, 277, 271, 279, 68, 68, 265, 68, - 268, 280, 1730, 282, 273, 283, 1730, 284, 288, 276, - 287, 275, 68, 285, 286, 289, 291, 278, 68, 68, - 277, 293, 279, 290, 1730, 68, 68, 68, 280, 68, - 282, 68, 283, 68, 284, 288, 68, 287, 68, 292, - 285, 286, 68, 291, 294, 295, 68, 296, 297, 299, - 290, 68, 68, 68, 68, 298, 300, 303, 68, 301, - 304, 68, 68, 302, 1730, 305, 292, 306, 68, 314, - 307, 294, 295, 308, 296, 297, 299, 68, 68, 68, - - 68, 68, 298, 300, 68, 310, 301, 304, 68, 309, - 302, 68, 305, 311, 306, 68, 68, 307, 315, 68, - 308, 312, 313, 316, 320, 318, 317, 323, 68, 319, - 1730, 1730, 310, 68, 322, 321, 309, 68, 326, 68, - 311, 328, 68, 324, 1730, 315, 68, 68, 312, 313, - 316, 68, 318, 317, 323, 1730, 319, 68, 68, 325, - 68, 322, 321, 68, 327, 329, 68, 330, 328, 68, - 324, 68, 331, 332, 337, 335, 333, 336, 334, 1730, - 339, 1730, 338, 340, 68, 68, 325, 68, 68, 68, - 342, 327, 329, 68, 330, 68, 68, 353, 341, 331, - - 332, 337, 335, 333, 352, 334, 343, 339, 68, 338, - 340, 68, 354, 344, 68, 68, 68, 342, 134, 355, - 356, 357, 1730, 361, 353, 341, 68, 68, 68, 358, - 359, 352, 68, 343, 68, 68, 360, 362, 364, 354, - 344, 345, 346, 68, 363, 68, 355, 356, 357, 68, - 361, 347, 366, 348, 349, 350, 1730, 359, 351, 365, - 68, 1730, 367, 360, 362, 364, 68, 371, 345, 346, - 368, 375, 68, 68, 68, 68, 369, 370, 347, 372, - 348, 349, 350, 68, 373, 351, 365, 374, 378, 367, - 68, 379, 68, 376, 371, 68, 68, 368, 375, 377, - - 68, 68, 382, 381, 380, 68, 372, 384, 68, 68, - 383, 373, 385, 387, 374, 378, 68, 386, 379, 388, - 376, 68, 392, 1730, 68, 68, 377, 389, 390, 382, - 381, 380, 391, 68, 384, 393, 68, 383, 68, 394, - 387, 68, 68, 68, 386, 68, 388, 396, 395, 68, - 397, 398, 1730, 68, 389, 390, 400, 68, 68, 391, - 401, 399, 393, 68, 1730, 402, 394, 68, 408, 405, - 68, 68, 403, 68, 396, 395, 68, 397, 398, 404, - 409, 68, 68, 400, 68, 411, 68, 401, 399, 410, - 416, 68, 402, 406, 407, 408, 405, 68, 68, 403, - - 68, 68, 412, 414, 68, 413, 404, 409, 68, 415, - 417, 68, 411, 68, 68, 68, 410, 416, 418, 420, - 406, 407, 68, 419, 1730, 1730, 432, 68, 426, 1730, - 414, 1730, 413, 68, 68, 68, 415, 417, 427, 428, - 68, 1730, 1730, 1730, 430, 418, 420, 431, 429, 68, - 419, 421, 68, 432, 68, 426, 422, 433, 423, 68, - 434, 435, 439, 1730, 436, 427, 424, 68, 68, 437, - 68, 430, 438, 68, 431, 429, 425, 68, 421, 68, - 68, 68, 440, 422, 433, 423, 68, 434, 435, 439, - 441, 436, 442, 424, 443, 444, 437, 445, 446, 438, - - 68, 1730, 447, 425, 68, 450, 68, 449, 68, 440, - 448, 68, 451, 68, 453, 452, 455, 441, 134, 442, - 463, 443, 444, 454, 68, 446, 68, 68, 68, 447, - 68, 461, 68, 456, 449, 68, 457, 448, 68, 451, - 68, 453, 452, 455, 68, 458, 462, 460, 464, 459, - 454, 68, 465, 466, 470, 468, 467, 1730, 68, 472, - 456, 68, 68, 457, 469, 471, 474, 475, 1730, 483, - 1730, 473, 1730, 68, 460, 68, 68, 68, 68, 68, - 476, 68, 468, 467, 68, 68, 472, 68, 68, 68, - 477, 469, 471, 68, 475, 478, 481, 68, 473, 479, - - 68, 480, 482, 484, 1730, 68, 1730, 476, 485, 488, - 489, 486, 493, 1730, 68, 68, 1730, 477, 490, 1730, - 495, 68, 478, 481, 68, 494, 479, 68, 480, 482, - 484, 68, 68, 487, 68, 485, 488, 489, 486, 491, - 68, 492, 497, 68, 68, 490, 68, 495, 496, 498, - 68, 500, 494, 501, 499, 503, 68, 502, 68, 504, - 487, 506, 1730, 1730, 68, 1730, 491, 68, 492, 497, - 507, 505, 68, 68, 512, 496, 498, 68, 500, 68, - 501, 499, 513, 514, 502, 68, 68, 508, 68, 510, - 68, 515, 68, 511, 516, 520, 517, 507, 505, 68, - - 68, 512, 509, 68, 68, 518, 524, 519, 68, 513, - 514, 68, 68, 68, 508, 521, 522, 527, 515, 523, - 68, 516, 520, 517, 526, 68, 529, 68, 525, 509, - 68, 68, 518, 528, 519, 534, 68, 68, 533, 531, - 68, 530, 521, 522, 527, 532, 523, 68, 68, 68, - 68, 526, 68, 529, 535, 525, 536, 68, 68, 68, - 528, 538, 534, 537, 539, 533, 531, 541, 530, 540, - 68, 542, 532, 543, 68, 549, 544, 548, 68, 1730, - 68, 535, 1730, 536, 68, 68, 545, 68, 538, 550, - 537, 539, 68, 134, 541, 68, 540, 68, 542, 68, - - 543, 546, 551, 544, 548, 552, 68, 553, 565, 547, - 554, 561, 68, 545, 68, 562, 550, 68, 555, 68, - 68, 563, 564, 68, 566, 68, 68, 68, 546, 551, - 574, 68, 552, 1730, 553, 565, 547, 554, 561, 68, - 577, 594, 562, 68, 578, 555, 556, 575, 563, 564, - 557, 595, 68, 558, 581, 68, 68, 574, 579, 576, - 559, 68, 580, 560, 68, 1730, 68, 577, 68, 582, - 1730, 68, 68, 556, 575, 1730, 583, 557, 68, 584, - 558, 581, 68, 1730, 1730, 579, 576, 559, 68, 580, - 560, 567, 568, 592, 569, 68, 582, 570, 586, 585, - - 68, 68, 571, 583, 587, 68, 584, 68, 572, 573, - 590, 588, 68, 589, 591, 68, 593, 68, 567, 568, - 592, 569, 68, 68, 570, 586, 585, 596, 597, 571, - 68, 587, 603, 598, 599, 572, 573, 590, 588, 68, - 589, 591, 601, 68, 604, 602, 605, 600, 1730, 68, - 1730, 68, 68, 68, 596, 597, 68, 607, 606, 68, - 598, 599, 608, 68, 68, 68, 68, 609, 1730, 601, - 610, 604, 602, 614, 600, 68, 611, 68, 1730, 68, - 68, 616, 612, 615, 607, 606, 68, 68, 68, 608, - 613, 617, 621, 620, 609, 619, 68, 610, 68, 618, - - 614, 625, 68, 611, 68, 68, 68, 622, 616, 612, - 615, 68, 624, 623, 68, 68, 68, 613, 617, 621, - 620, 68, 619, 626, 627, 628, 618, 629, 625, 630, - 68, 68, 631, 1730, 622, 632, 637, 1730, 68, 624, - 623, 633, 634, 68, 68, 636, 638, 635, 639, 640, - 626, 627, 628, 68, 641, 68, 68, 68, 68, 631, - 68, 643, 632, 68, 68, 644, 645, 68, 633, 634, - 68, 68, 636, 638, 635, 639, 640, 642, 68, 646, - 648, 647, 649, 68, 68, 68, 658, 650, 68, 68, - 1730, 660, 134, 645, 68, 68, 1730, 657, 68, 659, - - 661, 68, 68, 68, 642, 1730, 646, 648, 647, 649, - 1730, 664, 1730, 658, 650, 651, 662, 652, 660, 663, - 68, 653, 68, 654, 657, 665, 659, 661, 655, 68, - 673, 666, 68, 656, 68, 668, 669, 68, 664, 68, - 1730, 667, 651, 662, 652, 670, 663, 679, 653, 68, - 654, 68, 665, 68, 671, 655, 672, 68, 666, 674, - 656, 68, 668, 669, 675, 678, 676, 68, 667, 68, - 682, 684, 670, 683, 679, 680, 685, 68, 687, 681, - 68, 671, 689, 672, 677, 68, 674, 688, 68, 68, - 68, 675, 678, 676, 68, 68, 68, 682, 684, 686, - - 683, 690, 680, 685, 691, 68, 681, 68, 692, 694, - 68, 677, 68, 68, 688, 693, 695, 68, 698, 700, - 696, 697, 68, 699, 702, 68, 686, 68, 690, 68, - 68, 691, 68, 701, 706, 692, 694, 68, 68, 709, - 68, 703, 693, 695, 704, 698, 700, 696, 697, 68, - 699, 68, 705, 68, 707, 68, 68, 68, 708, 711, - 701, 706, 710, 712, 68, 718, 709, 713, 703, 714, - 1730, 704, 715, 716, 720, 717, 68, 68, 1730, 705, - 68, 707, 68, 722, 719, 708, 723, 721, 68, 710, - 68, 68, 718, 68, 68, 68, 714, 68, 68, 715, - - 716, 720, 717, 724, 725, 68, 726, 727, 68, 729, - 722, 719, 731, 723, 721, 68, 730, 728, 68, 733, - 732, 68, 1730, 734, 68, 738, 68, 68, 68, 735, - 724, 725, 736, 726, 68, 68, 729, 68, 740, 731, - 68, 741, 739, 730, 728, 742, 733, 732, 737, 68, - 734, 68, 738, 68, 68, 743, 735, 68, 68, 736, - 744, 746, 745, 747, 749, 740, 750, 68, 754, 739, - 68, 751, 68, 68, 68, 737, 68, 1730, 68, 68, - 68, 752, 743, 68, 68, 755, 753, 68, 746, 745, - 747, 749, 68, 750, 756, 754, 757, 758, 751, 68, - - 1730, 759, 760, 761, 762, 763, 764, 767, 752, 765, - 766, 768, 755, 753, 68, 68, 68, 68, 68, 68, - 68, 68, 769, 68, 758, 68, 68, 68, 759, 760, - 761, 762, 763, 764, 68, 770, 765, 766, 768, 771, - 773, 772, 68, 68, 774, 775, 776, 1730, 1730, 769, - 779, 781, 777, 778, 780, 68, 783, 68, 68, 68, - 68, 782, 770, 68, 1730, 68, 771, 773, 772, 68, - 68, 774, 775, 776, 68, 68, 68, 779, 781, 777, - 778, 780, 784, 783, 68, 785, 786, 787, 782, 789, - 788, 790, 792, 795, 68, 68, 793, 68, 68, 791, - - 68, 1730, 68, 68, 68, 799, 68, 794, 796, 784, - 797, 1730, 785, 786, 787, 798, 789, 788, 790, 792, - 68, 68, 68, 793, 68, 68, 791, 68, 803, 68, - 802, 804, 799, 805, 794, 796, 800, 797, 68, 806, - 801, 808, 798, 1730, 809, 68, 807, 1730, 810, 813, - 815, 68, 814, 816, 68, 803, 812, 802, 804, 811, - 805, 68, 68, 68, 1730, 817, 68, 68, 808, 823, - 68, 809, 68, 807, 68, 810, 813, 68, 68, 814, - 818, 68, 824, 812, 68, 68, 811, 68, 819, 825, - 826, 829, 817, 820, 827, 821, 823, 822, 828, 68, - - 830, 68, 831, 68, 68, 68, 68, 818, 68, 824, - 832, 834, 835, 68, 836, 819, 825, 826, 829, 833, - 820, 68, 821, 68, 822, 68, 68, 830, 68, 831, - 837, 838, 839, 841, 840, 843, 842, 832, 834, 68, - 845, 836, 68, 68, 844, 846, 833, 847, 849, 848, - 854, 850, 68, 853, 68, 68, 851, 68, 838, 839, - 68, 840, 68, 842, 852, 68, 68, 68, 68, 68, - 68, 844, 846, 68, 847, 849, 848, 68, 850, 855, - 853, 68, 856, 851, 857, 68, 859, 858, 1730, 861, - 860, 852, 862, 863, 68, 864, 867, 68, 1730, 68, - - 1730, 870, 869, 68, 68, 68, 68, 868, 1730, 856, - 68, 68, 865, 859, 858, 68, 68, 860, 866, 862, - 863, 874, 68, 867, 871, 68, 68, 68, 870, 869, - 872, 68, 68, 873, 868, 879, 875, 876, 884, 865, - 68, 882, 68, 68, 881, 866, 877, 880, 874, 883, - 878, 871, 1730, 68, 68, 1730, 885, 872, 1730, 68, - 873, 68, 879, 875, 876, 884, 68, 886, 882, 68, - 889, 881, 68, 888, 880, 68, 890, 68, 887, 68, - 68, 891, 68, 885, 892, 68, 893, 896, 68, 895, - 894, 1730, 68, 898, 886, 68, 1730, 889, 68, 68, - - 888, 68, 68, 890, 899, 887, 897, 68, 891, 900, - 901, 892, 902, 893, 896, 904, 895, 894, 68, 906, - 898, 68, 903, 905, 908, 68, 68, 68, 909, 68, - 907, 899, 68, 897, 910, 911, 900, 901, 912, 902, - 68, 913, 904, 914, 68, 915, 906, 68, 918, 903, - 905, 924, 68, 68, 916, 68, 68, 907, 917, 68, - 68, 910, 68, 68, 1730, 912, 919, 923, 913, 920, - 914, 1730, 915, 922, 68, 68, 925, 68, 921, 68, - 932, 68, 68, 926, 68, 68, 929, 927, 68, 928, - 931, 68, 930, 919, 923, 68, 920, 68, 68, 68, - - 922, 933, 68, 925, 934, 921, 68, 932, 935, 941, - 926, 936, 942, 929, 927, 945, 928, 931, 1730, 930, - 937, 943, 68, 68, 938, 940, 944, 68, 933, 68, - 948, 934, 68, 68, 68, 935, 68, 939, 936, 942, - 946, 947, 949, 950, 68, 68, 68, 937, 943, 68, - 951, 938, 940, 944, 952, 959, 68, 948, 953, 954, - 955, 956, 68, 68, 939, 1730, 1730, 946, 947, 957, - 68, 68, 960, 68, 68, 961, 966, 68, 68, 68, - 958, 952, 68, 977, 68, 953, 954, 955, 956, 962, - 963, 68, 68, 969, 68, 964, 957, 965, 68, 960, - - 967, 68, 961, 966, 970, 68, 68, 958, 968, 68, - 973, 979, 976, 975, 68, 1730, 962, 963, 68, 68, - 969, 68, 964, 971, 965, 972, 68, 967, 68, 974, - 68, 970, 68, 980, 68, 968, 68, 973, 68, 976, - 975, 978, 68, 981, 982, 991, 68, 984, 68, 985, - 971, 983, 972, 990, 68, 986, 974, 1730, 993, 992, - 980, 994, 68, 68, 68, 68, 987, 68, 978, 988, - 68, 982, 991, 68, 984, 995, 985, 68, 983, 996, - 68, 989, 986, 1730, 68, 993, 992, 997, 994, 998, - 68, 1005, 999, 987, 1000, 1001, 988, 1002, 68, 68, - - 68, 68, 995, 1003, 1004, 1006, 1007, 68, 989, 1013, - 68, 1010, 1730, 68, 997, 68, 998, 68, 68, 999, - 1011, 1000, 1001, 1012, 68, 1730, 68, 68, 68, 1008, - 1003, 1004, 1006, 1007, 1009, 68, 68, 68, 1010, 1014, - 68, 68, 1015, 1017, 1019, 1016, 68, 1011, 1018, 68, - 1012, 68, 1022, 1023, 1024, 1020, 1008, 1032, 1021, 1027, - 68, 1009, 1025, 68, 68, 68, 1014, 1033, 1730, 1015, - 1017, 1019, 1016, 68, 1031, 1018, 1026, 68, 68, 1022, - 68, 1024, 1020, 1028, 68, 1021, 1027, 68, 68, 1025, - 1029, 68, 68, 1030, 68, 1034, 1036, 1035, 1038, 1037, - - 68, 1031, 68, 1026, 1039, 68, 1040, 1041, 68, 1048, - 1028, 68, 68, 68, 1042, 1730, 1043, 1029, 68, 1047, - 1030, 1050, 1034, 1036, 1035, 1038, 1037, 1053, 68, 1051, - 1044, 1039, 68, 1040, 1041, 1045, 68, 1052, 1046, 1049, - 68, 1042, 68, 1043, 68, 1054, 1047, 1058, 68, 1055, - 68, 1057, 68, 68, 1059, 1056, 1051, 1044, 68, 68, - 1060, 68, 1045, 68, 1052, 1046, 1049, 1061, 68, 1062, - 68, 1730, 1054, 68, 1058, 1063, 1055, 1065, 1057, 1064, - 68, 1059, 1056, 1066, 68, 1067, 68, 1060, 1070, 1068, - 1069, 1071, 68, 1072, 1075, 1730, 1062, 1730, 68, 1074, - - 68, 1073, 1063, 68, 1065, 68, 1064, 68, 68, 68, - 1066, 68, 1067, 1078, 68, 1070, 1068, 1069, 1071, 68, - 68, 1075, 1076, 1077, 1079, 1080, 1074, 1081, 1073, 1082, - 1730, 68, 1084, 1083, 68, 1085, 1086, 68, 1730, 68, - 1087, 1730, 1088, 1089, 68, 1098, 1730, 1097, 68, 1076, - 1077, 1079, 1080, 68, 1081, 68, 68, 68, 1090, 68, - 1083, 68, 1085, 68, 68, 1091, 1092, 1087, 1093, 1088, - 1089, 1095, 1096, 68, 68, 1101, 68, 68, 68, 1100, - 1102, 1094, 68, 1099, 68, 1090, 68, 68, 68, 68, - 1103, 1104, 1091, 1092, 1105, 1093, 1106, 68, 1095, 1096, - - 1107, 1108, 1101, 1109, 1111, 1110, 1100, 68, 1094, 1112, - 1099, 68, 1113, 1115, 68, 1114, 1125, 1103, 68, 68, - 1730, 68, 1120, 1106, 1730, 68, 1121, 1123, 1108, 68, - 1122, 68, 1110, 68, 68, 68, 1112, 68, 1127, 68, - 68, 68, 1114, 68, 68, 1116, 1117, 1118, 1128, 1120, - 1124, 1129, 1119, 1121, 1123, 68, 68, 1122, 1126, 68, - 68, 1130, 1132, 1133, 68, 1127, 1134, 68, 1131, 68, - 1135, 1139, 1116, 1117, 1118, 1128, 1137, 1124, 1129, 1119, - 68, 68, 68, 1136, 68, 1126, 1138, 68, 68, 1132, - 1133, 1140, 1141, 1134, 1142, 1131, 68, 1135, 68, 1144, - - 1143, 1146, 68, 1137, 1145, 1147, 1148, 1730, 68, 1150, - 1136, 68, 68, 1138, 1730, 68, 68, 68, 1140, 1141, - 1154, 68, 68, 1149, 68, 1151, 1144, 1143, 1146, 68, - 1152, 1145, 1147, 1148, 1153, 68, 1150, 68, 68, 1156, - 1155, 68, 1159, 1157, 1163, 1160, 68, 1154, 1158, 1161, - 1149, 68, 1151, 1162, 1166, 1169, 1164, 1152, 68, 68, - 1165, 1153, 68, 1167, 68, 1168, 68, 1155, 1170, 68, - 1157, 68, 1160, 1171, 1172, 1158, 1161, 1173, 1174, 68, - 68, 1176, 1197, 68, 68, 68, 68, 68, 1175, 68, - 1167, 1177, 1168, 68, 1730, 1170, 68, 1178, 1730, 1179, - - 1171, 1172, 1180, 1181, 1173, 1184, 68, 1182, 1188, 68, - 1183, 1730, 68, 68, 68, 1175, 1730, 1185, 1177, 1187, - 1190, 68, 1186, 68, 1178, 68, 1179, 68, 1189, 68, - 68, 68, 1184, 1192, 1182, 1188, 1195, 1183, 68, 1193, - 68, 68, 1194, 68, 1185, 1191, 1187, 68, 68, 1186, - 68, 68, 68, 1196, 1198, 1189, 1207, 1199, 1202, 68, - 1192, 1201, 1204, 1195, 1203, 1205, 1193, 68, 1200, 1194, - 68, 1209, 1191, 1206, 1210, 68, 68, 68, 1211, 1730, - 1196, 1198, 68, 68, 1199, 1202, 68, 68, 1201, 68, - 1212, 1203, 1205, 1208, 1215, 1200, 1214, 68, 1209, 68, - - 1206, 1210, 1213, 68, 1217, 68, 1220, 1216, 1730, 68, - 68, 1218, 68, 68, 1223, 1219, 1228, 1212, 68, 68, - 1208, 1215, 68, 1214, 1224, 1221, 68, 1226, 1222, 1213, - 68, 1217, 68, 1220, 1216, 68, 68, 1225, 1218, 1230, - 1227, 1223, 1219, 68, 1231, 68, 68, 1229, 68, 68, - 1232, 1224, 1221, 68, 1226, 1222, 1233, 1236, 1235, 1234, - 1237, 68, 1238, 1239, 1225, 68, 1230, 1227, 68, 68, - 68, 1231, 68, 1240, 1229, 1244, 68, 1232, 68, 1241, - 1243, 1246, 68, 1233, 1730, 1235, 1234, 1237, 68, 1238, - 1239, 68, 1242, 1245, 1250, 1247, 68, 68, 1248, 68, - - 68, 1249, 1244, 1254, 1256, 1252, 1241, 1253, 1246, 1251, - 1730, 68, 68, 68, 1257, 68, 1255, 68, 68, 1242, - 1245, 1250, 1247, 68, 68, 1248, 68, 68, 1249, 68, - 1254, 1256, 1252, 1258, 1253, 68, 1251, 1259, 1260, 1261, - 68, 1257, 1262, 1255, 1263, 1264, 1730, 1265, 1267, 68, - 1266, 1269, 1271, 1268, 68, 68, 1272, 68, 1273, 68, - 1258, 1274, 68, 1270, 1259, 1260, 1261, 68, 1275, 68, - 68, 1263, 68, 68, 1265, 1267, 68, 1266, 68, 1271, - 1268, 1276, 68, 68, 1277, 1273, 1279, 1278, 68, 1280, - 1270, 68, 1730, 68, 68, 1275, 68, 1281, 1282, 1284, - - 1283, 1285, 68, 1287, 1286, 1289, 1288, 1730, 1276, 68, - 68, 1277, 68, 68, 1278, 68, 1280, 68, 1290, 68, - 1299, 68, 1291, 68, 1281, 1282, 1284, 1283, 1285, 68, - 68, 1286, 1289, 1288, 1292, 1293, 1295, 1296, 1294, 68, - 68, 68, 68, 68, 68, 1290, 1298, 68, 1300, 1291, - 1304, 1297, 68, 1301, 1305, 1302, 1303, 1306, 1308, 1309, - 1307, 1292, 1293, 1295, 1296, 1294, 68, 68, 68, 1310, - 68, 1311, 68, 1298, 68, 1300, 68, 1304, 1297, 68, - 1301, 68, 1302, 1303, 68, 68, 68, 1307, 1312, 1313, - 1315, 1314, 1316, 1317, 1318, 1319, 68, 1730, 1311, 68, - - 1321, 68, 1320, 1324, 68, 1325, 1326, 1327, 1329, 1730, - 1322, 68, 68, 68, 1328, 68, 68, 1315, 1314, 68, - 1317, 68, 1319, 68, 68, 1323, 68, 1321, 1330, 1320, - 68, 68, 1325, 68, 1327, 1329, 68, 1322, 1331, 1332, - 1335, 1328, 1333, 68, 1334, 1336, 68, 1338, 1339, 68, - 1340, 1337, 1323, 1346, 1341, 68, 68, 1730, 68, 1730, - 68, 1343, 68, 1347, 1344, 1331, 68, 1335, 1342, 1333, - 68, 1334, 1336, 68, 1338, 1339, 68, 1340, 1337, 68, - 68, 1341, 68, 1345, 68, 1348, 68, 1349, 1343, 1350, - 1347, 1344, 68, 1351, 1352, 1342, 68, 1730, 1356, 1354, - - 1355, 1730, 1353, 1730, 1357, 68, 1360, 1361, 1358, 1362, - 1345, 68, 1348, 68, 1349, 68, 1350, 1363, 68, 1370, - 68, 1352, 68, 1364, 68, 1356, 1354, 1355, 68, 1353, - 68, 1357, 1359, 68, 68, 1358, 1362, 1366, 68, 68, - 1365, 1730, 1367, 68, 1363, 68, 68, 1368, 1369, 1371, - 1364, 1372, 1373, 68, 1374, 1375, 1377, 1730, 68, 1359, - 1730, 1376, 68, 1378, 1366, 68, 1381, 1365, 68, 1367, - 68, 68, 68, 1380, 1368, 1369, 1371, 68, 1372, 1373, - 1379, 1374, 1375, 68, 68, 1382, 1383, 68, 1376, 1384, - 1378, 68, 1385, 1387, 1388, 68, 1386, 68, 1389, 1390, - - 1380, 1392, 1395, 1391, 68, 1393, 68, 1379, 1394, 1730, - 1398, 68, 1382, 1383, 68, 68, 1384, 1399, 68, 68, - 68, 68, 1396, 1386, 1397, 68, 1390, 68, 1392, 68, - 1391, 68, 1393, 68, 1400, 68, 68, 68, 1402, 68, - 1401, 1403, 1404, 1405, 1399, 1407, 1730, 1406, 1408, 1396, - 1730, 1397, 1413, 68, 68, 1411, 1409, 1412, 1410, 68, - 68, 1400, 68, 68, 68, 1402, 1730, 1401, 68, 68, - 68, 68, 1407, 68, 1406, 1408, 1414, 68, 1417, 68, - 1415, 68, 1411, 1409, 1412, 1410, 1416, 1418, 1419, 1420, - 68, 1421, 68, 68, 68, 1422, 68, 1423, 68, 1424, - - 1425, 68, 1426, 1414, 1434, 1417, 1730, 1415, 1730, 68, - 1433, 1427, 1430, 1416, 1418, 1419, 1420, 68, 1421, 68, - 68, 1436, 1422, 1428, 1423, 1429, 68, 68, 68, 1426, - 68, 68, 68, 1431, 1432, 1435, 68, 1433, 1427, 1430, - 68, 68, 1437, 68, 1442, 1443, 1438, 1439, 1436, 1730, - 1428, 1441, 1429, 68, 68, 68, 68, 1440, 1444, 68, - 1431, 1432, 1435, 1445, 1446, 1450, 1451, 68, 68, 1437, - 1447, 68, 68, 1438, 1439, 68, 68, 68, 1441, 1448, - 1454, 1449, 1452, 1455, 1440, 1444, 1453, 68, 68, 68, - 1445, 1446, 1450, 68, 68, 68, 1457, 1447, 1456, 1459, - - 1460, 1730, 1461, 68, 1463, 1730, 1448, 1454, 1449, 1452, - 68, 1458, 68, 1453, 1464, 1462, 1466, 1465, 1467, 68, - 68, 1468, 68, 68, 68, 1456, 68, 68, 68, 1461, - 1469, 1463, 1470, 68, 1471, 1472, 68, 68, 1458, 68, - 1473, 1464, 1462, 1466, 1465, 1467, 68, 1474, 1468, 1475, - 1476, 1478, 68, 1477, 68, 1730, 1479, 1469, 1730, 1470, - 1482, 1471, 68, 1480, 1484, 1730, 1481, 68, 1486, 1483, - 1730, 68, 68, 1730, 1485, 1730, 1475, 68, 68, 68, - 68, 1489, 68, 1479, 68, 68, 68, 1482, 68, 68, - 1480, 1484, 68, 1481, 1487, 1486, 1483, 1488, 1490, 68, - - 1491, 1485, 1492, 68, 1493, 1496, 1494, 1495, 1489, 1498, - 1497, 68, 68, 68, 1730, 68, 68, 1500, 1503, 1499, - 68, 1487, 1501, 1505, 1488, 1490, 68, 1491, 68, 1492, - 68, 1493, 68, 1494, 1495, 1504, 68, 1497, 68, 68, - 68, 1502, 1514, 1507, 1500, 1503, 1499, 1506, 1508, 1501, - 68, 1509, 1510, 1511, 68, 68, 1512, 1515, 1513, 1516, - 1517, 68, 1504, 1518, 1730, 68, 1525, 1730, 1502, 68, - 1507, 68, 68, 68, 1506, 1508, 1730, 1521, 68, 68, - 68, 68, 68, 1512, 68, 1513, 1516, 1517, 1519, 1520, - 1523, 1522, 1524, 68, 68, 1526, 1531, 68, 68, 68, - - 68, 1527, 1528, 68, 1521, 68, 1529, 68, 1530, 1532, - 68, 1534, 68, 1540, 1533, 1519, 1520, 1523, 1522, 1524, - 68, 68, 1526, 1531, 1535, 1538, 1730, 1541, 1527, 1528, - 1536, 68, 68, 1529, 68, 1530, 1532, 68, 1534, 1537, - 68, 1533, 68, 1542, 1539, 1543, 68, 1544, 1546, 68, - 68, 1535, 1538, 68, 1541, 1545, 1547, 1536, 68, 68, - 1549, 68, 1548, 68, 1730, 68, 1537, 1550, 1551, 1557, - 1542, 1539, 1543, 68, 1544, 1546, 1555, 1558, 1552, 68, - 1559, 1553, 1545, 1547, 68, 68, 68, 1549, 68, 1548, - 68, 1554, 1556, 1562, 1550, 1551, 68, 68, 68, 1561, - - 68, 68, 1560, 1555, 1558, 1552, 1564, 68, 1553, 1563, - 68, 68, 1565, 1566, 1570, 1567, 1568, 1571, 1554, 1556, - 68, 68, 1572, 68, 68, 68, 1561, 1569, 68, 1560, - 1573, 1574, 68, 1564, 68, 1576, 1563, 1577, 68, 1565, - 1566, 68, 1567, 1568, 1571, 1579, 1575, 1580, 1730, 68, - 68, 1578, 68, 68, 1569, 1581, 68, 1573, 68, 1583, - 1582, 68, 1576, 68, 1577, 1584, 68, 1587, 1585, 1586, - 1589, 1588, 68, 1575, 68, 68, 68, 1592, 1578, 68, - 1590, 1591, 1581, 68, 1593, 1594, 1583, 1582, 1595, 68, - 68, 1598, 68, 68, 1587, 1585, 1586, 1597, 1588, 1599, - - 1596, 68, 1600, 1601, 68, 1602, 1604, 1590, 1591, 1603, - 68, 68, 1594, 68, 1606, 1595, 1605, 1607, 68, 68, - 1609, 1608, 1612, 1610, 1597, 68, 68, 1596, 1730, 68, - 1601, 1611, 68, 68, 68, 68, 1603, 68, 1618, 68, - 68, 68, 1613, 1605, 1607, 68, 1614, 68, 1608, 1612, - 1610, 68, 1619, 68, 1615, 1616, 1617, 68, 1611, 68, - 68, 1620, 68, 1621, 68, 1618, 1622, 1623, 1624, 1613, - 1626, 1625, 1629, 1614, 1627, 1630, 1628, 1730, 1631, 1619, - 68, 1615, 1616, 1617, 68, 68, 68, 1634, 68, 68, - 68, 68, 1632, 1622, 68, 1624, 1635, 68, 1625, 68, - - 1633, 1627, 68, 1628, 68, 1631, 68, 1636, 1637, 68, - 1638, 1639, 1640, 1641, 1634, 68, 1642, 1643, 68, 1632, - 1644, 1730, 1645, 1635, 1646, 1730, 1730, 1633, 68, 1649, - 1648, 1730, 68, 68, 1636, 68, 1647, 68, 68, 68, - 1641, 68, 68, 1642, 68, 68, 1650, 1644, 68, 1645, - 1651, 1646, 68, 68, 1652, 1654, 1649, 1648, 1653, 1655, - 1656, 68, 68, 1647, 68, 1657, 68, 68, 1659, 1660, - 1658, 1662, 68, 1650, 1661, 1663, 68, 1651, 1667, 1668, - 1664, 1652, 1654, 68, 1730, 1653, 1655, 1656, 68, 1670, - 68, 68, 68, 68, 1666, 1659, 1660, 1658, 1662, 1665, - - 1669, 1661, 68, 68, 1671, 1672, 68, 1664, 1677, 68, - 68, 68, 68, 68, 1673, 1674, 1670, 1676, 68, 1675, - 1679, 1666, 68, 1678, 1685, 68, 1665, 1669, 68, 68, - 68, 1671, 1672, 68, 1680, 1677, 1681, 1682, 1686, 1730, - 1683, 1673, 1674, 1684, 1676, 68, 1675, 1679, 1687, 1688, - 1678, 68, 1690, 1697, 1730, 68, 1730, 68, 68, 68, - 68, 1680, 68, 1681, 1682, 68, 1689, 1683, 68, 1691, - 1684, 1692, 1693, 1694, 68, 1687, 1688, 68, 1695, 68, - 1697, 68, 1698, 68, 1699, 68, 68, 1696, 1730, 1700, - 1730, 1701, 68, 1689, 68, 1730, 1691, 1702, 1692, 1693, - - 1694, 68, 1703, 1705, 68, 1695, 1706, 1707, 1730, 1698, - 1709, 1699, 1704, 1708, 1696, 68, 1700, 68, 1701, 68, - 68, 68, 68, 1710, 1702, 1711, 68, 68, 1713, 1703, - 68, 68, 68, 1706, 1707, 1712, 68, 1709, 1714, 1704, - 1708, 1715, 1719, 1716, 1720, 1717, 68, 68, 1718, 1721, - 1710, 68, 1711, 68, 1722, 1713, 1730, 68, 1723, 1730, - 1724, 1725, 1712, 1728, 68, 1714, 1729, 68, 1715, 68, - 1716, 1720, 1717, 1730, 68, 1718, 68, 1730, 68, 1730, - 1730, 68, 68, 68, 1726, 1723, 1727, 1724, 1725, 1730, - 68, 1730, 68, 68, 68, 1730, 1730, 1730, 1730, 1730, - - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1726, 1730, 1727, 40, 40, 40, 40, 40, 40, - 40, 45, 45, 45, 45, 45, 45, 45, 50, 50, - 50, 50, 50, 50, 50, 56, 56, 56, 56, 56, - 56, 56, 61, 61, 61, 61, 61, 61, 61, 71, - 71, 1730, 71, 71, 71, 71, 124, 124, 1730, 1730, - 1730, 124, 124, 126, 126, 1730, 1730, 126, 1730, 126, - 128, 1730, 1730, 1730, 1730, 1730, 128, 131, 131, 1730, - 1730, 1730, 131, 131, 133, 1730, 1730, 1730, 1730, 1730, - 133, 135, 135, 1730, 135, 135, 135, 135, 72, 72, - - 1730, 72, 72, 72, 72, 13, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730 + 68, 100, 140, 102, 90, 139, 121, 91, 68, 68, + 97, 122, 199, 80, 92, 104, 93, 81, 98, 103, + 82, 138, 83, 84, 99, 68, 101, 110, 100, 68, + 102, 111, 139, 128, 135, 118, 135, 119, 126, 199, + 129, 112, 129, 129, 113, 129, 103, 105, 138, 68, + 148, 106, 120, 68, 110, 68, 144, 107, 111, 123, + 108, 68, 118, 124, 119, 68, 114, 109, 112, 68, + 134, 113, 134, 134, 105, 134, 115, 148, 106, 120, + 116, 117, 135, 144, 107, 68, 123, 108, 68, 141, + + 124, 133, 131, 114, 109, 72, 68, 72, 72, 67, + 72, 67, 67, 115, 67, 150, 142, 116, 117, 67, + 72, 145, 72, 72, 146, 72, 141, 147, 153, 143, + 72, 152, 151, 149, 68, 68, 68, 158, 154, 68, + 68, 68, 137, 142, 68, 156, 68, 68, 145, 157, + 68, 146, 155, 162, 147, 153, 143, 73, 152, 151, + 149, 68, 163, 159, 158, 154, 160, 130, 68, 128, + 68, 68, 156, 166, 164, 168, 157, 167, 68, 155, + 161, 126, 169, 170, 68, 171, 68, 68, 173, 163, + 159, 175, 1751, 160, 165, 68, 68, 68, 68, 172, + + 166, 164, 168, 174, 167, 68, 68, 161, 68, 169, + 170, 176, 171, 68, 177, 173, 178, 68, 175, 183, + 68, 165, 181, 179, 182, 68, 172, 180, 184, 68, + 174, 68, 187, 68, 185, 186, 1751, 68, 176, 189, + 68, 177, 68, 178, 68, 68, 183, 191, 284, 181, + 179, 182, 188, 192, 180, 184, 68, 194, 197, 190, + 317, 185, 186, 68, 68, 68, 189, 68, 196, 193, + 1751, 201, 198, 68, 191, 68, 1751, 68, 195, 188, + 192, 68, 68, 210, 194, 197, 190, 68, 200, 129, + 68, 129, 129, 1751, 129, 196, 193, 203, 134, 198, + + 134, 134, 68, 134, 72, 195, 72, 72, 202, 72, + 68, 204, 207, 205, 68, 200, 68, 208, 211, 68, + 68, 206, 219, 209, 203, 68, 218, 221, 68, 220, + 68, 68, 222, 228, 224, 202, 223, 1751, 204, 212, + 205, 137, 68, 68, 208, 68, 68, 68, 206, 219, + 209, 68, 68, 218, 221, 68, 220, 234, 68, 222, + 228, 224, 225, 223, 229, 226, 212, 213, 227, 232, + 233, 1751, 214, 1751, 68, 235, 68, 215, 238, 230, + 68, 68, 1751, 216, 217, 241, 68, 1751, 68, 225, + 68, 229, 226, 236, 213, 227, 232, 233, 231, 214, + + 239, 68, 235, 237, 215, 68, 230, 240, 243, 68, + 216, 217, 244, 68, 242, 245, 68, 246, 68, 247, + 1751, 248, 1751, 252, 68, 231, 249, 239, 68, 261, + 237, 68, 250, 251, 240, 68, 68, 68, 259, 68, + 68, 242, 245, 68, 246, 68, 247, 68, 248, 253, + 252, 254, 68, 249, 68, 255, 261, 256, 68, 250, + 251, 68, 68, 257, 258, 262, 260, 263, 266, 68, + 1751, 1751, 68, 68, 265, 264, 253, 68, 254, 269, + 270, 267, 255, 68, 256, 68, 275, 274, 277, 68, + 257, 258, 262, 260, 68, 266, 272, 271, 68, 276, + + 273, 265, 264, 268, 278, 68, 68, 270, 68, 279, + 68, 135, 68, 280, 274, 282, 68, 68, 68, 68, + 281, 68, 68, 272, 271, 283, 276, 273, 285, 288, + 268, 278, 68, 286, 287, 1751, 279, 292, 289, 68, + 280, 68, 282, 290, 293, 68, 291, 281, 294, 296, + 295, 68, 283, 1751, 68, 285, 288, 68, 298, 68, + 286, 287, 68, 301, 68, 289, 68, 68, 68, 297, + 290, 293, 68, 291, 68, 294, 68, 295, 299, 300, + 68, 303, 302, 304, 68, 298, 305, 306, 307, 68, + 301, 68, 68, 68, 373, 374, 297, 309, 311, 308, + + 310, 68, 1751, 1751, 68, 299, 300, 68, 303, 302, + 304, 312, 68, 305, 68, 307, 68, 68, 68, 313, + 314, 318, 322, 68, 309, 311, 308, 310, 315, 316, + 321, 319, 323, 68, 320, 68, 324, 330, 312, 328, + 68, 68, 68, 325, 340, 68, 313, 314, 318, 322, + 68, 326, 327, 68, 68, 315, 316, 321, 319, 323, + 329, 320, 331, 68, 68, 68, 328, 68, 68, 68, + 325, 332, 333, 335, 334, 68, 339, 68, 326, 327, + 336, 343, 341, 337, 342, 338, 68, 329, 68, 331, + 68, 68, 345, 68, 68, 362, 68, 346, 332, 333, + + 335, 334, 344, 339, 68, 68, 356, 336, 343, 341, + 337, 342, 338, 347, 68, 348, 1751, 367, 68, 345, + 357, 68, 359, 360, 346, 358, 68, 361, 68, 344, + 68, 135, 363, 356, 68, 68, 68, 1751, 68, 364, + 347, 370, 348, 349, 350, 1751, 68, 357, 68, 359, + 360, 365, 358, 351, 361, 352, 353, 354, 368, 363, + 355, 366, 369, 68, 372, 68, 364, 375, 68, 389, + 349, 350, 68, 68, 68, 68, 379, 1751, 365, 371, + 351, 376, 352, 353, 354, 368, 68, 355, 366, 369, + 68, 372, 68, 377, 375, 380, 378, 382, 381, 383, + + 68, 68, 1751, 379, 68, 386, 371, 68, 376, 68, + 68, 385, 384, 387, 390, 388, 394, 68, 68, 392, + 377, 391, 380, 378, 382, 381, 383, 68, 393, 68, + 68, 395, 386, 68, 396, 68, 68, 399, 385, 384, + 387, 390, 388, 394, 68, 68, 392, 397, 391, 398, + 68, 402, 68, 68, 400, 393, 401, 68, 395, 404, + 403, 1751, 405, 406, 399, 68, 68, 68, 1751, 68, + 1751, 413, 407, 68, 397, 408, 398, 68, 402, 1751, + 410, 400, 68, 401, 68, 68, 404, 403, 68, 405, + 406, 68, 414, 68, 409, 68, 411, 412, 413, 407, + + 415, 68, 408, 68, 68, 417, 416, 410, 418, 1751, + 68, 419, 420, 1751, 421, 1751, 68, 68, 68, 414, + 422, 409, 68, 411, 412, 68, 423, 415, 1751, 424, + 1751, 437, 68, 416, 425, 418, 68, 68, 419, 420, + 68, 421, 68, 431, 432, 433, 439, 422, 68, 1751, + 68, 435, 436, 423, 434, 68, 424, 68, 437, 68, + 1751, 425, 426, 438, 1751, 68, 1751, 427, 440, 428, + 431, 432, 68, 439, 442, 68, 68, 429, 435, 436, + 68, 434, 441, 443, 445, 446, 68, 430, 68, 426, + 438, 68, 447, 444, 427, 440, 428, 68, 68, 449, + + 68, 442, 450, 68, 429, 448, 68, 452, 451, 441, + 443, 445, 446, 453, 430, 455, 68, 68, 454, 447, + 444, 456, 135, 68, 457, 458, 449, 68, 468, 459, + 460, 466, 448, 68, 452, 451, 68, 68, 467, 68, + 453, 68, 68, 469, 461, 454, 463, 462, 456, 68, + 464, 457, 458, 465, 68, 68, 459, 460, 68, 68, + 470, 471, 472, 473, 477, 68, 475, 68, 68, 1751, + 68, 461, 474, 476, 462, 478, 479, 68, 1751, 480, + 465, 481, 68, 488, 485, 68, 68, 68, 1751, 472, + 473, 477, 68, 490, 68, 68, 68, 68, 489, 474, + + 476, 68, 478, 486, 482, 487, 480, 68, 481, 483, + 68, 485, 68, 484, 68, 491, 68, 68, 68, 493, + 490, 494, 495, 496, 497, 489, 498, 1751, 68, 500, + 486, 482, 487, 499, 68, 68, 483, 492, 68, 68, + 484, 68, 491, 501, 68, 504, 493, 502, 494, 495, + 496, 497, 503, 68, 68, 505, 500, 68, 68, 1751, + 499, 68, 506, 507, 492, 512, 508, 68, 511, 68, + 501, 509, 504, 513, 502, 510, 516, 514, 518, 503, + 517, 1751, 68, 520, 68, 521, 68, 68, 68, 506, + 507, 68, 515, 508, 68, 511, 68, 525, 519, 526, + + 513, 68, 68, 68, 514, 518, 68, 68, 68, 522, + 520, 527, 521, 523, 530, 524, 534, 68, 68, 515, + 68, 68, 68, 68, 525, 519, 526, 529, 528, 1751, + 532, 1751, 68, 531, 1751, 533, 522, 68, 527, 68, + 523, 68, 524, 534, 535, 68, 540, 539, 536, 538, + 541, 1751, 545, 537, 529, 528, 68, 532, 68, 68, + 531, 68, 533, 68, 542, 543, 68, 68, 68, 544, + 68, 535, 68, 540, 539, 536, 538, 541, 68, 545, + 537, 546, 547, 548, 550, 1751, 68, 68, 549, 555, + 552, 542, 543, 1751, 551, 68, 544, 558, 553, 68, + + 68, 554, 572, 556, 559, 135, 68, 68, 546, 547, + 548, 550, 68, 560, 557, 549, 68, 552, 600, 68, + 68, 551, 68, 68, 558, 553, 68, 567, 554, 68, + 556, 559, 561, 68, 68, 568, 570, 1751, 569, 68, + 560, 557, 581, 571, 584, 68, 580, 1751, 582, 68, + 68, 68, 583, 601, 567, 612, 68, 68, 585, 561, + 562, 1751, 568, 570, 563, 569, 68, 564, 68, 581, + 571, 68, 586, 580, 565, 582, 68, 566, 68, 583, + 587, 1751, 68, 588, 68, 585, 68, 562, 589, 1751, + 1751, 563, 68, 592, 564, 1751, 1751, 590, 68, 586, + + 68, 565, 595, 1751, 566, 573, 574, 587, 575, 68, + 588, 576, 68, 591, 596, 589, 577, 593, 594, 68, + 592, 68, 578, 579, 590, 68, 68, 597, 68, 595, + 598, 68, 573, 574, 599, 575, 68, 68, 576, 602, + 591, 596, 607, 577, 593, 594, 603, 606, 608, 578, + 579, 604, 68, 605, 597, 610, 68, 598, 611, 636, + 1751, 68, 615, 68, 68, 614, 602, 68, 68, 607, + 68, 609, 68, 603, 606, 608, 613, 68, 604, 68, + 605, 616, 68, 68, 68, 611, 68, 617, 618, 615, + 68, 621, 614, 619, 68, 1751, 623, 68, 609, 622, + + 68, 620, 68, 613, 624, 625, 627, 628, 616, 626, + 68, 68, 632, 68, 617, 618, 68, 68, 621, 630, + 619, 68, 631, 623, 68, 68, 622, 68, 620, 629, + 68, 624, 625, 627, 628, 634, 626, 633, 68, 632, + 68, 635, 68, 637, 638, 639, 630, 1751, 640, 631, + 643, 641, 644, 68, 68, 642, 629, 645, 68, 648, + 646, 68, 634, 68, 633, 647, 1751, 68, 635, 68, + 650, 638, 639, 68, 68, 640, 68, 643, 641, 68, + 651, 68, 642, 68, 645, 653, 649, 646, 652, 656, + 68, 654, 647, 68, 657, 655, 1751, 68, 68, 68, + + 68, 68, 68, 664, 1751, 665, 1751, 135, 68, 1751, + 1751, 671, 653, 649, 680, 652, 656, 68, 654, 1751, + 1751, 657, 655, 658, 668, 659, 68, 667, 1751, 660, + 664, 661, 665, 666, 68, 68, 662, 672, 671, 68, + 669, 663, 670, 675, 1751, 68, 68, 68, 1751, 68, + 658, 668, 659, 68, 667, 68, 660, 679, 661, 676, + 666, 673, 678, 662, 672, 68, 685, 669, 663, 670, + 675, 674, 68, 677, 686, 68, 688, 687, 68, 68, + 681, 68, 689, 68, 679, 682, 676, 683, 673, 678, + 68, 68, 691, 685, 690, 694, 68, 692, 674, 696, + + 677, 686, 695, 688, 687, 684, 68, 681, 68, 689, + 68, 68, 682, 697, 683, 693, 68, 699, 698, 691, + 701, 690, 68, 68, 692, 68, 68, 700, 68, 695, + 68, 68, 684, 703, 706, 702, 705, 68, 709, 707, + 697, 68, 693, 718, 699, 698, 68, 701, 704, 68, + 708, 68, 68, 717, 700, 711, 68, 710, 68, 712, + 703, 706, 702, 705, 68, 68, 707, 713, 68, 68, + 714, 68, 716, 715, 68, 704, 725, 708, 724, 68, + 717, 720, 711, 68, 710, 721, 712, 719, 1751, 68, + 68, 728, 68, 722, 713, 68, 723, 714, 726, 716, + + 715, 68, 68, 725, 727, 724, 730, 729, 731, 735, + 68, 68, 68, 68, 719, 68, 732, 734, 728, 68, + 722, 733, 736, 723, 1751, 726, 1751, 738, 68, 1751, + 68, 727, 68, 730, 729, 731, 68, 68, 68, 740, + 68, 737, 742, 732, 734, 741, 739, 68, 733, 736, + 68, 68, 68, 743, 738, 68, 68, 744, 745, 746, + 747, 749, 748, 750, 752, 1751, 740, 68, 737, 742, + 751, 1751, 741, 739, 1751, 68, 68, 68, 755, 68, + 743, 758, 68, 68, 744, 745, 746, 747, 753, 748, + 754, 68, 68, 68, 68, 757, 68, 751, 759, 68, + + 760, 761, 68, 68, 68, 755, 68, 762, 758, 763, + 764, 765, 775, 766, 68, 753, 68, 754, 768, 68, + 769, 767, 757, 1751, 770, 759, 771, 760, 761, 772, + 1751, 68, 773, 68, 762, 68, 763, 68, 68, 68, + 766, 68, 68, 68, 68, 768, 68, 769, 767, 774, + 777, 770, 776, 771, 779, 778, 772, 68, 1751, 773, + 782, 68, 68, 780, 781, 783, 784, 1751, 785, 1751, + 787, 68, 786, 68, 788, 68, 774, 777, 68, 776, + 68, 779, 778, 794, 68, 68, 68, 782, 790, 68, + 780, 781, 783, 784, 68, 785, 68, 787, 789, 786, + + 791, 788, 792, 68, 793, 795, 68, 797, 1751, 796, + 794, 68, 798, 68, 68, 790, 68, 68, 68, 799, + 68, 68, 805, 800, 802, 789, 801, 791, 803, 792, + 804, 793, 795, 68, 797, 68, 796, 806, 807, 798, + 68, 68, 68, 68, 68, 811, 799, 810, 808, 805, + 800, 802, 809, 801, 812, 68, 814, 804, 813, 68, + 68, 1751, 815, 1751, 806, 807, 1751, 818, 68, 816, + 817, 68, 811, 1751, 810, 822, 68, 819, 820, 68, + 823, 812, 1751, 824, 68, 813, 821, 68, 68, 815, + 825, 68, 68, 68, 818, 68, 816, 817, 826, 68, + + 68, 827, 822, 831, 819, 820, 828, 832, 829, 833, + 830, 68, 68, 821, 68, 834, 836, 825, 844, 68, + 837, 68, 835, 68, 840, 826, 838, 68, 827, 68, + 831, 68, 68, 828, 832, 829, 833, 830, 839, 68, + 846, 841, 834, 68, 845, 68, 68, 68, 842, 835, + 843, 840, 68, 838, 68, 847, 68, 68, 848, 850, + 852, 849, 853, 851, 854, 839, 855, 68, 841, 68, + 68, 845, 856, 68, 858, 842, 857, 843, 859, 68, + 68, 861, 847, 860, 68, 848, 68, 68, 849, 853, + 851, 68, 68, 855, 68, 68, 68, 862, 863, 856, + + 864, 858, 68, 857, 68, 859, 865, 866, 861, 867, + 860, 1751, 868, 870, 869, 871, 873, 68, 876, 872, + 68, 1751, 68, 68, 862, 68, 878, 68, 68, 68, + 68, 68, 879, 865, 877, 68, 867, 874, 68, 868, + 68, 869, 871, 875, 880, 876, 872, 68, 882, 68, + 68, 68, 881, 878, 68, 883, 884, 68, 68, 879, + 68, 877, 885, 886, 874, 890, 889, 887, 888, 892, + 875, 880, 1751, 1751, 891, 882, 893, 68, 1751, 881, + 894, 1751, 883, 884, 68, 68, 68, 68, 898, 885, + 68, 900, 890, 889, 68, 888, 68, 895, 68, 68, + + 68, 891, 897, 893, 899, 68, 904, 894, 896, 68, + 68, 68, 902, 68, 901, 898, 905, 903, 900, 68, + 906, 68, 907, 908, 895, 68, 909, 911, 68, 897, + 68, 899, 68, 904, 910, 896, 68, 68, 914, 902, + 912, 901, 916, 905, 903, 68, 68, 906, 913, 907, + 908, 915, 917, 909, 911, 918, 68, 68, 68, 68, + 68, 910, 919, 920, 68, 914, 923, 912, 921, 916, + 922, 927, 924, 1751, 928, 913, 929, 68, 915, 68, + 68, 925, 68, 68, 68, 926, 68, 932, 68, 919, + 68, 933, 68, 923, 931, 921, 1751, 922, 68, 924, + + 938, 928, 68, 929, 930, 68, 941, 934, 68, 935, + 936, 937, 68, 68, 932, 68, 940, 68, 68, 68, + 939, 931, 68, 943, 942, 944, 68, 938, 68, 955, + 945, 930, 68, 941, 934, 946, 935, 936, 937, 68, + 1751, 951, 947, 940, 68, 68, 948, 939, 68, 950, + 943, 942, 944, 68, 1751, 952, 68, 945, 953, 949, + 68, 957, 946, 954, 959, 956, 960, 68, 68, 947, + 68, 958, 961, 948, 68, 1751, 950, 68, 962, 1751, + 963, 68, 952, 68, 964, 953, 949, 965, 957, 68, + 954, 966, 956, 68, 967, 68, 68, 68, 958, 68, + + 968, 969, 68, 970, 68, 962, 68, 963, 971, 973, + 68, 964, 68, 1751, 965, 972, 68, 974, 966, 976, + 68, 967, 979, 975, 977, 68, 978, 968, 68, 983, + 970, 68, 980, 68, 68, 971, 973, 1751, 981, 68, + 68, 68, 972, 985, 974, 68, 976, 68, 68, 979, + 975, 977, 986, 978, 68, 982, 983, 984, 987, 980, + 988, 989, 68, 990, 68, 981, 991, 68, 68, 993, + 985, 994, 68, 992, 68, 1000, 68, 1001, 996, 986, + 995, 1751, 982, 1002, 984, 68, 1003, 988, 997, 68, + 990, 998, 68, 68, 68, 68, 993, 68, 994, 68, + + 992, 68, 1005, 999, 1001, 996, 68, 995, 68, 1004, + 1002, 68, 68, 1003, 1006, 997, 1007, 1009, 998, 1008, + 1010, 1012, 1015, 1751, 1751, 68, 68, 68, 68, 1005, + 999, 1011, 1014, 1013, 1016, 1751, 1004, 68, 1020, 1017, + 1023, 1751, 68, 1007, 1009, 68, 1008, 1010, 68, 68, + 1018, 68, 68, 68, 68, 1019, 68, 68, 1011, 1014, + 1013, 1016, 68, 1021, 1026, 1020, 1017, 1022, 1024, 1025, + 68, 68, 1028, 1029, 1751, 68, 68, 1018, 68, 1027, + 1030, 68, 1019, 1031, 68, 1033, 1032, 1034, 1751, 1042, + 1021, 1026, 1036, 68, 1022, 1024, 1025, 68, 68, 1028, + + 1029, 68, 1035, 68, 1037, 1041, 1027, 1030, 1038, 1043, + 1031, 68, 68, 1032, 1034, 1039, 68, 1046, 1040, 1036, + 68, 1044, 68, 68, 68, 1045, 68, 1047, 68, 1035, + 1051, 1037, 1041, 68, 1048, 1038, 68, 1050, 1053, 68, + 68, 1049, 1039, 68, 1046, 1040, 68, 1052, 1044, 68, + 1059, 1061, 1045, 1054, 1047, 1751, 68, 1051, 68, 1056, + 68, 1048, 1057, 1058, 1050, 1053, 1060, 1055, 1049, 1063, + 1062, 1064, 68, 1065, 1052, 68, 68, 68, 1751, 68, + 1054, 68, 68, 1072, 1068, 1069, 1056, 68, 1751, 1057, + 1058, 68, 1066, 1060, 1055, 1070, 1063, 1062, 1067, 68, + + 1065, 1071, 68, 68, 68, 1077, 1073, 1076, 1080, 68, + 1751, 1068, 1069, 1075, 68, 1074, 68, 68, 1751, 1066, + 68, 1078, 1070, 1079, 68, 1067, 68, 68, 1071, 1083, + 68, 1084, 1077, 1073, 1076, 1080, 1751, 1081, 1086, 1082, + 1075, 68, 1074, 68, 68, 68, 1087, 1085, 1078, 1088, + 1079, 68, 1089, 68, 1090, 1093, 68, 68, 1084, 1091, + 1095, 68, 1096, 1092, 1081, 1086, 1082, 68, 68, 68, + 1094, 1097, 1751, 1087, 1085, 1100, 1088, 1098, 1099, 1102, + 68, 1090, 68, 68, 68, 1103, 1091, 68, 1101, 1096, + 1092, 68, 68, 68, 68, 1104, 1108, 1094, 68, 1107, + + 68, 1109, 1100, 68, 1098, 1099, 1102, 68, 1105, 1106, + 1111, 68, 1103, 68, 1110, 1101, 68, 1112, 68, 1113, + 68, 1114, 1104, 68, 68, 1115, 1107, 1116, 68, 1118, + 1117, 1119, 68, 1120, 1121, 1105, 1106, 1111, 1122, 1124, + 1123, 1110, 68, 68, 1112, 1125, 68, 1126, 1114, 1131, + 1751, 1751, 68, 68, 68, 68, 68, 1117, 1119, 1135, + 68, 1121, 1136, 1132, 68, 68, 68, 1123, 1134, 68, + 68, 68, 1125, 1127, 1128, 1129, 1131, 1133, 68, 1138, + 1130, 68, 1137, 68, 68, 1139, 1135, 1141, 68, 68, + 1132, 1142, 68, 1140, 1751, 1134, 1143, 1144, 1145, 68, + + 1127, 1128, 1129, 68, 1133, 68, 1138, 1130, 1146, 1137, + 1149, 68, 1139, 1154, 68, 68, 68, 1148, 1142, 1150, + 1140, 1147, 68, 1143, 1144, 1145, 1151, 1152, 68, 1153, + 1155, 1156, 68, 68, 68, 1146, 1157, 1149, 1159, 1751, + 68, 1158, 1160, 68, 1148, 1161, 68, 68, 1147, 68, + 68, 68, 68, 1151, 1152, 1162, 68, 1155, 1156, 1163, + 68, 1165, 68, 1157, 1166, 1159, 1164, 1174, 1158, 1160, + 1168, 68, 1161, 68, 68, 1171, 1167, 1172, 1175, 1169, + 1751, 68, 1162, 68, 1170, 68, 1163, 1173, 1165, 1178, + 1181, 1166, 1176, 1164, 68, 68, 1177, 68, 68, 1183, + + 68, 1180, 68, 1167, 1172, 68, 1169, 1179, 68, 1182, + 1184, 1170, 1186, 1185, 1173, 68, 68, 1188, 1189, 1192, + 68, 68, 68, 68, 68, 68, 1183, 1187, 1180, 1190, + 1751, 1191, 68, 68, 1179, 1193, 1182, 1184, 1195, 1196, + 1185, 1751, 1194, 68, 1202, 1189, 68, 1197, 68, 68, + 1199, 1751, 1198, 68, 1187, 1209, 1190, 68, 1191, 68, + 1200, 68, 68, 1201, 1204, 1195, 1196, 1205, 68, 1194, + 68, 68, 68, 1203, 1197, 68, 68, 1199, 68, 1198, + 68, 1206, 68, 1207, 1210, 1208, 68, 1200, 1211, 68, + 1201, 1204, 1213, 1216, 1205, 1214, 1218, 68, 1215, 1212, + + 1203, 68, 1219, 1221, 1223, 1217, 68, 68, 1206, 68, + 1207, 1210, 1208, 68, 68, 1211, 68, 68, 1220, 1213, + 68, 1222, 1214, 1218, 1224, 1215, 1212, 1225, 68, 68, + 1221, 68, 1217, 68, 68, 1226, 1228, 1227, 1229, 1751, + 1232, 1230, 68, 1231, 68, 1220, 68, 1235, 1222, 1240, + 1233, 1224, 68, 68, 1225, 68, 68, 68, 68, 1234, + 1236, 68, 1226, 1228, 1227, 1229, 68, 1232, 1230, 68, + 1231, 1237, 1238, 1242, 1235, 1239, 68, 1233, 1241, 68, + 68, 1243, 1244, 1246, 1248, 68, 1234, 1236, 68, 1245, + 68, 1249, 68, 1250, 1247, 68, 1253, 1256, 1237, 1238, + + 1242, 68, 1239, 1751, 68, 1241, 68, 1254, 1243, 1244, + 1246, 68, 68, 68, 1251, 68, 1245, 1252, 1249, 68, + 1250, 1247, 68, 68, 1255, 1257, 1751, 1751, 68, 1258, + 68, 68, 1260, 1259, 1254, 1261, 1262, 1263, 1264, 1751, + 1751, 1251, 1268, 1267, 1252, 1265, 1266, 68, 68, 68, + 68, 1255, 1257, 68, 68, 68, 1258, 68, 1270, 1260, + 1259, 68, 1261, 1262, 1263, 1264, 1269, 68, 68, 1268, + 1267, 1271, 1265, 1266, 1272, 1275, 1273, 68, 68, 68, + 1277, 1274, 1276, 1278, 1751, 1270, 68, 1282, 1279, 1284, + 1280, 68, 68, 1269, 1283, 1285, 68, 1287, 1271, 68, + + 68, 1272, 68, 1273, 1281, 1286, 1291, 68, 1274, 1276, + 1278, 68, 68, 68, 68, 1279, 1284, 1280, 68, 1288, + 1289, 1283, 68, 68, 68, 1290, 1292, 1293, 68, 68, + 1296, 1281, 1286, 1291, 68, 68, 1294, 1295, 1297, 1298, + 1299, 68, 68, 1300, 1302, 68, 1288, 1289, 68, 1301, + 1751, 68, 1290, 68, 1293, 1303, 68, 1296, 68, 1312, + 68, 1304, 68, 1294, 1295, 1297, 1298, 1299, 1313, 1309, + 68, 1302, 68, 1305, 1306, 68, 1301, 68, 68, 1308, + 1307, 68, 1303, 68, 1310, 1311, 68, 68, 1304, 1314, + 1316, 68, 68, 1317, 1318, 1313, 1309, 1315, 1319, 68, + + 1305, 1306, 1321, 68, 68, 1322, 1308, 1307, 1320, 1323, + 68, 1310, 1311, 1325, 1326, 1324, 1314, 1316, 1327, 68, + 1317, 68, 68, 68, 1315, 68, 68, 1328, 1329, 68, + 1330, 1331, 68, 1751, 1332, 1320, 68, 1335, 68, 1333, + 68, 68, 1324, 68, 1334, 1327, 1337, 1338, 1339, 68, + 1340, 1344, 1336, 1343, 1328, 68, 68, 1330, 68, 68, + 68, 1332, 1751, 68, 1335, 1341, 1333, 1346, 68, 68, + 1342, 1334, 1348, 68, 1338, 1339, 68, 68, 68, 1336, + 1343, 1345, 68, 1347, 68, 1349, 1350, 1351, 1352, 68, + 68, 1353, 1341, 1357, 68, 1355, 1354, 1342, 68, 1348, + + 1751, 68, 68, 68, 1356, 68, 1358, 1360, 1345, 68, + 1347, 68, 1349, 1350, 1351, 1352, 68, 68, 1353, 1359, + 1357, 1361, 1355, 1354, 68, 1363, 1365, 1362, 1751, 1364, + 1751, 1356, 68, 1358, 68, 1368, 1751, 1366, 68, 1751, + 1369, 1374, 1371, 68, 68, 1367, 1359, 68, 1361, 1372, + 1370, 1375, 1363, 1373, 1362, 68, 1364, 68, 68, 1377, + 68, 1376, 1368, 68, 1366, 68, 68, 1369, 68, 1371, + 1379, 68, 1367, 1380, 68, 1378, 1372, 1370, 68, 1381, + 1373, 68, 1384, 68, 1382, 68, 1377, 1751, 1376, 1383, + 68, 1386, 1385, 1390, 1388, 1387, 1389, 1379, 68, 1391, + + 1380, 1393, 1378, 68, 1392, 68, 1381, 68, 68, 68, + 1394, 1382, 68, 68, 68, 68, 1383, 68, 1386, 1385, + 1390, 1388, 1387, 1389, 1395, 68, 1396, 1397, 1393, 1399, + 68, 1392, 68, 1398, 1401, 1400, 1402, 1394, 1403, 1404, + 1405, 1406, 1410, 1751, 1409, 68, 68, 1751, 1407, 1408, + 1413, 68, 68, 1396, 1397, 68, 68, 68, 1414, 68, + 1398, 68, 1400, 68, 68, 68, 1404, 1405, 1406, 68, + 68, 68, 1411, 68, 1412, 1407, 1408, 68, 1415, 1416, + 68, 68, 1417, 1418, 1419, 1414, 68, 1420, 1422, 1751, + 1751, 1428, 68, 1421, 1426, 1751, 1751, 68, 1423, 1411, + + 1751, 1412, 1424, 68, 68, 1415, 1416, 1425, 68, 1417, + 68, 68, 1427, 68, 68, 1422, 68, 68, 68, 68, + 1421, 1426, 68, 1429, 1431, 1423, 1430, 68, 1432, 1424, + 1433, 68, 1434, 68, 1425, 1435, 1437, 1439, 1436, 1427, + 1440, 68, 68, 68, 68, 68, 1438, 1441, 1449, 1444, + 1429, 1431, 1442, 1430, 68, 1432, 68, 1433, 68, 1434, + 1445, 68, 1435, 1437, 68, 1436, 1443, 68, 68, 1448, + 1446, 68, 1447, 1438, 1441, 68, 1444, 68, 68, 1442, + 1450, 68, 1451, 1453, 1751, 1454, 1457, 1445, 1452, 1458, + 1455, 1751, 68, 1443, 68, 68, 1448, 1446, 68, 1447, + + 68, 68, 68, 1456, 1460, 1459, 1466, 1450, 1751, 1451, + 1453, 68, 1454, 68, 68, 1452, 68, 1455, 1461, 1463, + 68, 1462, 1464, 1465, 1467, 1468, 68, 68, 68, 68, + 1456, 1460, 1459, 68, 68, 1469, 68, 1470, 1471, 1472, + 1473, 1475, 1476, 1751, 1477, 1461, 1463, 68, 1462, 1464, + 1465, 1467, 1468, 68, 1478, 1474, 1479, 1480, 68, 68, + 68, 1483, 1469, 68, 1470, 68, 1472, 68, 68, 68, + 68, 1477, 1481, 1485, 68, 1484, 1486, 1482, 1487, 68, + 68, 1478, 1474, 1479, 1480, 68, 1488, 68, 1483, 1489, + 68, 1490, 1491, 1492, 68, 68, 1493, 1494, 68, 1481, + + 1485, 1751, 1484, 1486, 1482, 1487, 1495, 1497, 1496, 1498, + 1500, 1501, 1499, 68, 68, 1503, 68, 1502, 1751, 1491, + 68, 68, 68, 68, 68, 68, 68, 1751, 68, 68, + 68, 68, 68, 1495, 1497, 1496, 1498, 1500, 1501, 1499, + 1504, 68, 1503, 1505, 1502, 1506, 1751, 1507, 1508, 1509, + 1512, 1510, 1511, 1513, 68, 1514, 1751, 68, 68, 1751, + 68, 68, 1515, 68, 1516, 1517, 68, 1504, 1521, 1522, + 1505, 68, 1506, 68, 1507, 1508, 1509, 68, 1510, 1511, + 1513, 68, 68, 68, 1518, 1519, 68, 1520, 1526, 1515, + 1523, 1516, 1517, 1524, 68, 1521, 68, 68, 68, 68, + + 1525, 1527, 1528, 1530, 1529, 1531, 1532, 1535, 68, 1751, + 1751, 1518, 1519, 68, 1520, 68, 68, 1523, 1533, 68, + 1524, 1534, 1536, 1537, 68, 1538, 1539, 1525, 68, 68, + 1530, 1529, 68, 68, 1542, 68, 68, 1540, 68, 1544, + 1549, 68, 68, 1541, 68, 1533, 1543, 68, 1534, 1536, + 1537, 1545, 1538, 1539, 68, 1546, 68, 1547, 68, 68, + 1548, 68, 68, 1557, 1540, 1550, 1544, 1549, 1551, 68, + 1541, 68, 68, 1543, 1555, 1552, 1556, 1558, 1545, 1553, + 1561, 68, 1546, 68, 1547, 68, 68, 1548, 1751, 1554, + 68, 1559, 1550, 68, 68, 1551, 68, 1562, 68, 1560, + + 68, 1555, 1552, 1556, 1558, 1563, 1553, 1561, 1566, 68, + 1564, 68, 1565, 1568, 68, 68, 1554, 1567, 1559, 1569, + 1570, 1571, 1575, 68, 1562, 68, 1560, 1572, 68, 1573, + 68, 68, 1563, 68, 1577, 1566, 1574, 1564, 68, 1565, + 1568, 68, 1580, 68, 1567, 68, 1569, 1570, 1571, 1578, + 1576, 68, 68, 68, 1572, 1579, 1573, 68, 1581, 1583, + 1582, 68, 1588, 1574, 1584, 1585, 1586, 68, 1590, 68, + 68, 1589, 68, 1587, 68, 1591, 1578, 1576, 68, 68, + 1592, 68, 1579, 1593, 68, 1581, 1583, 1582, 68, 68, + 68, 1584, 1585, 1586, 1595, 68, 1596, 68, 1589, 1594, + + 1587, 1597, 1591, 68, 1598, 1599, 68, 68, 1600, 68, + 1593, 1602, 1601, 1603, 1604, 1605, 68, 1607, 68, 1608, + 68, 1595, 68, 1596, 1606, 68, 1594, 68, 1597, 68, + 1611, 68, 68, 1609, 1610, 1600, 1612, 1613, 1602, 1601, + 68, 1604, 1605, 68, 1607, 68, 68, 1614, 1616, 1615, + 68, 1606, 1617, 1618, 1619, 1620, 1621, 68, 1622, 1623, + 1609, 1610, 68, 68, 1613, 1624, 1626, 1629, 1627, 68, + 68, 1625, 1628, 1751, 1614, 1616, 1615, 68, 68, 68, + 68, 68, 1620, 68, 68, 1622, 68, 1630, 1631, 68, + 68, 68, 1624, 68, 68, 1627, 1632, 1633, 1625, 1628, + + 1638, 1634, 1637, 1635, 1636, 1640, 68, 1641, 68, 68, + 68, 68, 68, 68, 1630, 1631, 1642, 1643, 1639, 1644, + 1645, 1751, 68, 1632, 1633, 68, 1647, 1638, 1634, 1637, + 1635, 1636, 68, 1650, 68, 1646, 1651, 1648, 1652, 68, + 68, 1649, 68, 1642, 68, 1639, 1644, 68, 68, 68, + 68, 1654, 1655, 68, 1653, 1656, 1658, 68, 1659, 1657, + 68, 1660, 1646, 68, 1648, 1652, 68, 68, 1649, 1661, + 1664, 1663, 1662, 1666, 68, 1751, 1665, 68, 1654, 1655, + 1669, 1653, 1656, 68, 1667, 68, 1657, 68, 68, 68, + 1670, 68, 68, 1668, 1672, 68, 68, 68, 1663, 1662, + + 1666, 68, 68, 1665, 1675, 1671, 1673, 1669, 68, 1674, + 1678, 1667, 68, 68, 68, 68, 1677, 1670, 68, 1751, + 1668, 1672, 1676, 1679, 68, 1680, 1681, 1682, 68, 68, + 1683, 1675, 1671, 1673, 1684, 1751, 1674, 68, 1688, 1686, + 1689, 68, 68, 1677, 1751, 1685, 1690, 68, 68, 1676, + 1679, 68, 1680, 1681, 1682, 1687, 1691, 1683, 68, 68, + 1692, 1693, 1695, 68, 1696, 68, 1686, 1694, 68, 68, + 68, 68, 1685, 1690, 68, 68, 68, 1697, 68, 1698, + 1699, 1702, 1687, 1691, 1700, 68, 1701, 1692, 1693, 1695, + 1706, 1696, 68, 1703, 1694, 1704, 1707, 1705, 1708, 1711, + + 1751, 68, 68, 68, 1697, 68, 1698, 1699, 1702, 1751, + 1714, 1700, 68, 1701, 1751, 68, 1751, 68, 68, 1709, + 1703, 68, 1704, 68, 1705, 1708, 1710, 68, 1712, 1713, + 68, 1715, 68, 1716, 68, 1717, 68, 1714, 1718, 68, + 1720, 68, 1721, 68, 1719, 1751, 1709, 1722, 68, 68, + 1723, 1751, 1751, 1710, 1726, 1712, 1713, 1751, 1715, 1724, + 1716, 1751, 1717, 1727, 68, 1718, 68, 1720, 68, 1721, + 1725, 1719, 68, 68, 1722, 1728, 1729, 1723, 68, 68, + 1731, 68, 1730, 68, 68, 1734, 1724, 1751, 68, 1732, + 1727, 1733, 1735, 68, 1736, 68, 1740, 1725, 1737, 1742, + + 68, 1739, 1728, 1729, 68, 1743, 68, 1731, 1751, 1730, + 1741, 68, 1734, 68, 1738, 1744, 1732, 1745, 1733, 1735, + 68, 1736, 68, 68, 1746, 1737, 68, 68, 1739, 1749, + 68, 1750, 68, 1751, 1751, 68, 1751, 1741, 1751, 68, + 1747, 1738, 1744, 1751, 1745, 1748, 68, 1751, 68, 1751, + 1751, 1746, 1751, 68, 1751, 1751, 68, 1751, 68, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1747, 1751, 1751, + 1751, 1751, 1748, 40, 40, 40, 40, 40, 40, 40, + 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, + 50, 50, 50, 50, 56, 56, 56, 56, 56, 56, + + 56, 61, 61, 61, 61, 61, 61, 61, 71, 71, + 1751, 71, 71, 71, 71, 125, 125, 1751, 1751, 1751, + 125, 125, 127, 127, 1751, 1751, 127, 1751, 127, 129, + 1751, 1751, 1751, 1751, 1751, 129, 132, 132, 1751, 1751, + 1751, 132, 132, 134, 1751, 1751, 1751, 1751, 1751, 134, + 136, 136, 1751, 136, 136, 136, 136, 72, 72, 1751, + 72, 72, 72, 72, 13, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751 } ; -static yyconst flex_int16_t yy_chk[5072] = +static yyconst flex_int16_t yy_chk[5131] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1573,556 +1586,562 @@ static yyconst flex_int16_t yy_chk[5072] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 5, 24, 6, 7, 7, - 7, 7, 1736, 7, 8, 8, 8, 8, 24, 8, + 7, 7, 1757, 7, 8, 8, 8, 8, 24, 8, 9, 9, 9, 10, 10, 10, 15, 44, 44, 49, 15, 3, 49, 24, 4, 60, 60, 5, 19, 6, - 19, 19, 69, 19, 644, 7, 69, 39, 19, 39, - 39, 8, 39, 23, 20, 20, 9, 39, 638, 10, + 19, 19, 69, 19, 651, 7, 69, 39, 19, 39, + 39, 8, 39, 23, 20, 20, 9, 39, 645, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 20, 23, 27, 19, 23, 29, 20, 11, - 23, 20, 20, 133, 21, 12, 27, 25, 638, 29, - 131, 21, 125, 125, 28, 25, 130, 11, 21, 20, - 23, 27, 127, 12, 29, 127, 11, 132, 132, 128, + 23, 20, 20, 134, 21, 12, 27, 25, 645, 29, + 132, 21, 126, 126, 28, 25, 131, 11, 21, 20, + 23, 27, 128, 12, 29, 128, 11, 133, 133, 129, 21, 21, 12, 25, 25, 75, 28, 26, 21, 37, 26, 28, 25, 30, 37, 21, 22, 26, 32, 26, 22, 30, 37, 22, 32, 22, 22, 30, 75, 31, - 26, 30, 75, 31, 26, 126, 37, 26, 22, 30, - 30, 37, 209, 22, 26, 32, 26, 22, 30, 31, - 22, 124, 22, 22, 30, 31, 31, 33, 30, 55, - 31, 55, 55, 33, 55, 34, 33, 67, 36, 34, - 36, 209, 61, 33, 56, 33, 31, 93, 66, 34, - 66, 66, 34, 66, 33, 36, 51, 114, 35, 139, - 33, 34, 34, 33, 36, 36, 34, 36, 35, 74, - 33, 38, 35, 35, 65, 38, 34, 50, 93, 34, - 35, 63, 36, 63, 63, 35, 63, 65, 114, 129, - - 139, 129, 129, 74, 129, 35, 74, 38, 38, 35, - 35, 65, 38, 68, 76, 68, 68, 71, 68, 71, - 71, 76, 71, 68, 77, 78, 79, 71, 63, 80, - 82, 81, 84, 45, 78, 82, 40, 77, 83, 79, - 81, 76, 85, 86, 80, 90, 83, 14, 77, 84, - 86, 77, 78, 79, 71, 85, 80, 82, 81, 87, - 89, 91, 88, 84, 77, 83, 98, 90, 87, 85, - 86, 88, 90, 94, 91, 92, 84, 13, 92, 98, - 99, 94, 97, 89, 95, 97, 87, 89, 91, 88, - 96, 0, 92, 98, 96, 100, 101, 105, 102, 92, - - 94, 104, 92, 99, 95, 92, 95, 99, 104, 97, - 101, 95, 103, 0, 96, 100, 0, 96, 102, 92, - 105, 96, 100, 101, 105, 102, 103, 106, 104, 107, - 108, 95, 110, 107, 109, 111, 106, 108, 115, 103, - 112, 109, 147, 113, 119, 0, 110, 111, 112, 116, - 119, 107, 113, 115, 106, 117, 107, 108, 120, 110, - 107, 109, 111, 118, 117, 115, 121, 112, 123, 116, - 113, 119, 122, 147, 118, 116, 116, 123, 137, 120, - 0, 0, 117, 120, 0, 120, 138, 122, 121, 134, - 118, 134, 134, 121, 134, 123, 116, 140, 135, 122, - - 135, 135, 137, 135, 141, 137, 120, 142, 138, 140, - 143, 144, 145, 138, 146, 142, 0, 145, 144, 148, - 0, 151, 143, 141, 140, 150, 153, 152, 0, 151, - 153, 141, 154, 156, 142, 135, 146, 143, 144, 155, - 148, 146, 160, 145, 145, 157, 156, 148, 151, 152, - 0, 150, 150, 153, 152, 154, 161, 157, 0, 154, - 156, 155, 158, 164, 160, 158, 155, 148, 149, 160, - 159, 0, 157, 149, 162, 161, 163, 158, 149, 159, - 165, 162, 161, 161, 149, 149, 166, 163, 167, 158, - 170, 149, 158, 169, 164, 149, 166, 159, 168, 169, - - 149, 162, 161, 163, 171, 149, 165, 165, 172, 173, - 174, 149, 149, 0, 175, 176, 168, 166, 0, 167, - 169, 170, 176, 166, 177, 168, 171, 178, 179, 0, - 174, 171, 178, 186, 180, 175, 181, 174, 183, 172, - 173, 175, 176, 182, 184, 177, 187, 179, 181, 184, - 182, 177, 188, 187, 178, 179, 180, 185, 185, 190, - 183, 180, 189, 181, 186, 183, 185, 191, 192, 194, - 182, 184, 193, 187, 195, 191, 196, 188, 200, 188, - 198, 197, 189, 192, 185, 185, 202, 199, 198, 189, - 190, 194, 0, 196, 191, 192, 197, 201, 193, 193, - - 194, 196, 204, 196, 203, 195, 199, 198, 197, 200, - 206, 204, 206, 205, 199, 207, 203, 202, 194, 201, - 196, 208, 0, 210, 201, 211, 0, 212, 216, 204, - 215, 203, 205, 213, 214, 217, 219, 206, 212, 207, - 205, 221, 207, 218, 0, 213, 216, 208, 208, 210, - 210, 211, 211, 215, 212, 216, 218, 215, 214, 220, - 213, 214, 219, 219, 222, 223, 217, 224, 225, 227, - 218, 222, 221, 224, 223, 226, 228, 231, 227, 229, - 232, 220, 225, 230, 0, 233, 220, 234, 229, 240, - 234, 222, 223, 235, 224, 225, 227, 234, 230, 228, - - 233, 226, 226, 228, 232, 237, 229, 232, 231, 236, - 230, 235, 233, 238, 234, 236, 240, 234, 241, 237, - 235, 239, 239, 242, 245, 243, 242, 248, 238, 244, - 0, 0, 237, 242, 247, 246, 236, 243, 251, 248, - 238, 253, 241, 249, 0, 241, 239, 244, 239, 239, - 242, 245, 243, 242, 248, 0, 244, 246, 249, 250, - 247, 247, 246, 253, 252, 254, 250, 254, 253, 251, - 249, 252, 255, 256, 259, 257, 256, 258, 256, 0, - 261, 0, 260, 262, 256, 255, 250, 261, 260, 254, - 264, 252, 254, 257, 254, 262, 259, 268, 263, 255, - - 256, 259, 257, 256, 267, 256, 264, 261, 258, 260, - 262, 263, 269, 265, 264, 268, 267, 264, 269, 270, - 271, 272, 0, 276, 268, 263, 265, 270, 272, 273, - 274, 267, 271, 264, 274, 276, 275, 277, 279, 269, - 265, 266, 266, 275, 278, 279, 270, 271, 272, 277, - 276, 266, 281, 266, 266, 266, 0, 274, 266, 280, - 273, 0, 282, 275, 277, 279, 266, 285, 266, 266, - 283, 289, 280, 282, 285, 278, 284, 284, 266, 286, - 266, 266, 266, 281, 287, 266, 280, 288, 292, 282, - 286, 293, 283, 290, 285, 287, 289, 283, 289, 291, - - 288, 292, 295, 294, 293, 284, 286, 297, 291, 293, - 296, 287, 298, 300, 288, 292, 290, 299, 293, 301, - 290, 294, 305, 0, 295, 297, 291, 302, 303, 295, - 294, 293, 304, 296, 297, 306, 300, 296, 299, 307, - 300, 306, 303, 298, 299, 301, 301, 309, 308, 302, - 310, 311, 0, 305, 302, 303, 313, 307, 304, 304, - 315, 312, 306, 308, 0, 316, 307, 312, 323, 319, - 309, 316, 317, 311, 309, 308, 310, 310, 311, 318, - 324, 323, 313, 313, 319, 326, 315, 315, 312, 325, - 331, 317, 316, 321, 322, 323, 319, 318, 324, 317, - - 321, 322, 327, 329, 326, 328, 318, 324, 329, 330, - 332, 325, 326, 331, 328, 330, 325, 331, 333, 335, - 321, 322, 332, 334, 0, 0, 342, 335, 337, 0, - 329, 0, 328, 327, 334, 337, 330, 332, 338, 339, - 333, 0, 0, 0, 340, 333, 335, 341, 339, 338, - 334, 336, 342, 342, 341, 337, 336, 343, 336, 343, - 344, 345, 349, 0, 346, 338, 336, 349, 340, 347, - 339, 340, 348, 345, 341, 339, 336, 336, 336, 346, - 348, 347, 350, 336, 343, 336, 344, 344, 345, 349, - 351, 346, 352, 336, 353, 354, 347, 355, 356, 348, - - 352, 0, 357, 336, 350, 360, 353, 359, 351, 350, - 358, 357, 361, 356, 363, 362, 365, 351, 354, 352, - 371, 353, 354, 364, 358, 356, 359, 361, 355, 357, - 362, 369, 360, 366, 359, 364, 366, 358, 363, 361, - 365, 363, 362, 365, 366, 367, 370, 368, 372, 367, - 364, 371, 373, 374, 378, 376, 375, 0, 369, 380, - 366, 368, 375, 366, 377, 379, 382, 383, 0, 389, - 0, 381, 0, 370, 368, 372, 367, 376, 381, 373, - 384, 380, 376, 375, 374, 378, 380, 377, 379, 383, - 385, 377, 379, 384, 383, 385, 387, 382, 381, 385, - - 389, 386, 388, 390, 0, 387, 0, 384, 391, 393, - 394, 392, 398, 0, 385, 388, 0, 385, 395, 0, - 400, 390, 385, 387, 394, 399, 385, 386, 386, 388, - 390, 393, 391, 392, 392, 391, 393, 394, 392, 396, - 395, 397, 402, 398, 400, 395, 399, 400, 401, 403, - 396, 405, 399, 406, 404, 408, 397, 407, 403, 408, - 392, 410, 0, 0, 402, 0, 396, 404, 397, 402, - 411, 409, 401, 405, 414, 401, 403, 406, 405, 407, - 406, 404, 415, 416, 407, 409, 408, 412, 411, 413, - 415, 417, 410, 413, 418, 422, 419, 411, 409, 414, - - 417, 414, 412, 418, 419, 420, 426, 421, 416, 415, - 416, 412, 420, 422, 412, 423, 424, 429, 417, 425, - 413, 418, 422, 419, 428, 424, 431, 423, 427, 412, - 421, 425, 420, 430, 421, 436, 427, 426, 435, 433, - 429, 432, 423, 424, 429, 434, 425, 433, 431, 430, - 428, 428, 432, 431, 437, 427, 438, 436, 435, 434, - 430, 440, 436, 439, 441, 435, 433, 443, 432, 442, - 440, 444, 434, 445, 437, 451, 446, 449, 438, 0, - 443, 437, 0, 438, 441, 439, 447, 442, 440, 452, - 439, 441, 447, 444, 443, 449, 442, 445, 444, 446, - - 445, 448, 453, 446, 449, 454, 451, 455, 468, 448, - 456, 460, 452, 447, 454, 463, 452, 453, 457, 456, - 457, 466, 467, 460, 469, 463, 455, 448, 448, 453, - 471, 468, 454, 0, 455, 468, 448, 456, 460, 466, - 474, 491, 463, 467, 475, 457, 458, 472, 466, 467, - 458, 492, 471, 458, 478, 469, 472, 471, 476, 473, - 458, 473, 477, 458, 474, 0, 478, 474, 458, 479, - 0, 475, 491, 458, 472, 0, 480, 458, 476, 481, - 458, 478, 492, 0, 0, 476, 473, 458, 477, 477, - 458, 470, 470, 489, 470, 479, 479, 470, 483, 482, - - 480, 481, 470, 480, 484, 483, 481, 482, 470, 470, - 487, 485, 484, 486, 488, 489, 490, 470, 470, 470, - 489, 470, 487, 488, 470, 483, 482, 493, 494, 470, - 485, 484, 500, 495, 496, 470, 470, 487, 485, 486, - 486, 488, 498, 490, 501, 499, 502, 497, 0, 494, - 0, 493, 495, 496, 493, 494, 497, 505, 503, 500, - 495, 496, 506, 501, 498, 499, 503, 507, 0, 498, - 508, 501, 499, 512, 497, 505, 509, 502, 0, 512, - 507, 514, 510, 513, 505, 503, 506, 514, 509, 506, - 510, 515, 519, 518, 507, 517, 508, 508, 515, 516, - - 512, 523, 517, 509, 516, 513, 510, 520, 514, 510, - 513, 518, 522, 521, 523, 519, 520, 510, 515, 519, - 518, 521, 517, 524, 525, 526, 516, 527, 523, 528, - 522, 525, 529, 0, 520, 530, 535, 0, 526, 522, - 521, 531, 532, 530, 524, 534, 536, 533, 537, 538, - 524, 525, 526, 533, 539, 529, 531, 537, 527, 529, - 528, 541, 530, 538, 532, 542, 543, 535, 531, 532, - 536, 534, 534, 536, 533, 537, 538, 540, 543, 544, - 546, 545, 547, 546, 540, 539, 551, 548, 541, 545, - 0, 553, 542, 543, 548, 547, 0, 550, 551, 552, - - 554, 552, 544, 553, 540, 0, 544, 546, 545, 547, - 0, 557, 0, 551, 548, 549, 555, 549, 553, 556, - 550, 549, 554, 549, 550, 558, 552, 554, 549, 555, - 565, 559, 556, 549, 557, 560, 561, 558, 557, 549, - 0, 559, 549, 555, 549, 562, 556, 568, 549, 561, - 549, 562, 558, 559, 563, 549, 564, 560, 559, 566, - 549, 565, 560, 561, 566, 567, 566, 563, 559, 568, - 571, 573, 562, 572, 568, 569, 574, 564, 576, 570, - 567, 563, 579, 564, 566, 566, 566, 577, 569, 574, - 573, 566, 567, 566, 570, 572, 571, 571, 573, 575, - - 572, 580, 569, 574, 581, 576, 570, 575, 582, 584, - 577, 566, 581, 579, 577, 583, 585, 584, 588, 590, - 586, 587, 582, 589, 592, 580, 575, 585, 580, 587, - 589, 581, 590, 591, 597, 582, 584, 583, 586, 600, - 588, 594, 583, 585, 595, 588, 590, 586, 587, 594, - 589, 591, 596, 595, 598, 592, 597, 600, 599, 602, - 591, 597, 601, 604, 596, 608, 600, 604, 594, 605, - 0, 595, 605, 606, 610, 607, 598, 608, 0, 596, - 599, 598, 607, 612, 609, 599, 613, 611, 601, 601, - 602, 609, 608, 611, 604, 605, 605, 606, 610, 605, - - 606, 610, 607, 614, 615, 612, 616, 617, 613, 619, - 612, 609, 621, 613, 611, 615, 620, 618, 619, 623, - 622, 621, 0, 624, 614, 628, 623, 616, 622, 625, - 614, 615, 626, 616, 617, 618, 619, 624, 630, 621, - 620, 631, 629, 620, 618, 632, 623, 622, 627, 628, - 624, 625, 628, 630, 626, 633, 625, 627, 629, 626, - 634, 636, 635, 637, 639, 630, 640, 633, 646, 629, - 635, 641, 631, 639, 636, 627, 632, 0, 637, 641, - 646, 642, 633, 642, 640, 647, 645, 634, 636, 635, - 637, 639, 647, 640, 648, 646, 649, 650, 641, 645, - - 0, 651, 652, 653, 654, 655, 656, 659, 642, 657, - 658, 660, 647, 645, 656, 652, 653, 655, 658, 650, - 660, 657, 661, 651, 650, 648, 654, 649, 651, 652, - 653, 654, 655, 656, 659, 662, 657, 658, 660, 663, - 665, 664, 662, 661, 666, 667, 668, 0, 0, 661, - 671, 673, 669, 670, 672, 668, 675, 666, 671, 673, - 665, 674, 662, 664, 0, 663, 663, 665, 664, 667, - 669, 666, 667, 668, 675, 670, 672, 671, 673, 669, - 670, 672, 676, 675, 674, 677, 678, 679, 674, 681, - 680, 682, 684, 688, 676, 681, 685, 677, 680, 683, - - 682, 0, 679, 685, 684, 692, 678, 686, 689, 676, - 690, 0, 677, 678, 679, 691, 681, 680, 682, 684, - 683, 689, 691, 685, 688, 686, 683, 692, 695, 690, - 694, 696, 692, 697, 686, 689, 693, 690, 694, 698, - 693, 700, 691, 0, 701, 696, 699, 0, 702, 705, - 707, 697, 706, 708, 695, 695, 704, 694, 696, 703, - 697, 706, 705, 700, 0, 709, 701, 693, 700, 712, - 698, 701, 699, 699, 702, 702, 705, 703, 704, 706, - 710, 707, 714, 704, 708, 712, 703, 709, 711, 715, - 716, 718, 709, 711, 717, 711, 712, 711, 717, 716, - - 719, 715, 720, 710, 718, 714, 711, 710, 719, 714, - 721, 723, 724, 723, 725, 711, 715, 716, 718, 722, - 711, 720, 711, 721, 711, 717, 725, 719, 722, 720, - 726, 728, 729, 731, 730, 733, 732, 721, 723, 724, - 735, 725, 730, 732, 734, 736, 722, 737, 739, 738, - 745, 740, 736, 743, 729, 728, 741, 726, 728, 729, - 731, 730, 733, 732, 742, 741, 734, 735, 738, 737, - 739, 734, 736, 743, 737, 739, 738, 740, 740, 746, - 743, 745, 747, 741, 748, 742, 750, 749, 0, 752, - 751, 742, 753, 754, 750, 755, 757, 754, 0, 753, - - 0, 760, 759, 757, 747, 749, 751, 758, 0, 747, - 746, 759, 756, 750, 749, 748, 752, 751, 756, 753, - 754, 764, 758, 757, 761, 756, 755, 760, 760, 759, - 762, 761, 762, 763, 758, 769, 765, 766, 774, 756, - 765, 772, 763, 764, 771, 756, 768, 770, 764, 773, - 768, 761, 0, 769, 772, 0, 775, 762, 0, 766, - 763, 774, 769, 765, 766, 774, 770, 776, 772, 771, - 779, 771, 775, 778, 770, 776, 780, 768, 777, 777, - 773, 781, 778, 775, 782, 780, 783, 786, 781, 785, - 784, 0, 779, 788, 776, 783, 0, 779, 784, 786, - - 778, 788, 785, 780, 789, 777, 787, 782, 781, 790, - 791, 782, 792, 783, 786, 794, 785, 784, 787, 796, - 788, 792, 793, 795, 798, 796, 789, 794, 799, 790, - 797, 789, 791, 787, 800, 802, 790, 791, 803, 792, - 793, 804, 794, 805, 795, 806, 796, 803, 808, 793, - 795, 814, 797, 806, 807, 798, 805, 797, 807, 799, - 800, 800, 802, 804, 0, 803, 809, 813, 804, 810, - 805, 0, 806, 812, 809, 808, 815, 810, 811, 811, - 822, 812, 814, 816, 815, 807, 819, 817, 813, 818, - 821, 816, 820, 809, 813, 817, 810, 818, 820, 819, - - 812, 823, 821, 815, 824, 811, 822, 822, 825, 830, - 816, 826, 831, 819, 817, 834, 818, 821, 0, 820, - 827, 832, 825, 823, 827, 829, 833, 824, 823, 826, - 839, 824, 829, 833, 831, 825, 830, 827, 826, 831, - 836, 838, 840, 842, 832, 827, 834, 827, 832, 836, - 844, 827, 829, 833, 846, 853, 839, 839, 847, 848, - 849, 850, 849, 838, 827, 0, 0, 836, 838, 851, - 842, 848, 854, 840, 850, 855, 860, 844, 846, 854, - 852, 846, 853, 872, 847, 847, 848, 849, 850, 856, - 857, 851, 852, 864, 856, 858, 851, 859, 860, 854, - - 862, 855, 855, 860, 865, 859, 857, 852, 863, 862, - 868, 874, 871, 870, 872, 0, 856, 857, 858, 864, - 864, 863, 858, 866, 859, 867, 865, 862, 868, 869, - 866, 865, 867, 875, 871, 863, 869, 868, 870, 871, - 870, 873, 874, 876, 877, 885, 875, 880, 873, 881, - 866, 879, 867, 884, 879, 882, 869, 0, 887, 886, - 875, 888, 882, 888, 881, 877, 883, 885, 873, 883, - 876, 877, 885, 880, 880, 889, 881, 886, 879, 890, - 887, 883, 882, 0, 884, 887, 886, 891, 888, 892, - 883, 899, 893, 883, 894, 895, 883, 896, 892, 889, - - 893, 894, 889, 897, 898, 900, 901, 897, 883, 907, - 890, 904, 0, 891, 891, 901, 892, 895, 899, 893, - 905, 894, 895, 906, 904, 0, 898, 900, 896, 902, - 897, 898, 900, 901, 903, 905, 902, 906, 904, 908, - 907, 903, 909, 912, 914, 910, 908, 905, 913, 909, - 906, 910, 916, 919, 920, 915, 902, 927, 915, 923, - 913, 903, 921, 916, 914, 912, 908, 928, 0, 909, - 912, 914, 910, 915, 926, 913, 922, 923, 920, 916, - 919, 920, 915, 924, 921, 915, 923, 922, 927, 921, - 925, 924, 926, 925, 928, 929, 931, 930, 933, 932, - - 933, 926, 929, 922, 934, 931, 935, 936, 925, 942, - 924, 930, 932, 934, 937, 0, 938, 925, 936, 940, - 925, 944, 929, 931, 930, 933, 932, 947, 940, 945, - 938, 934, 935, 935, 936, 939, 937, 946, 939, 943, - 942, 937, 938, 938, 946, 948, 940, 953, 943, 949, - 945, 952, 944, 939, 954, 949, 945, 938, 947, 948, - 955, 953, 939, 954, 946, 939, 943, 956, 955, 957, - 952, 0, 948, 949, 953, 958, 949, 961, 952, 960, - 957, 954, 949, 962, 958, 963, 960, 955, 966, 964, - 965, 967, 966, 968, 971, 0, 957, 0, 956, 970, - - 961, 969, 958, 967, 961, 962, 960, 963, 965, 971, - 962, 964, 963, 974, 969, 966, 964, 965, 967, 970, - 968, 971, 972, 973, 975, 976, 970, 977, 969, 978, - 0, 973, 980, 979, 976, 982, 983, 972, 0, 975, - 984, 0, 985, 986, 974, 994, 0, 993, 977, 972, - 973, 975, 976, 982, 977, 984, 978, 979, 987, 980, - 979, 986, 982, 983, 985, 988, 989, 984, 990, 985, - 986, 991, 992, 987, 993, 997, 994, 988, 991, 996, - 998, 990, 997, 995, 992, 987, 990, 996, 989, 995, - 999, 1000, 988, 989, 1001, 990, 1002, 999, 991, 992, - - 1003, 1004, 997, 1006, 1008, 1007, 996, 998, 990, 1009, - 995, 1009, 1010, 1012, 1007, 1011, 1019, 999, 1000, 1002, - 0, 1001, 1014, 1002, 0, 1004, 1015, 1017, 1004, 1014, - 1016, 1003, 1007, 1015, 1006, 1008, 1009, 1016, 1021, 1010, - 1017, 1011, 1011, 1019, 1012, 1013, 1013, 1013, 1022, 1014, - 1018, 1024, 1013, 1015, 1017, 1022, 1018, 1016, 1020, 1020, - 1013, 1025, 1027, 1028, 1021, 1021, 1029, 1029, 1026, 1024, - 1030, 1035, 1013, 1013, 1013, 1022, 1032, 1018, 1024, 1013, - 1026, 1028, 1027, 1031, 1031, 1020, 1034, 1032, 1025, 1027, - 1028, 1036, 1037, 1029, 1038, 1026, 1030, 1030, 1036, 1040, - - 1039, 1042, 1035, 1032, 1041, 1043, 1044, 0, 1034, 1046, - 1031, 1041, 1037, 1034, 0, 1044, 1042, 1040, 1036, 1037, - 1050, 1038, 1039, 1045, 1045, 1047, 1040, 1039, 1042, 1043, - 1048, 1041, 1043, 1044, 1049, 1046, 1046, 1047, 1048, 1052, - 1051, 1050, 1054, 1053, 1058, 1055, 1049, 1050, 1053, 1056, - 1045, 1055, 1047, 1057, 1060, 1063, 1059, 1048, 1051, 1053, - 1059, 1049, 1056, 1061, 1061, 1062, 1052, 1051, 1064, 1054, - 1053, 1058, 1055, 1065, 1066, 1053, 1056, 1067, 1068, 1067, - 1062, 1070, 1095, 1064, 1057, 1060, 1063, 1059, 1069, 1066, - 1061, 1071, 1062, 1069, 0, 1064, 1065, 1073, 0, 1074, - - 1065, 1066, 1075, 1076, 1067, 1079, 1071, 1077, 1085, 1068, - 1078, 0, 1070, 1095, 1077, 1069, 0, 1080, 1071, 1083, - 1088, 1073, 1081, 1085, 1073, 1074, 1074, 1079, 1087, 1075, - 1076, 1078, 1079, 1090, 1077, 1085, 1093, 1078, 1080, 1091, - 1081, 1083, 1092, 1087, 1080, 1089, 1083, 1088, 1091, 1081, - 1092, 1090, 1089, 1094, 1096, 1087, 1108, 1098, 1100, 1093, - 1090, 1099, 1103, 1093, 1101, 1106, 1091, 1096, 1098, 1092, - 1099, 1110, 1089, 1107, 1111, 1094, 1100, 1106, 1112, 0, - 1094, 1096, 1101, 1098, 1098, 1100, 1107, 1108, 1099, 1103, - 1114, 1101, 1106, 1109, 1117, 1098, 1116, 1110, 1110, 1111, - - 1107, 1111, 1115, 1109, 1119, 1112, 1122, 1118, 0, 1115, - 1114, 1120, 1117, 1118, 1126, 1121, 1132, 1114, 1122, 1119, - 1109, 1117, 1116, 1116, 1127, 1123, 1120, 1129, 1124, 1115, - 1121, 1119, 1123, 1122, 1118, 1124, 1126, 1128, 1120, 1134, - 1131, 1126, 1121, 1132, 1135, 1129, 1128, 1133, 1133, 1127, - 1136, 1127, 1123, 1131, 1129, 1124, 1137, 1140, 1139, 1138, - 1141, 1134, 1143, 1144, 1128, 1139, 1134, 1131, 1138, 1135, - 1143, 1135, 1136, 1145, 1133, 1149, 1144, 1136, 1137, 1146, - 1148, 1151, 1141, 1137, 0, 1139, 1138, 1141, 1140, 1143, - 1144, 1146, 1147, 1150, 1154, 1152, 1151, 1149, 1152, 1147, - - 1145, 1153, 1149, 1160, 1162, 1157, 1146, 1158, 1151, 1155, - 0, 1148, 1154, 1152, 1164, 1162, 1161, 1160, 1150, 1147, - 1150, 1154, 1152, 1161, 1155, 1152, 1153, 1157, 1153, 1158, - 1160, 1162, 1157, 1166, 1158, 1164, 1155, 1167, 1168, 1169, - 1168, 1164, 1170, 1161, 1171, 1172, 0, 1173, 1175, 1167, - 1174, 1177, 1179, 1176, 1166, 1173, 1182, 1169, 1183, 1179, - 1166, 1184, 1171, 1178, 1167, 1168, 1169, 1176, 1185, 1170, - 1175, 1171, 1172, 1174, 1173, 1175, 1183, 1174, 1177, 1179, - 1176, 1186, 1178, 1182, 1187, 1183, 1189, 1188, 1184, 1191, - 1178, 1191, 0, 1187, 1185, 1185, 1186, 1192, 1193, 1195, - - 1194, 1196, 1193, 1198, 1197, 1200, 1199, 0, 1186, 1188, - 1196, 1187, 1194, 1189, 1188, 1197, 1191, 1200, 1201, 1192, - 1212, 1195, 1202, 1202, 1192, 1193, 1195, 1194, 1196, 1199, - 1198, 1197, 1200, 1199, 1203, 1205, 1207, 1208, 1206, 1205, - 1201, 1206, 1203, 1208, 1207, 1201, 1210, 1212, 1213, 1202, - 1217, 1209, 1210, 1214, 1218, 1215, 1216, 1219, 1221, 1222, - 1220, 1203, 1205, 1207, 1208, 1206, 1209, 1214, 1215, 1223, - 1216, 1224, 1213, 1210, 1220, 1213, 1217, 1217, 1209, 1224, - 1214, 1218, 1215, 1216, 1219, 1221, 1222, 1220, 1225, 1226, - 1229, 1227, 1230, 1231, 1232, 1233, 1223, 0, 1224, 1227, - - 1235, 1231, 1234, 1237, 1233, 1238, 1239, 1241, 1243, 0, - 1236, 1241, 1229, 1238, 1242, 1225, 1226, 1229, 1227, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1242, 1235, 1244, 1234, - 1237, 1243, 1238, 1239, 1241, 1243, 1236, 1236, 1245, 1246, - 1249, 1242, 1247, 1247, 1248, 1250, 1245, 1252, 1253, 1252, - 1254, 1251, 1236, 1260, 1255, 1244, 1254, 0, 1249, 0, - 1250, 1257, 1253, 1261, 1258, 1245, 1246, 1249, 1256, 1247, - 1248, 1248, 1250, 1251, 1252, 1253, 1255, 1254, 1251, 1257, - 1256, 1255, 1258, 1259, 1260, 1263, 1261, 1265, 1257, 1266, - 1261, 1258, 1263, 1267, 1268, 1256, 1259, 0, 1273, 1270, - - 1271, 0, 1268, 0, 1275, 1265, 1278, 1280, 1276, 1281, - 1259, 1270, 1263, 1273, 1265, 1266, 1266, 1282, 1271, 1290, - 1268, 1268, 1281, 1283, 1267, 1273, 1270, 1271, 1275, 1268, - 1276, 1275, 1277, 1278, 1280, 1276, 1281, 1285, 1283, 1277, - 1284, 0, 1286, 1282, 1282, 1285, 1290, 1288, 1289, 1291, - 1283, 1292, 1293, 1284, 1294, 1295, 1297, 0, 1292, 1277, - 0, 1296, 1295, 1298, 1285, 1293, 1302, 1284, 1286, 1286, - 1288, 1291, 1289, 1301, 1288, 1289, 1291, 1294, 1292, 1293, - 1300, 1294, 1295, 1296, 1298, 1303, 1304, 1297, 1296, 1307, - 1298, 1300, 1311, 1315, 1317, 1301, 1314, 1302, 1319, 1320, - - 1301, 1322, 1327, 1321, 1303, 1323, 1322, 1300, 1325, 0, - 1331, 1304, 1303, 1304, 1321, 1307, 1307, 1333, 1314, 1311, - 1315, 1317, 1328, 1314, 1329, 1320, 1320, 1323, 1322, 1319, - 1321, 1328, 1323, 1327, 1334, 1325, 1329, 1331, 1336, 1333, - 1335, 1337, 1338, 1339, 1333, 1341, 0, 1340, 1342, 1328, - 0, 1329, 1347, 1335, 1341, 1345, 1343, 1346, 1344, 1334, - 1336, 1334, 1340, 1342, 1346, 1336, 0, 1335, 1337, 1338, - 1339, 1343, 1341, 1344, 1340, 1342, 1348, 1345, 1351, 1347, - 1349, 1349, 1345, 1343, 1346, 1344, 1350, 1352, 1353, 1354, - 1352, 1355, 1351, 1350, 1348, 1356, 1355, 1357, 1354, 1358, - - 1359, 1353, 1362, 1348, 1371, 1351, 0, 1349, 0, 1362, - 1369, 1363, 1366, 1350, 1352, 1353, 1354, 1356, 1355, 1357, - 1363, 1373, 1356, 1364, 1357, 1365, 1358, 1359, 1364, 1362, - 1366, 1371, 1365, 1367, 1368, 1372, 1369, 1369, 1363, 1366, - 1367, 1373, 1374, 1368, 1379, 1380, 1375, 1376, 1373, 0, - 1364, 1378, 1365, 1372, 1374, 1375, 1376, 1377, 1381, 1378, - 1367, 1368, 1372, 1382, 1383, 1390, 1391, 1381, 1377, 1374, - 1384, 1379, 1383, 1375, 1376, 1382, 1380, 1384, 1378, 1386, - 1395, 1389, 1392, 1396, 1377, 1381, 1393, 1386, 1389, 1390, - 1382, 1383, 1390, 1391, 1392, 1393, 1399, 1384, 1397, 1401, - - 1402, 0, 1406, 1395, 1408, 0, 1386, 1395, 1389, 1392, - 1396, 1400, 1397, 1393, 1409, 1407, 1411, 1410, 1412, 1400, - 1407, 1414, 1408, 1399, 1411, 1397, 1401, 1402, 1406, 1406, - 1415, 1408, 1416, 1414, 1417, 1418, 1409, 1412, 1400, 1410, - 1419, 1409, 1407, 1411, 1410, 1412, 1417, 1420, 1414, 1421, - 1422, 1426, 1415, 1423, 1416, 0, 1427, 1415, 0, 1416, - 1430, 1417, 1418, 1428, 1432, 0, 1429, 1419, 1435, 1431, - 0, 1421, 1430, 0, 1433, 0, 1421, 1422, 1420, 1427, - 1423, 1438, 1426, 1427, 1429, 1428, 1432, 1430, 1431, 1433, - 1428, 1432, 1435, 1429, 1436, 1435, 1431, 1437, 1439, 1438, - - 1440, 1433, 1441, 1436, 1443, 1446, 1444, 1445, 1438, 1448, - 1447, 1437, 1443, 1444, 0, 1445, 1439, 1450, 1454, 1449, - 1441, 1436, 1452, 1458, 1437, 1439, 1440, 1440, 1447, 1441, - 1454, 1443, 1446, 1444, 1445, 1456, 1448, 1447, 1449, 1450, - 1452, 1453, 1469, 1462, 1450, 1454, 1449, 1461, 1463, 1452, - 1458, 1464, 1465, 1466, 1461, 1453, 1467, 1470, 1468, 1471, - 1474, 1456, 1456, 1475, 0, 1467, 1483, 0, 1453, 1462, - 1462, 1468, 1463, 1469, 1461, 1463, 0, 1479, 1464, 1465, - 1466, 1474, 1471, 1467, 1470, 1468, 1471, 1474, 1478, 1478, - 1481, 1480, 1482, 1483, 1475, 1484, 1489, 1481, 1478, 1479, - - 1480, 1485, 1486, 1484, 1479, 1482, 1487, 1489, 1488, 1490, - 1486, 1492, 1492, 1500, 1491, 1478, 1478, 1481, 1480, 1482, - 1485, 1491, 1484, 1489, 1493, 1497, 0, 1501, 1485, 1486, - 1494, 1490, 1487, 1487, 1488, 1488, 1490, 1494, 1492, 1495, - 1500, 1491, 1493, 1502, 1499, 1503, 1495, 1504, 1507, 1497, - 1501, 1493, 1497, 1499, 1501, 1506, 1508, 1494, 1508, 1503, - 1513, 1502, 1512, 1507, 0, 1504, 1495, 1514, 1516, 1522, - 1502, 1499, 1503, 1506, 1504, 1507, 1520, 1523, 1517, 1523, - 1524, 1518, 1506, 1508, 1512, 1514, 1513, 1513, 1518, 1512, - 1516, 1519, 1521, 1528, 1514, 1516, 1517, 1519, 1520, 1527, - - 1522, 1521, 1526, 1520, 1523, 1517, 1530, 1524, 1518, 1529, - 1526, 1527, 1531, 1532, 1536, 1533, 1534, 1537, 1519, 1521, - 1528, 1532, 1538, 1531, 1530, 1537, 1527, 1535, 1535, 1526, - 1539, 1541, 1529, 1530, 1533, 1543, 1529, 1544, 1534, 1531, - 1532, 1536, 1533, 1534, 1537, 1546, 1542, 1547, 0, 1538, - 1544, 1545, 1539, 1542, 1535, 1548, 1545, 1539, 1541, 1550, - 1549, 1543, 1543, 1548, 1544, 1551, 1550, 1554, 1552, 1553, - 1556, 1555, 1546, 1542, 1547, 1549, 1553, 1558, 1545, 1555, - 1557, 1557, 1548, 1552, 1560, 1561, 1550, 1549, 1563, 1554, - 1557, 1566, 1551, 1561, 1554, 1552, 1553, 1565, 1555, 1567, - - 1564, 1556, 1568, 1569, 1558, 1571, 1575, 1557, 1557, 1573, - 1563, 1560, 1561, 1564, 1577, 1563, 1576, 1578, 1566, 1565, - 1582, 1581, 1586, 1583, 1565, 1569, 1567, 1564, 0, 1568, - 1569, 1585, 1571, 1575, 1576, 1573, 1573, 1586, 1591, 1578, - 1581, 1577, 1587, 1576, 1578, 1583, 1588, 1582, 1581, 1586, - 1583, 1587, 1594, 1585, 1589, 1589, 1590, 1588, 1585, 1594, - 1591, 1595, 1590, 1596, 1589, 1591, 1597, 1601, 1603, 1587, - 1607, 1605, 1611, 1588, 1608, 1612, 1610, 0, 1613, 1594, - 1613, 1589, 1589, 1590, 1605, 1610, 1608, 1616, 1595, 1597, - 1596, 1603, 1614, 1597, 1601, 1603, 1617, 1607, 1605, 1611, - - 1615, 1608, 1612, 1610, 1614, 1613, 1615, 1618, 1619, 1616, - 1622, 1624, 1625, 1627, 1616, 1618, 1628, 1631, 1617, 1614, - 1632, 0, 1633, 1617, 1634, 0, 0, 1615, 1627, 1641, - 1636, 0, 1634, 1632, 1618, 1619, 1635, 1622, 1624, 1625, - 1627, 1636, 1628, 1628, 1633, 1635, 1642, 1632, 1631, 1633, - 1643, 1634, 1641, 1642, 1644, 1646, 1641, 1636, 1645, 1647, - 1648, 1647, 1644, 1635, 1643, 1649, 1646, 1645, 1651, 1652, - 1650, 1654, 1648, 1642, 1653, 1655, 1653, 1643, 1660, 1661, - 1656, 1644, 1646, 1654, 0, 1645, 1647, 1648, 1650, 1663, - 1651, 1652, 1649, 1656, 1659, 1651, 1652, 1650, 1654, 1658, - - 1662, 1653, 1659, 1663, 1664, 1665, 1655, 1656, 1670, 1660, - 1661, 1658, 1664, 1662, 1666, 1667, 1663, 1669, 1665, 1668, - 1672, 1659, 1666, 1671, 1678, 1669, 1658, 1662, 1672, 1667, - 1670, 1664, 1665, 1668, 1673, 1670, 1674, 1675, 1679, 0, - 1676, 1666, 1667, 1677, 1669, 1671, 1668, 1672, 1680, 1681, - 1671, 1677, 1683, 1691, 0, 1678, 0, 1681, 1674, 1675, - 1673, 1673, 1676, 1674, 1675, 1679, 1682, 1676, 1680, 1684, - 1677, 1685, 1687, 1688, 1682, 1680, 1681, 1684, 1689, 1691, - 1691, 1688, 1692, 1683, 1693, 1685, 1689, 1690, 0, 1694, - 0, 1695, 1693, 1682, 1687, 0, 1684, 1696, 1685, 1687, - - 1688, 1690, 1697, 1699, 1692, 1689, 1700, 1701, 0, 1692, - 1703, 1693, 1698, 1702, 1690, 1694, 1694, 1695, 1695, 1696, - 1698, 1702, 1697, 1704, 1696, 1706, 1700, 1701, 1708, 1697, - 1699, 1704, 1703, 1700, 1701, 1707, 1708, 1703, 1709, 1698, - 1702, 1710, 1714, 1711, 1715, 1712, 1709, 1706, 1713, 1716, - 1704, 1711, 1706, 1712, 1717, 1708, 0, 1707, 1718, 0, - 1720, 1723, 1707, 1726, 1715, 1709, 1727, 1710, 1710, 1714, - 1711, 1715, 1712, 0, 1713, 1713, 1716, 0, 1718, 0, - 0, 1717, 1720, 1723, 1724, 1718, 1725, 1720, 1723, 0, - 1726, 0, 1724, 1727, 1725, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1724, 0, 1725, 1731, 1731, 1731, 1731, 1731, 1731, - 1731, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1733, 1733, - 1733, 1733, 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734, - 1734, 1734, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1737, - 1737, 0, 1737, 1737, 1737, 1737, 1738, 1738, 0, 0, - 0, 1738, 1738, 1739, 1739, 0, 0, 1739, 0, 1739, - 1740, 0, 0, 0, 0, 0, 1740, 1741, 1741, 0, - 0, 0, 1741, 1741, 1742, 0, 0, 0, 0, 0, - 1742, 1743, 1743, 0, 1743, 1743, 1743, 1743, 1744, 1744, - - 0, 1744, 1744, 1744, 1744, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, - 1730 + 26, 30, 75, 31, 26, 74, 37, 26, 22, 30, + 30, 37, 138, 22, 26, 32, 26, 22, 30, 31, + 22, 65, 22, 22, 30, 31, 31, 34, 30, 74, + 31, 34, 74, 127, 65, 36, 138, 36, 125, 138, + 55, 34, 55, 55, 34, 55, 31, 33, 65, 67, + 82, 33, 36, 34, 34, 82, 78, 33, 34, 38, + 33, 36, 36, 38, 36, 78, 35, 33, 34, 33, + 66, 34, 66, 66, 33, 66, 35, 82, 33, 36, + 35, 35, 61, 78, 33, 38, 38, 33, 35, 76, + + 38, 56, 51, 35, 33, 63, 76, 63, 63, 68, + 63, 68, 68, 35, 68, 84, 77, 35, 35, 68, + 71, 79, 71, 71, 80, 71, 76, 81, 86, 77, + 71, 85, 84, 83, 79, 86, 81, 91, 87, 80, + 77, 83, 63, 77, 85, 89, 84, 87, 79, 90, + 91, 80, 88, 93, 81, 86, 77, 71, 85, 84, + 83, 88, 94, 92, 91, 87, 92, 50, 89, 45, + 94, 90, 89, 96, 95, 97, 90, 96, 97, 88, + 92, 40, 98, 99, 93, 100, 14, 92, 102, 94, + 92, 104, 13, 92, 95, 98, 95, 96, 104, 101, + + 96, 95, 97, 103, 96, 100, 99, 92, 102, 98, + 99, 105, 100, 101, 106, 102, 107, 103, 104, 111, + 105, 95, 109, 108, 110, 107, 101, 108, 112, 109, + 103, 110, 115, 111, 113, 114, 0, 106, 105, 117, + 112, 106, 113, 107, 114, 108, 111, 118, 211, 109, + 108, 110, 116, 119, 108, 112, 118, 121, 123, 117, + 242, 113, 114, 115, 119, 117, 117, 116, 122, 120, + 0, 140, 124, 123, 118, 120, 0, 211, 121, 116, + 119, 124, 121, 148, 121, 123, 117, 242, 139, 130, + 122, 130, 130, 0, 130, 122, 120, 142, 135, 124, + + 135, 135, 140, 135, 136, 121, 136, 136, 141, 136, + 139, 143, 146, 144, 148, 139, 142, 146, 149, 143, + 141, 145, 152, 147, 142, 144, 151, 154, 145, 153, + 152, 154, 155, 160, 157, 141, 156, 0, 143, 149, + 144, 136, 160, 146, 146, 147, 149, 157, 145, 152, + 147, 153, 151, 151, 154, 155, 153, 165, 156, 155, + 160, 157, 158, 156, 161, 159, 149, 150, 159, 163, + 164, 0, 150, 0, 158, 166, 163, 150, 168, 162, + 159, 164, 0, 150, 150, 171, 161, 0, 165, 158, + 150, 161, 159, 167, 150, 159, 163, 164, 162, 150, + + 169, 166, 166, 167, 150, 162, 162, 170, 173, 168, + 150, 150, 174, 170, 172, 175, 171, 176, 169, 177, + 0, 178, 0, 182, 167, 162, 179, 169, 178, 190, + 167, 176, 180, 181, 170, 175, 172, 180, 188, 173, + 177, 172, 175, 174, 176, 182, 177, 179, 178, 183, + 182, 184, 181, 179, 190, 185, 190, 186, 184, 180, + 181, 183, 186, 187, 187, 191, 189, 192, 195, 188, + 0, 0, 187, 189, 194, 193, 183, 185, 184, 197, + 198, 196, 185, 193, 186, 191, 202, 201, 204, 194, + 187, 187, 191, 189, 195, 195, 199, 198, 192, 203, + + 200, 194, 193, 196, 205, 198, 201, 198, 200, 206, + 197, 199, 196, 207, 201, 209, 205, 202, 206, 204, + 208, 203, 208, 199, 198, 210, 203, 200, 212, 215, + 196, 205, 207, 213, 214, 0, 206, 219, 216, 209, + 207, 215, 209, 217, 220, 214, 218, 208, 221, 223, + 222, 210, 210, 0, 212, 212, 215, 220, 225, 213, + 213, 214, 216, 228, 218, 216, 217, 225, 219, 224, + 217, 220, 222, 218, 221, 221, 224, 222, 226, 227, + 223, 230, 229, 231, 226, 225, 232, 233, 234, 228, + 228, 229, 231, 227, 287, 287, 224, 236, 237, 235, + + 236, 232, 0, 0, 230, 226, 227, 236, 230, 229, + 231, 238, 234, 232, 235, 234, 237, 238, 233, 239, + 240, 243, 246, 287, 236, 237, 235, 236, 241, 241, + 245, 244, 247, 239, 244, 240, 248, 254, 238, 252, + 246, 244, 245, 249, 261, 243, 239, 240, 243, 246, + 247, 250, 251, 241, 252, 241, 241, 245, 244, 247, + 253, 244, 255, 248, 251, 249, 252, 253, 254, 255, + 249, 256, 257, 258, 257, 261, 260, 250, 250, 251, + 259, 264, 262, 259, 263, 259, 258, 253, 264, 255, + 263, 259, 266, 256, 260, 276, 257, 267, 256, 257, + + 258, 257, 265, 260, 262, 266, 270, 259, 264, 262, + 259, 263, 259, 267, 265, 268, 0, 281, 270, 266, + 271, 267, 273, 274, 267, 272, 276, 275, 268, 265, + 273, 272, 277, 270, 275, 274, 277, 0, 271, 278, + 267, 284, 268, 269, 269, 0, 278, 271, 281, 273, + 274, 279, 272, 269, 275, 269, 269, 269, 282, 277, + 269, 280, 283, 279, 286, 282, 278, 288, 269, 301, + 269, 269, 284, 280, 288, 283, 292, 0, 279, 285, + 269, 289, 269, 269, 269, 282, 286, 269, 280, 283, + 285, 286, 289, 290, 288, 293, 291, 295, 294, 296, + + 301, 292, 0, 292, 290, 298, 285, 294, 289, 291, + 295, 297, 296, 299, 302, 300, 306, 296, 293, 304, + 290, 303, 293, 291, 295, 294, 296, 298, 305, 297, + 306, 307, 298, 300, 308, 302, 299, 311, 297, 296, + 299, 302, 300, 306, 303, 304, 304, 309, 303, 310, + 305, 314, 311, 309, 312, 305, 313, 307, 307, 316, + 315, 0, 318, 319, 311, 308, 315, 310, 0, 319, + 0, 327, 320, 314, 309, 321, 310, 312, 314, 0, + 323, 312, 313, 313, 327, 316, 316, 315, 318, 318, + 319, 320, 328, 321, 322, 323, 325, 326, 327, 320, + + 329, 322, 321, 325, 326, 331, 330, 323, 332, 0, + 328, 333, 334, 0, 335, 0, 333, 332, 334, 328, + 336, 322, 329, 325, 326, 330, 337, 329, 0, 338, + 0, 346, 336, 330, 339, 332, 331, 335, 333, 334, + 338, 335, 339, 341, 342, 343, 348, 336, 337, 0, + 341, 344, 345, 337, 343, 342, 338, 346, 346, 345, + 0, 339, 340, 347, 0, 347, 0, 340, 349, 340, + 341, 342, 348, 348, 351, 344, 343, 340, 344, 345, + 349, 343, 350, 352, 354, 355, 351, 340, 340, 340, + 347, 352, 356, 353, 340, 349, 340, 350, 353, 358, + + 356, 351, 359, 355, 340, 357, 354, 361, 360, 350, + 352, 354, 355, 362, 340, 364, 361, 357, 363, 356, + 353, 365, 358, 360, 366, 367, 358, 362, 375, 368, + 369, 373, 357, 359, 361, 360, 365, 363, 374, 366, + 362, 368, 364, 376, 370, 363, 371, 370, 365, 367, + 371, 366, 367, 372, 369, 370, 368, 369, 373, 375, + 377, 378, 379, 380, 384, 374, 382, 372, 379, 0, + 376, 370, 381, 383, 370, 385, 386, 371, 0, 387, + 372, 388, 385, 393, 390, 380, 384, 377, 0, 379, + 380, 384, 378, 395, 388, 381, 383, 382, 394, 381, + + 383, 387, 385, 391, 389, 392, 387, 386, 388, 389, + 390, 390, 391, 389, 393, 396, 394, 395, 392, 397, + 395, 398, 399, 400, 401, 394, 402, 0, 389, 404, + 391, 389, 392, 403, 400, 398, 389, 396, 396, 401, + 389, 397, 396, 405, 399, 408, 397, 406, 398, 399, + 400, 401, 407, 404, 403, 409, 404, 402, 408, 0, + 403, 407, 410, 411, 396, 415, 412, 405, 414, 406, + 405, 413, 408, 416, 406, 413, 418, 417, 419, 407, + 418, 0, 414, 421, 410, 422, 409, 411, 412, 410, + 411, 416, 417, 412, 422, 414, 415, 426, 420, 427, + + 416, 417, 413, 419, 417, 419, 420, 418, 421, 423, + 421, 428, 422, 424, 431, 425, 435, 427, 423, 417, + 426, 424, 425, 428, 426, 420, 427, 430, 429, 0, + 433, 0, 435, 432, 0, 434, 423, 429, 428, 430, + 424, 432, 425, 435, 436, 431, 441, 440, 437, 439, + 442, 0, 446, 438, 430, 429, 433, 433, 434, 437, + 432, 438, 434, 439, 443, 444, 436, 440, 441, 445, + 442, 436, 446, 441, 440, 437, 439, 442, 445, 446, + 438, 447, 448, 449, 451, 0, 443, 444, 450, 456, + 453, 443, 444, 0, 452, 448, 445, 459, 453, 447, + + 452, 454, 474, 457, 460, 449, 459, 451, 447, 448, + 449, 451, 450, 461, 458, 450, 453, 453, 496, 454, + 456, 452, 461, 460, 459, 453, 457, 465, 454, 458, + 457, 460, 462, 474, 462, 468, 472, 0, 471, 465, + 461, 458, 477, 473, 480, 468, 476, 0, 478, 496, + 478, 477, 479, 497, 465, 508, 471, 472, 481, 462, + 463, 0, 468, 472, 463, 471, 473, 463, 476, 477, + 473, 480, 482, 476, 463, 478, 479, 463, 481, 479, + 483, 0, 463, 484, 497, 481, 508, 463, 485, 0, + 0, 463, 483, 488, 463, 0, 0, 486, 482, 482, + + 488, 463, 491, 0, 463, 475, 475, 483, 475, 484, + 484, 475, 485, 487, 492, 485, 475, 489, 490, 486, + 488, 487, 475, 475, 486, 489, 492, 493, 491, 491, + 494, 475, 475, 475, 495, 475, 493, 490, 475, 498, + 487, 492, 503, 475, 489, 490, 499, 502, 504, 475, + 475, 500, 494, 501, 493, 506, 502, 494, 507, 533, + 0, 495, 512, 498, 503, 511, 498, 499, 504, 503, + 500, 505, 501, 499, 502, 504, 509, 507, 500, 505, + 501, 513, 506, 511, 509, 507, 512, 514, 515, 512, + 533, 518, 511, 516, 513, 0, 520, 518, 505, 519, + + 515, 516, 520, 509, 521, 522, 524, 525, 513, 523, + 522, 521, 529, 514, 514, 515, 523, 516, 518, 527, + 516, 519, 528, 520, 524, 529, 519, 527, 516, 526, + 525, 521, 522, 524, 525, 531, 523, 530, 526, 529, + 528, 532, 531, 534, 535, 536, 527, 0, 537, 528, + 540, 538, 541, 536, 532, 539, 526, 542, 530, 545, + 543, 539, 531, 537, 530, 544, 0, 535, 532, 543, + 547, 535, 536, 538, 534, 537, 540, 540, 538, 544, + 548, 542, 539, 541, 542, 550, 546, 543, 549, 553, + 545, 551, 544, 546, 554, 552, 0, 547, 552, 551, + + 549, 554, 553, 556, 0, 557, 0, 548, 550, 0, + 0, 563, 550, 546, 571, 549, 553, 557, 551, 0, + 0, 554, 552, 555, 560, 555, 556, 559, 0, 555, + 556, 555, 557, 558, 563, 558, 555, 564, 563, 559, + 561, 555, 562, 566, 0, 571, 560, 555, 0, 564, + 555, 560, 555, 561, 559, 562, 555, 570, 555, 567, + 558, 565, 569, 555, 564, 566, 573, 561, 555, 562, + 566, 565, 567, 568, 574, 569, 576, 575, 570, 568, + 572, 573, 577, 565, 570, 572, 567, 572, 565, 569, + 575, 576, 579, 573, 578, 582, 574, 580, 565, 585, + + 568, 574, 583, 576, 575, 572, 572, 572, 577, 577, + 580, 579, 572, 586, 572, 581, 578, 588, 587, 579, + 590, 578, 582, 581, 580, 583, 587, 589, 590, 583, + 585, 588, 572, 592, 595, 591, 594, 586, 598, 596, + 586, 595, 581, 608, 588, 587, 591, 590, 593, 589, + 597, 592, 596, 607, 589, 601, 593, 600, 594, 602, + 592, 595, 591, 594, 601, 600, 596, 603, 597, 598, + 604, 602, 606, 605, 608, 593, 614, 597, 613, 607, + 607, 611, 601, 614, 600, 611, 602, 609, 0, 603, + 606, 617, 604, 612, 603, 605, 612, 604, 615, 606, + + 605, 609, 613, 614, 616, 613, 619, 618, 620, 624, + 615, 616, 611, 618, 609, 617, 621, 623, 617, 612, + 612, 622, 625, 612, 0, 615, 0, 627, 619, 0, + 620, 616, 622, 619, 618, 620, 624, 621, 623, 629, + 625, 626, 631, 621, 623, 630, 628, 629, 622, 625, + 626, 627, 630, 632, 627, 628, 631, 633, 634, 635, + 636, 638, 637, 639, 641, 0, 629, 634, 626, 631, + 640, 0, 630, 628, 0, 632, 636, 637, 644, 633, + 632, 647, 640, 635, 633, 634, 635, 636, 642, 637, + 643, 641, 638, 644, 639, 646, 642, 640, 648, 647, + + 649, 652, 649, 643, 646, 644, 648, 653, 647, 654, + 655, 656, 666, 657, 652, 642, 654, 643, 659, 653, + 660, 658, 646, 0, 661, 648, 662, 649, 652, 663, + 0, 659, 664, 660, 653, 657, 654, 663, 662, 666, + 657, 655, 656, 658, 664, 659, 661, 660, 658, 665, + 668, 661, 667, 662, 670, 669, 663, 665, 0, 664, + 673, 667, 669, 671, 672, 674, 675, 0, 676, 0, + 678, 668, 677, 673, 679, 675, 665, 668, 678, 667, + 670, 670, 669, 685, 672, 671, 676, 673, 681, 674, + 671, 672, 674, 675, 677, 676, 679, 678, 680, 677, + + 682, 679, 683, 685, 684, 686, 680, 688, 0, 687, + 685, 681, 689, 688, 683, 681, 684, 687, 682, 690, + 686, 689, 697, 691, 693, 680, 692, 682, 695, 683, + 696, 684, 686, 692, 688, 691, 687, 698, 699, 689, + 690, 697, 693, 696, 698, 702, 690, 701, 700, 697, + 691, 693, 700, 692, 703, 701, 705, 696, 704, 695, + 699, 0, 706, 0, 698, 699, 0, 709, 703, 707, + 708, 702, 702, 0, 701, 713, 704, 710, 711, 700, + 714, 703, 0, 715, 713, 704, 712, 705, 706, 706, + 716, 707, 708, 709, 709, 710, 707, 708, 717, 712, + + 711, 718, 713, 719, 710, 711, 718, 720, 718, 722, + 718, 714, 716, 712, 715, 723, 725, 716, 732, 718, + 725, 717, 724, 720, 728, 717, 726, 723, 718, 719, + 719, 724, 722, 718, 720, 718, 722, 718, 727, 726, + 734, 729, 723, 728, 733, 732, 727, 725, 730, 724, + 731, 728, 731, 726, 729, 736, 733, 730, 737, 739, + 741, 738, 742, 740, 743, 727, 744, 734, 729, 738, + 740, 733, 745, 744, 747, 730, 746, 731, 748, 736, + 737, 750, 736, 749, 742, 737, 739, 741, 738, 742, + 740, 743, 749, 744, 745, 746, 747, 751, 753, 745, + + 754, 747, 750, 746, 748, 748, 755, 756, 750, 757, + 749, 0, 758, 760, 759, 761, 763, 751, 765, 762, + 758, 0, 761, 762, 751, 765, 767, 757, 755, 753, + 759, 754, 768, 755, 766, 767, 757, 764, 756, 758, + 760, 759, 761, 764, 769, 765, 762, 763, 771, 766, + 764, 769, 770, 767, 770, 772, 773, 771, 768, 768, + 773, 766, 774, 776, 764, 779, 778, 776, 777, 781, + 764, 769, 0, 0, 780, 771, 782, 772, 0, 770, + 783, 0, 772, 773, 774, 778, 777, 780, 787, 774, + 779, 789, 779, 778, 776, 777, 783, 784, 789, 782, + + 781, 780, 786, 782, 788, 784, 793, 783, 785, 785, + 787, 786, 791, 788, 790, 787, 794, 792, 789, 793, + 795, 791, 796, 797, 784, 792, 798, 800, 794, 786, + 796, 788, 795, 793, 799, 785, 800, 790, 803, 791, + 801, 790, 805, 794, 792, 797, 798, 795, 802, 796, + 797, 804, 806, 798, 800, 807, 799, 804, 801, 803, + 802, 799, 808, 810, 805, 803, 813, 801, 811, 805, + 812, 816, 814, 0, 817, 802, 818, 811, 804, 813, + 814, 815, 817, 806, 818, 815, 807, 821, 808, 808, + 810, 822, 812, 813, 820, 811, 0, 812, 816, 814, + + 827, 817, 820, 818, 819, 819, 830, 823, 821, 824, + 825, 826, 815, 827, 821, 823, 829, 824, 825, 826, + 828, 820, 822, 832, 831, 833, 828, 827, 829, 843, + 834, 819, 830, 830, 823, 835, 824, 825, 826, 831, + 0, 839, 836, 829, 834, 832, 836, 828, 833, 838, + 832, 831, 833, 835, 0, 840, 838, 834, 841, 836, + 843, 847, 835, 842, 849, 845, 851, 836, 839, 836, + 842, 848, 853, 836, 845, 0, 838, 840, 855, 0, + 856, 841, 840, 847, 857, 841, 836, 858, 847, 858, + 842, 859, 845, 851, 860, 849, 857, 848, 848, 853, + + 861, 862, 855, 863, 859, 855, 856, 856, 864, 866, + 863, 857, 861, 0, 858, 865, 860, 867, 859, 869, + 865, 860, 873, 868, 871, 866, 872, 861, 862, 877, + 863, 868, 874, 871, 864, 864, 866, 0, 875, 872, + 867, 869, 865, 879, 867, 875, 869, 877, 873, 873, + 868, 871, 880, 872, 874, 876, 877, 878, 881, 874, + 882, 883, 876, 884, 878, 875, 885, 882, 879, 888, + 879, 889, 888, 886, 880, 893, 884, 894, 891, 880, + 890, 0, 876, 895, 878, 891, 896, 882, 892, 881, + 884, 892, 883, 885, 886, 890, 888, 889, 889, 894, + + 886, 895, 898, 892, 894, 891, 893, 890, 896, 897, + 895, 897, 892, 896, 899, 892, 900, 902, 892, 901, + 903, 905, 908, 0, 0, 902, 898, 903, 901, 898, + 892, 904, 907, 906, 909, 0, 897, 906, 913, 910, + 916, 0, 900, 900, 902, 899, 901, 903, 910, 908, + 911, 913, 905, 904, 907, 912, 909, 911, 904, 907, + 906, 909, 912, 914, 919, 913, 910, 915, 917, 918, + 919, 916, 922, 923, 0, 917, 918, 911, 914, 921, + 924, 915, 912, 924, 922, 928, 925, 929, 0, 936, + 914, 919, 931, 923, 915, 917, 918, 925, 924, 922, + + 923, 921, 930, 931, 932, 935, 921, 924, 933, 937, + 924, 929, 928, 925, 929, 934, 933, 940, 934, 931, + 936, 938, 932, 935, 930, 939, 940, 941, 938, 930, + 945, 932, 935, 934, 942, 933, 937, 944, 947, 939, + 941, 943, 934, 943, 940, 934, 944, 946, 938, 942, + 952, 954, 939, 948, 941, 0, 945, 945, 946, 949, + 947, 942, 949, 950, 944, 947, 953, 948, 943, 956, + 955, 957, 950, 958, 946, 953, 956, 949, 0, 948, + 948, 952, 954, 966, 962, 963, 949, 958, 0, 949, + 950, 955, 959, 953, 948, 964, 956, 955, 959, 963, + + 958, 965, 957, 962, 964, 972, 967, 971, 975, 965, + 0, 962, 963, 970, 966, 968, 959, 967, 0, 959, + 970, 973, 964, 974, 968, 959, 975, 972, 965, 978, + 971, 979, 972, 967, 971, 975, 0, 976, 981, 977, + 970, 976, 968, 973, 979, 974, 982, 980, 973, 983, + 974, 977, 984, 981, 985, 988, 978, 983, 979, 986, + 990, 982, 992, 987, 976, 981, 977, 980, 986, 985, + 989, 993, 0, 982, 980, 996, 983, 994, 995, 998, + 992, 985, 988, 984, 987, 999, 986, 990, 997, 992, + 987, 998, 994, 996, 989, 1000, 1003, 989, 993, 1002, + + 995, 1004, 996, 997, 994, 995, 998, 999, 1000, 1001, + 1006, 1002, 999, 1000, 1005, 997, 1001, 1007, 1006, 1008, + 1005, 1009, 1000, 1003, 1007, 1010, 1002, 1011, 1009, 1013, + 1012, 1014, 1004, 1016, 1017, 1000, 1001, 1006, 1018, 1020, + 1019, 1005, 1019, 1017, 1007, 1021, 1008, 1022, 1009, 1024, + 0, 0, 1010, 1012, 1011, 1014, 1024, 1012, 1014, 1028, + 1013, 1017, 1029, 1025, 1016, 1028, 1020, 1019, 1027, 1018, + 1025, 1021, 1021, 1023, 1023, 1023, 1024, 1026, 1022, 1031, + 1023, 1027, 1030, 1030, 1026, 1032, 1028, 1035, 1023, 1029, + 1025, 1036, 1032, 1034, 0, 1027, 1037, 1038, 1039, 1039, + + 1023, 1023, 1023, 1036, 1026, 1031, 1031, 1023, 1040, 1030, + 1044, 1034, 1032, 1049, 1035, 1038, 1037, 1042, 1036, 1045, + 1034, 1041, 1041, 1037, 1038, 1039, 1046, 1047, 1042, 1048, + 1050, 1051, 1044, 1046, 1040, 1040, 1052, 1044, 1054, 0, + 1049, 1053, 1055, 1052, 1042, 1056, 1056, 1047, 1041, 1051, + 1045, 1055, 1050, 1046, 1047, 1057, 1053, 1050, 1051, 1058, + 1048, 1060, 1054, 1052, 1061, 1054, 1059, 1068, 1053, 1055, + 1063, 1058, 1056, 1060, 1059, 1065, 1062, 1066, 1069, 1064, + 0, 1057, 1057, 1066, 1064, 1061, 1058, 1067, 1060, 1071, + 1074, 1061, 1070, 1059, 1062, 1064, 1070, 1063, 1068, 1076, + + 1067, 1073, 1065, 1062, 1066, 1069, 1064, 1072, 1072, 1075, + 1077, 1064, 1079, 1078, 1067, 1078, 1073, 1081, 1082, 1086, + 1071, 1074, 1076, 1070, 1075, 1077, 1076, 1080, 1073, 1084, + 0, 1085, 1080, 1082, 1072, 1087, 1075, 1077, 1089, 1090, + 1078, 0, 1088, 1079, 1099, 1082, 1086, 1091, 1081, 1088, + 1094, 0, 1092, 1084, 1080, 1106, 1084, 1085, 1085, 1089, + 1096, 1090, 1087, 1098, 1101, 1089, 1090, 1102, 1091, 1088, + 1092, 1099, 1094, 1100, 1091, 1096, 1102, 1094, 1098, 1092, + 1100, 1103, 1101, 1104, 1107, 1105, 1106, 1096, 1109, 1103, + 1098, 1101, 1110, 1114, 1102, 1111, 1118, 1107, 1112, 1109, + + 1100, 1110, 1119, 1121, 1123, 1117, 1104, 1105, 1103, 1118, + 1104, 1107, 1105, 1111, 1109, 1109, 1112, 1117, 1120, 1110, + 1114, 1122, 1111, 1118, 1125, 1112, 1109, 1126, 1120, 1121, + 1121, 1123, 1117, 1119, 1126, 1127, 1129, 1128, 1130, 0, + 1133, 1131, 1129, 1132, 1125, 1120, 1122, 1137, 1122, 1143, + 1134, 1125, 1133, 1130, 1126, 1128, 1131, 1134, 1132, 1135, + 1138, 1127, 1127, 1129, 1128, 1130, 1135, 1133, 1131, 1137, + 1132, 1139, 1140, 1145, 1137, 1142, 1143, 1134, 1144, 1144, + 1139, 1146, 1147, 1149, 1151, 1138, 1135, 1138, 1142, 1148, + 1140, 1152, 1149, 1153, 1150, 1145, 1157, 1160, 1139, 1140, + + 1145, 1150, 1142, 0, 1147, 1144, 1146, 1158, 1146, 1147, + 1149, 1148, 1153, 1152, 1155, 1151, 1148, 1156, 1152, 1158, + 1153, 1150, 1155, 1157, 1159, 1161, 0, 0, 1160, 1162, + 1156, 1159, 1164, 1163, 1158, 1164, 1165, 1166, 1167, 0, + 0, 1155, 1173, 1172, 1156, 1169, 1170, 1161, 1163, 1173, + 1164, 1159, 1161, 1167, 1162, 1166, 1162, 1172, 1176, 1164, + 1163, 1165, 1164, 1165, 1166, 1167, 1174, 1169, 1170, 1173, + 1172, 1178, 1169, 1170, 1179, 1182, 1180, 1174, 1180, 1176, + 1184, 1181, 1183, 1185, 0, 1176, 1179, 1189, 1186, 1191, + 1187, 1185, 1178, 1174, 1190, 1194, 1191, 1196, 1178, 1181, + + 1183, 1179, 1182, 1180, 1188, 1195, 1200, 1184, 1181, 1183, + 1185, 1186, 1187, 1190, 1189, 1186, 1191, 1187, 1188, 1197, + 1198, 1190, 1194, 1195, 1196, 1199, 1201, 1203, 1200, 1203, + 1206, 1188, 1195, 1200, 1199, 1198, 1204, 1205, 1207, 1208, + 1209, 1205, 1206, 1210, 1212, 1197, 1197, 1198, 1208, 1211, + 0, 1209, 1199, 1201, 1203, 1213, 1212, 1206, 1204, 1224, + 1207, 1214, 1214, 1204, 1205, 1207, 1208, 1209, 1225, 1220, + 1210, 1212, 1211, 1215, 1217, 1220, 1211, 1213, 1217, 1219, + 1218, 1215, 1213, 1218, 1221, 1222, 1224, 1219, 1214, 1226, + 1228, 1222, 1225, 1229, 1230, 1225, 1220, 1227, 1231, 1221, + + 1215, 1217, 1233, 1226, 1228, 1234, 1219, 1218, 1232, 1235, + 1227, 1221, 1222, 1237, 1238, 1236, 1226, 1228, 1239, 1229, + 1229, 1230, 1232, 1236, 1227, 1231, 1239, 1241, 1242, 1233, + 1243, 1244, 1234, 0, 1245, 1232, 1235, 1248, 1243, 1246, + 1237, 1238, 1236, 1245, 1247, 1239, 1249, 1250, 1251, 1241, + 1252, 1257, 1248, 1256, 1241, 1242, 1251, 1243, 1244, 1250, + 1246, 1245, 0, 1248, 1248, 1254, 1246, 1259, 1247, 1254, + 1255, 1247, 1261, 1249, 1250, 1251, 1256, 1252, 1257, 1248, + 1256, 1258, 1255, 1260, 1260, 1262, 1263, 1264, 1265, 1258, + 1265, 1266, 1254, 1270, 1259, 1268, 1267, 1255, 1261, 1261, + + 0, 1263, 1267, 1262, 1269, 1266, 1271, 1273, 1258, 1264, + 1260, 1270, 1262, 1263, 1264, 1265, 1269, 1268, 1266, 1272, + 1270, 1274, 1268, 1267, 1271, 1278, 1280, 1276, 0, 1279, + 0, 1269, 1272, 1271, 1276, 1283, 0, 1281, 1273, 0, + 1284, 1291, 1288, 1278, 1274, 1281, 1272, 1283, 1274, 1289, + 1286, 1293, 1278, 1290, 1276, 1279, 1279, 1280, 1284, 1295, + 1290, 1294, 1283, 1281, 1281, 1286, 1288, 1284, 1291, 1288, + 1297, 1289, 1281, 1298, 1294, 1296, 1289, 1286, 1293, 1299, + 1290, 1298, 1303, 1297, 1301, 1295, 1295, 0, 1294, 1302, + 1296, 1305, 1304, 1309, 1307, 1306, 1308, 1297, 1305, 1310, + + 1298, 1313, 1296, 1308, 1311, 1299, 1299, 1301, 1306, 1303, + 1314, 1301, 1313, 1302, 1304, 1309, 1302, 1307, 1305, 1304, + 1309, 1307, 1306, 1308, 1315, 1311, 1316, 1317, 1313, 1324, + 1310, 1311, 1314, 1320, 1328, 1327, 1330, 1314, 1332, 1333, + 1334, 1335, 1341, 0, 1339, 1316, 1335, 0, 1336, 1338, + 1345, 1334, 1317, 1316, 1317, 1315, 1324, 1327, 1347, 1320, + 1320, 1328, 1327, 1330, 1338, 1333, 1333, 1334, 1335, 1332, + 1336, 1339, 1342, 1341, 1343, 1336, 1338, 1345, 1348, 1349, + 1347, 1342, 1350, 1351, 1352, 1347, 1343, 1353, 1355, 0, + 0, 1361, 1349, 1354, 1359, 0, 0, 1355, 1356, 1342, + + 0, 1343, 1357, 1348, 1350, 1348, 1349, 1358, 1354, 1350, + 1351, 1352, 1360, 1356, 1353, 1355, 1359, 1357, 1361, 1360, + 1354, 1359, 1358, 1362, 1364, 1356, 1363, 1363, 1365, 1357, + 1366, 1364, 1367, 1366, 1358, 1368, 1370, 1372, 1369, 1360, + 1373, 1362, 1365, 1369, 1368, 1367, 1371, 1376, 1385, 1379, + 1362, 1364, 1377, 1363, 1376, 1365, 1379, 1366, 1370, 1367, + 1380, 1377, 1368, 1370, 1372, 1369, 1378, 1373, 1371, 1383, + 1381, 1378, 1382, 1371, 1376, 1385, 1379, 1381, 1380, 1377, + 1386, 1382, 1387, 1389, 0, 1390, 1393, 1380, 1388, 1394, + 1391, 0, 1389, 1378, 1390, 1383, 1383, 1381, 1386, 1382, + + 1388, 1391, 1387, 1392, 1396, 1395, 1405, 1386, 0, 1387, + 1389, 1392, 1390, 1393, 1395, 1388, 1396, 1391, 1397, 1400, + 1394, 1398, 1403, 1404, 1406, 1407, 1397, 1400, 1398, 1403, + 1392, 1396, 1395, 1405, 1407, 1408, 1406, 1410, 1411, 1412, + 1414, 1416, 1417, 0, 1421, 1397, 1400, 1404, 1398, 1403, + 1404, 1406, 1407, 1412, 1422, 1415, 1423, 1424, 1408, 1422, + 1410, 1427, 1408, 1415, 1410, 1411, 1412, 1414, 1416, 1417, + 1421, 1421, 1425, 1430, 1423, 1429, 1431, 1426, 1432, 1424, + 1427, 1422, 1415, 1423, 1424, 1426, 1433, 1429, 1427, 1434, + 1432, 1435, 1436, 1437, 1425, 1430, 1438, 1441, 1431, 1425, + + 1430, 0, 1429, 1431, 1426, 1432, 1442, 1444, 1443, 1445, + 1447, 1448, 1446, 1433, 1436, 1451, 1434, 1450, 0, 1436, + 1437, 1445, 1435, 1438, 1451, 1444, 1448, 0, 1441, 1442, + 1443, 1446, 1447, 1442, 1444, 1443, 1445, 1447, 1448, 1446, + 1452, 1450, 1451, 1453, 1450, 1454, 0, 1455, 1456, 1458, + 1461, 1459, 1460, 1462, 1452, 1463, 0, 1458, 1459, 0, + 1460, 1453, 1464, 1454, 1465, 1467, 1456, 1452, 1472, 1474, + 1453, 1462, 1454, 1455, 1455, 1456, 1458, 1461, 1459, 1460, + 1462, 1464, 1463, 1467, 1468, 1469, 1465, 1470, 1480, 1464, + 1477, 1465, 1467, 1478, 1472, 1472, 1474, 1477, 1468, 1470, + + 1479, 1481, 1482, 1484, 1483, 1485, 1486, 1491, 1469, 0, + 0, 1468, 1469, 1483, 1470, 1480, 1484, 1477, 1487, 1478, + 1478, 1490, 1494, 1494, 1479, 1495, 1496, 1479, 1481, 1482, + 1484, 1483, 1494, 1486, 1499, 1496, 1485, 1497, 1491, 1501, + 1506, 1487, 1490, 1498, 1497, 1487, 1500, 1495, 1490, 1494, + 1494, 1502, 1495, 1496, 1500, 1503, 1498, 1504, 1501, 1502, + 1505, 1499, 1506, 1516, 1497, 1507, 1501, 1506, 1508, 1508, + 1498, 1505, 1507, 1500, 1513, 1509, 1515, 1517, 1502, 1510, + 1520, 1503, 1503, 1504, 1504, 1515, 1510, 1505, 0, 1511, + 1516, 1518, 1507, 1509, 1520, 1508, 1511, 1521, 1513, 1519, + + 1517, 1513, 1509, 1515, 1517, 1523, 1510, 1520, 1529, 1518, + 1524, 1519, 1525, 1531, 1525, 1521, 1511, 1530, 1518, 1533, + 1534, 1535, 1539, 1523, 1521, 1524, 1519, 1536, 1535, 1537, + 1529, 1531, 1523, 1536, 1541, 1529, 1538, 1524, 1534, 1525, + 1531, 1533, 1545, 1530, 1530, 1538, 1533, 1534, 1535, 1543, + 1540, 1537, 1540, 1539, 1536, 1544, 1537, 1543, 1546, 1548, + 1547, 1541, 1553, 1538, 1549, 1550, 1551, 1544, 1555, 1545, + 1548, 1554, 1549, 1552, 1552, 1556, 1543, 1540, 1547, 1554, + 1558, 1546, 1544, 1559, 1550, 1546, 1548, 1547, 1551, 1553, + 1559, 1549, 1550, 1551, 1561, 1555, 1562, 1556, 1554, 1560, + + 1552, 1563, 1556, 1560, 1564, 1565, 1563, 1558, 1566, 1562, + 1559, 1568, 1567, 1569, 1570, 1571, 1566, 1573, 1568, 1574, + 1561, 1561, 1571, 1562, 1572, 1573, 1560, 1567, 1563, 1570, + 1576, 1564, 1565, 1575, 1575, 1566, 1578, 1579, 1568, 1567, + 1569, 1570, 1571, 1575, 1573, 1579, 1572, 1581, 1583, 1582, + 1574, 1572, 1584, 1585, 1586, 1587, 1589, 1576, 1591, 1593, + 1575, 1575, 1582, 1578, 1579, 1594, 1596, 1601, 1597, 1581, + 1583, 1595, 1600, 0, 1581, 1583, 1582, 1587, 1594, 1584, + 1585, 1586, 1587, 1589, 1591, 1591, 1593, 1602, 1604, 1595, + 1597, 1600, 1594, 1596, 1601, 1597, 1605, 1606, 1595, 1600, + + 1610, 1607, 1609, 1608, 1608, 1614, 1606, 1615, 1609, 1602, + 1604, 1605, 1607, 1608, 1602, 1604, 1616, 1620, 1613, 1622, + 1624, 0, 1610, 1605, 1606, 1613, 1627, 1610, 1607, 1609, + 1608, 1608, 1614, 1631, 1615, 1625, 1632, 1628, 1633, 1616, + 1633, 1630, 1622, 1616, 1620, 1613, 1622, 1624, 1625, 1628, + 1630, 1635, 1636, 1627, 1634, 1637, 1639, 1635, 1642, 1638, + 1631, 1644, 1625, 1632, 1628, 1633, 1634, 1638, 1630, 1646, + 1652, 1649, 1648, 1654, 1636, 0, 1653, 1637, 1635, 1636, + 1657, 1634, 1637, 1639, 1655, 1642, 1638, 1648, 1644, 1653, + 1662, 1657, 1655, 1656, 1664, 1654, 1646, 1649, 1649, 1648, + + 1654, 1652, 1656, 1653, 1667, 1663, 1665, 1657, 1664, 1666, + 1670, 1655, 1663, 1662, 1665, 1667, 1669, 1662, 1666, 0, + 1656, 1664, 1668, 1671, 1668, 1672, 1673, 1674, 1669, 1674, + 1675, 1667, 1663, 1665, 1676, 0, 1666, 1670, 1681, 1679, + 1682, 1671, 1675, 1669, 0, 1677, 1683, 1672, 1673, 1668, + 1671, 1679, 1672, 1673, 1674, 1680, 1684, 1675, 1677, 1683, + 1685, 1686, 1688, 1680, 1689, 1676, 1679, 1687, 1685, 1681, + 1684, 1682, 1677, 1683, 1686, 1687, 1688, 1690, 1689, 1691, + 1692, 1695, 1680, 1684, 1693, 1690, 1694, 1685, 1686, 1688, + 1699, 1689, 1693, 1696, 1687, 1697, 1700, 1698, 1701, 1704, + + 0, 1691, 1692, 1695, 1690, 1698, 1691, 1692, 1695, 0, + 1708, 1693, 1694, 1694, 0, 1696, 0, 1697, 1701, 1702, + 1696, 1699, 1697, 1700, 1698, 1701, 1703, 1702, 1705, 1706, + 1704, 1709, 1708, 1710, 1703, 1711, 1705, 1708, 1712, 1709, + 1714, 1710, 1715, 1706, 1713, 0, 1702, 1716, 1714, 1711, + 1717, 0, 0, 1703, 1720, 1705, 1706, 0, 1709, 1718, + 1710, 0, 1711, 1721, 1712, 1712, 1713, 1714, 1715, 1715, + 1719, 1713, 1717, 1716, 1716, 1722, 1723, 1717, 1719, 1718, + 1725, 1720, 1724, 1721, 1723, 1729, 1718, 0, 1725, 1727, + 1721, 1728, 1730, 1729, 1731, 1722, 1735, 1719, 1732, 1737, + + 1730, 1734, 1722, 1723, 1724, 1738, 1732, 1725, 0, 1724, + 1736, 1727, 1729, 1728, 1733, 1739, 1727, 1741, 1728, 1730, + 1731, 1731, 1733, 1735, 1744, 1732, 1737, 1734, 1734, 1747, + 1736, 1748, 1738, 0, 0, 1739, 0, 1736, 0, 1741, + 1745, 1733, 1739, 0, 1741, 1746, 1744, 0, 1745, 0, + 0, 1744, 0, 1746, 0, 0, 1747, 0, 1748, 0, + 0, 0, 0, 0, 0, 0, 0, 1745, 0, 0, + 0, 0, 1746, 1752, 1752, 1752, 1752, 1752, 1752, 1752, + 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1754, 1754, 1754, + 1754, 1754, 1754, 1754, 1755, 1755, 1755, 1755, 1755, 1755, + + 1755, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1758, 1758, + 0, 1758, 1758, 1758, 1758, 1759, 1759, 0, 0, 0, + 1759, 1759, 1760, 1760, 0, 0, 1760, 0, 1760, 1761, + 0, 0, 0, 0, 0, 1761, 1762, 1762, 0, 0, + 0, 1762, 1762, 1763, 0, 0, 0, 0, 0, 1763, + 1764, 1764, 0, 1764, 1764, 1764, 1764, 1765, 1765, 0, + 1765, 1765, 1765, 1765, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, + 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751 } ; static yy_state_type yy_last_accepting_state; @@ -2270,6 +2289,10 @@ static void config_start_include_glob(const char* filename) #endif ; memset(&g, 0, sizeof(g)); + if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, + strlen(cfg_parser->chroot)) == 0) { + filename += strlen(cfg_parser->chroot); + } r = glob(filename, flags, NULL, &g); if(r) { /* some error */ @@ -2315,7 +2338,7 @@ static void config_end_include(void) #endif #define YY_NO_INPUT 1 -#line 177 "util/configlexer.lex" +#line 181 "util/configlexer.lex" #ifndef YY_NO_UNPUT #define YY_NO_UNPUT 1 #endif @@ -2323,7 +2346,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2325 "<stdout>" +#line 2348 "<stdout>" #define INITIAL 0 #define quotedstring 1 @@ -2508,9 +2531,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 197 "util/configlexer.lex" +#line 201 "util/configlexer.lex" -#line 2512 "<stdout>" +#line 2535 "<stdout>" if ( !(yy_init) ) { @@ -2569,13 +2592,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 >= 1731 ) + if ( yy_current_state >= 1752 ) 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] != 5006 ); + while ( yy_base[yy_current_state] != 5065 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2601,814 +2624,819 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 198 "util/configlexer.lex" +#line 202 "util/configlexer.lex" { LEXOUT(("SP ")); /* ignore */ } YY_BREAK case 2: YY_RULE_SETUP -#line 200 "util/configlexer.lex" +#line 204 "util/configlexer.lex" { /* note that flex makes the longest match and '.' is any but not nl */ LEXOUT(("comment(%s) ", yytext)); /* ignore */ } YY_BREAK case 3: YY_RULE_SETUP -#line 203 "util/configlexer.lex" +#line 207 "util/configlexer.lex" { YDVAR(0, VAR_SERVER) } YY_BREAK case 4: YY_RULE_SETUP -#line 204 "util/configlexer.lex" +#line 208 "util/configlexer.lex" { YDVAR(1, VAR_NUM_THREADS) } YY_BREAK case 5: YY_RULE_SETUP -#line 205 "util/configlexer.lex" +#line 209 "util/configlexer.lex" { YDVAR(1, VAR_VERBOSITY) } YY_BREAK case 6: YY_RULE_SETUP -#line 206 "util/configlexer.lex" +#line 210 "util/configlexer.lex" { YDVAR(1, VAR_PORT) } YY_BREAK case 7: YY_RULE_SETUP -#line 207 "util/configlexer.lex" +#line 211 "util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_RANGE) } YY_BREAK case 8: YY_RULE_SETUP -#line 208 "util/configlexer.lex" +#line 212 "util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } YY_BREAK case 9: YY_RULE_SETUP -#line 209 "util/configlexer.lex" +#line 213 "util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_PORT_AVOID) } YY_BREAK case 10: YY_RULE_SETUP -#line 210 "util/configlexer.lex" +#line 214 "util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_NUM_TCP) } YY_BREAK case 11: YY_RULE_SETUP -#line 211 "util/configlexer.lex" +#line 215 "util/configlexer.lex" { YDVAR(1, VAR_INCOMING_NUM_TCP) } YY_BREAK case 12: YY_RULE_SETUP -#line 212 "util/configlexer.lex" +#line 216 "util/configlexer.lex" { YDVAR(1, VAR_DO_IP4) } YY_BREAK case 13: YY_RULE_SETUP -#line 213 "util/configlexer.lex" +#line 217 "util/configlexer.lex" { YDVAR(1, VAR_DO_IP6) } YY_BREAK case 14: YY_RULE_SETUP -#line 214 "util/configlexer.lex" +#line 218 "util/configlexer.lex" { YDVAR(1, VAR_DO_UDP) } YY_BREAK case 15: YY_RULE_SETUP -#line 215 "util/configlexer.lex" +#line 219 "util/configlexer.lex" { YDVAR(1, VAR_DO_TCP) } YY_BREAK case 16: YY_RULE_SETUP -#line 216 "util/configlexer.lex" +#line 220 "util/configlexer.lex" { YDVAR(1, VAR_TCP_UPSTREAM) } YY_BREAK case 17: YY_RULE_SETUP -#line 217 "util/configlexer.lex" +#line 221 "util/configlexer.lex" { YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 18: YY_RULE_SETUP -#line 218 "util/configlexer.lex" +#line 222 "util/configlexer.lex" { YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 19: YY_RULE_SETUP -#line 219 "util/configlexer.lex" +#line 223 "util/configlexer.lex" { YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 20: YY_RULE_SETUP -#line 220 "util/configlexer.lex" +#line 224 "util/configlexer.lex" { YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 21: YY_RULE_SETUP -#line 221 "util/configlexer.lex" +#line 225 "util/configlexer.lex" { YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 22: YY_RULE_SETUP -#line 222 "util/configlexer.lex" +#line 226 "util/configlexer.lex" { YDVAR(1, VAR_INTERFACE) } YY_BREAK case 23: YY_RULE_SETUP -#line 223 "util/configlexer.lex" +#line 227 "util/configlexer.lex" { YDVAR(1, VAR_INTERFACE) } YY_BREAK case 24: YY_RULE_SETUP -#line 224 "util/configlexer.lex" +#line 228 "util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 25: YY_RULE_SETUP -#line 225 "util/configlexer.lex" +#line 229 "util/configlexer.lex" { YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 26: YY_RULE_SETUP -#line 226 "util/configlexer.lex" +#line 230 "util/configlexer.lex" { YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 27: YY_RULE_SETUP -#line 227 "util/configlexer.lex" +#line 231 "util/configlexer.lex" { YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 28: YY_RULE_SETUP -#line 228 "util/configlexer.lex" +#line 232 "util/configlexer.lex" { YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 29: YY_RULE_SETUP -#line 229 "util/configlexer.lex" +#line 233 "util/configlexer.lex" { YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 30: YY_RULE_SETUP -#line 230 "util/configlexer.lex" +#line 234 "util/configlexer.lex" { YDVAR(1, VAR_CHROOT) } YY_BREAK case 31: YY_RULE_SETUP -#line 231 "util/configlexer.lex" +#line 235 "util/configlexer.lex" { YDVAR(1, VAR_USERNAME) } YY_BREAK case 32: YY_RULE_SETUP -#line 232 "util/configlexer.lex" +#line 236 "util/configlexer.lex" { YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 33: YY_RULE_SETUP -#line 233 "util/configlexer.lex" +#line 237 "util/configlexer.lex" { YDVAR(1, VAR_LOGFILE) } YY_BREAK case 34: YY_RULE_SETUP -#line 234 "util/configlexer.lex" +#line 238 "util/configlexer.lex" { YDVAR(1, VAR_PIDFILE) } YY_BREAK case 35: YY_RULE_SETUP -#line 235 "util/configlexer.lex" +#line 239 "util/configlexer.lex" { YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 36: YY_RULE_SETUP -#line 236 "util/configlexer.lex" +#line 240 "util/configlexer.lex" { YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 37: YY_RULE_SETUP -#line 237 "util/configlexer.lex" +#line 241 "util/configlexer.lex" { YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 38: YY_RULE_SETUP -#line 238 "util/configlexer.lex" +#line 242 "util/configlexer.lex" { YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 39: YY_RULE_SETUP -#line 239 "util/configlexer.lex" +#line 243 "util/configlexer.lex" { YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 40: YY_RULE_SETUP -#line 240 "util/configlexer.lex" +#line 244 "util/configlexer.lex" { YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 41: YY_RULE_SETUP -#line 241 "util/configlexer.lex" +#line 245 "util/configlexer.lex" { YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 42: YY_RULE_SETUP -#line 242 "util/configlexer.lex" +#line 246 "util/configlexer.lex" { YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 43: YY_RULE_SETUP -#line 243 "util/configlexer.lex" +#line 247 "util/configlexer.lex" { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 44: YY_RULE_SETUP -#line 244 "util/configlexer.lex" +#line 248 "util/configlexer.lex" { YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 45: YY_RULE_SETUP -#line 245 "util/configlexer.lex" +#line 249 "util/configlexer.lex" { YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 46: YY_RULE_SETUP -#line 246 "util/configlexer.lex" +#line 250 "util/configlexer.lex" { YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 47: YY_RULE_SETUP -#line 247 "util/configlexer.lex" +#line 251 "util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 48: YY_RULE_SETUP -#line 248 "util/configlexer.lex" +#line 252 "util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 49: YY_RULE_SETUP -#line 249 "util/configlexer.lex" +#line 253 "util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 50: YY_RULE_SETUP -#line 250 "util/configlexer.lex" +#line 254 "util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 51: YY_RULE_SETUP -#line 251 "util/configlexer.lex" +#line 255 "util/configlexer.lex" { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 52: YY_RULE_SETUP -#line 252 "util/configlexer.lex" +#line 256 "util/configlexer.lex" { YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 53: YY_RULE_SETUP -#line 253 "util/configlexer.lex" +#line 257 "util/configlexer.lex" { YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 54: YY_RULE_SETUP -#line 254 "util/configlexer.lex" +#line 258 "util/configlexer.lex" { YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 55: YY_RULE_SETUP -#line 255 "util/configlexer.lex" +#line 259 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 56: YY_RULE_SETUP -#line 256 "util/configlexer.lex" +#line 260 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 57: YY_RULE_SETUP -#line 257 "util/configlexer.lex" +#line 261 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 58: YY_RULE_SETUP -#line 258 "util/configlexer.lex" +#line 262 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 59: YY_RULE_SETUP -#line 259 "util/configlexer.lex" +#line 263 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 60: YY_RULE_SETUP -#line 260 "util/configlexer.lex" +#line 264 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 61: YY_RULE_SETUP -#line 261 "util/configlexer.lex" +#line 265 "util/configlexer.lex" { YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 62: YY_RULE_SETUP -#line 262 "util/configlexer.lex" +#line 266 "util/configlexer.lex" { YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 63: YY_RULE_SETUP -#line 263 "util/configlexer.lex" +#line 267 "util/configlexer.lex" { YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 64: YY_RULE_SETUP -#line 264 "util/configlexer.lex" +#line 268 "util/configlexer.lex" { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 65: YY_RULE_SETUP -#line 265 "util/configlexer.lex" +#line 269 "util/configlexer.lex" { YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 66: YY_RULE_SETUP -#line 266 "util/configlexer.lex" +#line 270 "util/configlexer.lex" { YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 67: YY_RULE_SETUP -#line 267 "util/configlexer.lex" +#line 271 "util/configlexer.lex" { YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 68: YY_RULE_SETUP -#line 268 "util/configlexer.lex" +#line 272 "util/configlexer.lex" { YDVAR(1, VAR_PREFETCH) } YY_BREAK case 69: YY_RULE_SETUP -#line 269 "util/configlexer.lex" +#line 273 "util/configlexer.lex" { YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 70: YY_RULE_SETUP -#line 270 "util/configlexer.lex" +#line 274 "util/configlexer.lex" { YDVAR(1, VAR_NAME) } YY_BREAK case 71: YY_RULE_SETUP -#line 271 "util/configlexer.lex" +#line 275 "util/configlexer.lex" { YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 72: YY_RULE_SETUP -#line 272 "util/configlexer.lex" +#line 276 "util/configlexer.lex" { YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 73: YY_RULE_SETUP -#line 273 "util/configlexer.lex" +#line 277 "util/configlexer.lex" { YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 74: YY_RULE_SETUP -#line 274 "util/configlexer.lex" +#line 278 "util/configlexer.lex" { YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 75: YY_RULE_SETUP -#line 275 "util/configlexer.lex" +#line 279 "util/configlexer.lex" { YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 76: YY_RULE_SETUP -#line 276 "util/configlexer.lex" +#line 280 "util/configlexer.lex" { YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 77: YY_RULE_SETUP -#line 277 "util/configlexer.lex" +#line 281 "util/configlexer.lex" { YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 78: YY_RULE_SETUP -#line 278 "util/configlexer.lex" +#line 282 "util/configlexer.lex" { YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 79: YY_RULE_SETUP -#line 279 "util/configlexer.lex" +#line 283 "util/configlexer.lex" { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 80: YY_RULE_SETUP -#line 280 "util/configlexer.lex" +#line 284 "util/configlexer.lex" { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 81: YY_RULE_SETUP -#line 281 "util/configlexer.lex" +#line 285 "util/configlexer.lex" { YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 82: YY_RULE_SETUP -#line 282 "util/configlexer.lex" +#line 286 "util/configlexer.lex" { YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 83: YY_RULE_SETUP -#line 283 "util/configlexer.lex" +#line 287 "util/configlexer.lex" { YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 84: YY_RULE_SETUP -#line 284 "util/configlexer.lex" +#line 288 "util/configlexer.lex" { YDVAR(1, VAR_IDENTITY) } YY_BREAK case 85: YY_RULE_SETUP -#line 285 "util/configlexer.lex" +#line 289 "util/configlexer.lex" { YDVAR(1, VAR_VERSION) } YY_BREAK case 86: YY_RULE_SETUP -#line 286 "util/configlexer.lex" +#line 290 "util/configlexer.lex" { YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 87: YY_RULE_SETUP -#line 287 "util/configlexer.lex" +#line 291 "util/configlexer.lex" { YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 88: YY_RULE_SETUP -#line 288 "util/configlexer.lex" +#line 292 "util/configlexer.lex" { YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 89: YY_RULE_SETUP -#line 289 "util/configlexer.lex" +#line 293 "util/configlexer.lex" { YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 90: YY_RULE_SETUP -#line 290 "util/configlexer.lex" +#line 294 "util/configlexer.lex" { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 91: YY_RULE_SETUP -#line 291 "util/configlexer.lex" +#line 295 "util/configlexer.lex" { YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 92: YY_RULE_SETUP -#line 292 "util/configlexer.lex" +#line 296 "util/configlexer.lex" { YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 93: YY_RULE_SETUP -#line 293 "util/configlexer.lex" +#line 297 "util/configlexer.lex" { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 94: YY_RULE_SETUP -#line 294 "util/configlexer.lex" +#line 298 "util/configlexer.lex" { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 95: YY_RULE_SETUP -#line 295 "util/configlexer.lex" +#line 299 "util/configlexer.lex" { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 96: YY_RULE_SETUP -#line 296 "util/configlexer.lex" +#line 300 "util/configlexer.lex" { YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 97: YY_RULE_SETUP -#line 297 "util/configlexer.lex" +#line 301 "util/configlexer.lex" { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 98: YY_RULE_SETUP -#line 298 "util/configlexer.lex" +#line 302 "util/configlexer.lex" { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 99: YY_RULE_SETUP -#line 299 "util/configlexer.lex" +#line 303 "util/configlexer.lex" { YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 100: YY_RULE_SETUP -#line 300 "util/configlexer.lex" +#line 304 "util/configlexer.lex" { YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 101: YY_RULE_SETUP -#line 301 "util/configlexer.lex" +#line 305 "util/configlexer.lex" { YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 102: YY_RULE_SETUP -#line 302 "util/configlexer.lex" +#line 306 "util/configlexer.lex" { YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 103: YY_RULE_SETUP -#line 303 "util/configlexer.lex" +#line 307 "util/configlexer.lex" { YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 104: YY_RULE_SETUP -#line 304 "util/configlexer.lex" +#line 308 "util/configlexer.lex" { YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 105: YY_RULE_SETUP -#line 306 "util/configlexer.lex" +#line 310 "util/configlexer.lex" { YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 106: YY_RULE_SETUP -#line 307 "util/configlexer.lex" +#line 311 "util/configlexer.lex" { YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 107: YY_RULE_SETUP -#line 308 "util/configlexer.lex" +#line 312 "util/configlexer.lex" { YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 108: YY_RULE_SETUP -#line 309 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +#line 313 "util/configlexer.lex" +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 109: YY_RULE_SETUP -#line 310 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +#line 314 "util/configlexer.lex" +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 110: YY_RULE_SETUP -#line 311 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +#line 315 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 111: YY_RULE_SETUP -#line 312 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +#line 316 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 112: YY_RULE_SETUP -#line 313 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +#line 317 "util/configlexer.lex" +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 113: YY_RULE_SETUP -#line 314 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +#line 318 "util/configlexer.lex" +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 114: YY_RULE_SETUP -#line 315 "util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +#line 319 "util/configlexer.lex" +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 115: YY_RULE_SETUP -#line 316 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +#line 320 "util/configlexer.lex" +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 116: YY_RULE_SETUP -#line 317 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +#line 321 "util/configlexer.lex" +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 117: YY_RULE_SETUP -#line 318 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +#line 322 "util/configlexer.lex" +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 118: YY_RULE_SETUP -#line 319 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +#line 323 "util/configlexer.lex" +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 119: YY_RULE_SETUP -#line 320 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +#line 324 "util/configlexer.lex" +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 120: YY_RULE_SETUP -#line 321 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +#line 325 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 121: YY_RULE_SETUP -#line 322 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +#line 326 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 122: YY_RULE_SETUP -#line 323 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +#line 327 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 123: YY_RULE_SETUP -#line 324 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +#line 328 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 124: YY_RULE_SETUP -#line 325 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +#line 329 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 125: YY_RULE_SETUP -#line 326 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +#line 330 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 126: YY_RULE_SETUP -#line 327 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +#line 331 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 127: YY_RULE_SETUP -#line 328 "util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +#line 332 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 128: YY_RULE_SETUP -#line 329 "util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +#line 333 "util/configlexer.lex" +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 129: YY_RULE_SETUP -#line 330 "util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +#line 334 "util/configlexer.lex" +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 130: YY_RULE_SETUP -#line 331 "util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +#line 335 "util/configlexer.lex" +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 131: YY_RULE_SETUP -#line 332 "util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +#line 336 "util/configlexer.lex" +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 132: YY_RULE_SETUP -#line 333 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +#line 337 "util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 133: YY_RULE_SETUP -#line 334 "util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +#line 338 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 134: YY_RULE_SETUP -#line 335 "util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +#line 339 "util/configlexer.lex" +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 135: YY_RULE_SETUP -#line 336 "util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +#line 340 "util/configlexer.lex" +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 136: YY_RULE_SETUP -#line 337 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +#line 341 "util/configlexer.lex" +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 137: YY_RULE_SETUP -#line 338 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +#line 342 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 138: YY_RULE_SETUP -#line 339 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 343 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 139: YY_RULE_SETUP -#line 340 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +#line 344 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 140: YY_RULE_SETUP -#line 341 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +#line 345 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 141: YY_RULE_SETUP -#line 342 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +#line 346 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 142: YY_RULE_SETUP -#line 343 "util/configlexer.lex" +#line 347 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } + YY_BREAK +case 143: +YY_RULE_SETUP +#line 348 "util/configlexer.lex" { YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 345 "util/configlexer.lex" +#line 350 "util/configlexer.lex" { YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 347 "util/configlexer.lex" +#line 352 "util/configlexer.lex" { YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 349 "util/configlexer.lex" +#line 354 "util/configlexer.lex" { YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 351 "util/configlexer.lex" +#line 356 "util/configlexer.lex" { YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 353 "util/configlexer.lex" +#line 358 "util/configlexer.lex" { YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 355 "util/configlexer.lex" +#line 360 "util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT) } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 356 "util/configlexer.lex" +#line 361 "util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 357 "util/configlexer.lex" +#line 362 "util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 358 "util/configlexer.lex" +#line 363 "util/configlexer.lex" { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 359 "util/configlexer.lex" +#line 364 "util/configlexer.lex" { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 360 "util/configlexer.lex" +#line 365 "util/configlexer.lex" { YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK -case 154: -/* rule 154 can match eol */ +case 155: +/* rule 155 can match eol */ YY_RULE_SETUP -#line 361 "util/configlexer.lex" +#line 366 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 155: +case 156: YY_RULE_SETUP -#line 364 "util/configlexer.lex" +#line 369 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 365 "util/configlexer.lex" +#line 370 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 370 "util/configlexer.lex" +#line 375 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 157: -/* rule 157 can match eol */ +case 158: +/* rule 158 can match eol */ YY_RULE_SETUP -#line 371 "util/configlexer.lex" +#line 376 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 373 "util/configlexer.lex" +#line 378 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3421,34 +3449,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 159: +case 160: YY_RULE_SETUP -#line 385 "util/configlexer.lex" +#line 390 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 386 "util/configlexer.lex" +#line 391 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 391 "util/configlexer.lex" +#line 396 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 161: -/* rule 161 can match eol */ +case 162: +/* rule 162 can match eol */ YY_RULE_SETUP -#line 392 "util/configlexer.lex" +#line 397 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 394 "util/configlexer.lex" +#line 399 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3461,38 +3489,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 163: +case 164: YY_RULE_SETUP -#line 406 "util/configlexer.lex" +#line 411 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 408 "util/configlexer.lex" +#line 413 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 412 "util/configlexer.lex" +#line 417 "util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 165: -/* rule 165 can match eol */ +case 166: +/* rule 166 can match eol */ YY_RULE_SETUP -#line 413 "util/configlexer.lex" +#line 418 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 414 "util/configlexer.lex" +#line 419 "util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 415 "util/configlexer.lex" +#line 420 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3500,27 +3528,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 420 "util/configlexer.lex" +#line 425 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 424 "util/configlexer.lex" +#line 429 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 169: -/* rule 169 can match eol */ +case 170: +/* rule 170 can match eol */ YY_RULE_SETUP -#line 425 "util/configlexer.lex" +#line 430 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 427 "util/configlexer.lex" +#line 432 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3530,7 +3558,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 433 "util/configlexer.lex" +#line 438 "util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3542,33 +3570,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 444 "util/configlexer.lex" +#line 449 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 448 "util/configlexer.lex" +#line 453 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 452 "util/configlexer.lex" +#line 457 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 456 "util/configlexer.lex" +#line 461 "util/configlexer.lex" ECHO; YY_BREAK -#line 3570 "<stdout>" +#line 3598 "<stdout>" case YY_END_OF_BUFFER: { @@ -3858,7 +3886,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 >= 1731 ) + if ( yy_current_state >= 1752 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3886,11 +3914,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 >= 1731 ) + if ( yy_current_state >= 1752 ) 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 == 1730); + yy_is_jam = (yy_current_state == 1751); return yy_is_jam ? 0 : yy_current_state; } @@ -4523,7 +4551,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 456 "util/configlexer.lex" +#line 461 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 5622f217087b..ba728622c156 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -126,6 +126,10 @@ static void config_start_include_glob(const char* filename) #endif ; memset(&g, 0, sizeof(g)); + if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, + strlen(cfg_parser->chroot)) == 0) { + filename += strlen(cfg_parser->chroot); + } r = glob(filename, flags, NULL, &g); if(r) { /* some error */ @@ -306,6 +310,7 @@ val-nsec3-keysize-iterations{COLON} { add-holddown{COLON} { YDVAR(1, VAR_ADD_HOLDDOWN) } del-holddown{COLON} { YDVAR(1, VAR_DEL_HOLDDOWN) } keep-missing{COLON} { YDVAR(1, VAR_KEEP_MISSING) } +permit-small-holddown{COLON} { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } use-syslog{COLON} { YDVAR(1, VAR_USE_SYSLOG) } log-time-ascii{COLON} { YDVAR(1, VAR_LOG_TIME_ASCII) } log-queries{COLON} { YDVAR(1, VAR_LOG_QUERIES) } diff --git a/util/configparser.c b/util/configparser.c index f1ba75516765..45c80507794d 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -284,7 +284,8 @@ extern int yydebug; VAR_RATELIMIT_BELOW_DOMAIN = 412, VAR_RATELIMIT_FACTOR = 413, VAR_CAPS_WHITELIST = 414, - VAR_CACHE_MAX_NEGATIVE_TTL = 415 + VAR_CACHE_MAX_NEGATIVE_TTL = 415, + VAR_PERMIT_SMALL_HOLDDOWN = 416 }; #endif /* Tokens. */ @@ -446,6 +447,7 @@ extern int yydebug; #define VAR_RATELIMIT_FACTOR 413 #define VAR_CAPS_WHITELIST 414 #define VAR_CACHE_MAX_NEGATIVE_TTL 415 +#define VAR_PERMIT_SMALL_HOLDDOWN 416 @@ -459,7 +461,7 @@ typedef union YYSTYPE /* Line 387 of yacc.c */ -#line 463 "util/configparser.c" +#line 465 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -487,7 +489,7 @@ int yyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 491 "util/configparser.c" +#line 493 "util/configparser.c" #ifdef short # undef short @@ -707,20 +709,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 301 +#define YYLAST 303 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 161 +#define YYNTOKENS 162 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 166 +#define YYNNTS 167 /* YYNRULES -- Number of rules. */ -#define YYNRULES 317 +#define YYNRULES 319 /* YYNRULES -- Number of states. */ -#define YYNSTATES 467 +#define YYNSTATES 470 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 415 +#define YYMAXUTOK 416 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -769,7 +771,7 @@ static const yytype_uint8 yytranslate[] = 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 + 155, 156, 157, 158, 159, 160, 161 }; #if YYDEBUG @@ -790,109 +792,110 @@ static const yytype_uint16 yyprhs[] = 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, - 266, 267, 269, 271, 273, 275, 277, 279, 282, 283, - 285, 287, 289, 291, 294, 297, 300, 303, 306, 309, - 312, 315, 318, 321, 324, 327, 330, 333, 336, 339, - 342, 345, 348, 351, 354, 357, 360, 363, 366, 369, - 372, 375, 378, 381, 384, 387, 390, 393, 396, 399, - 402, 405, 408, 411, 414, 417, 420, 423, 426, 429, - 432, 435, 438, 441, 444, 447, 450, 453, 456, 459, - 462, 465, 468, 471, 474, 477, 480, 483, 486, 489, - 492, 495, 498, 501, 504, 507, 510, 513, 516, 519, - 522, 525, 528, 531, 534, 538, 541, 544, 547, 550, - 553, 556, 559, 562, 565, 568, 571, 574, 577, 580, - 583, 586, 589, 592, 595, 599, 602, 605, 608, 611, - 614, 617, 620, 623, 626, 629, 633, 637, 640, 643, - 646, 649, 652, 655, 658, 661, 664, 667, 669, 672, - 673, 675, 677, 679, 681, 683, 685, 687, 689, 692, - 695, 698, 701, 704, 707, 710, 713, 715, 718, 719, - 721, 723, 725, 727, 729, 731, 733, 735, 737, 739, - 741, 743, 746, 749, 752, 755, 758, 761, 764, 767, - 770, 773, 776, 779, 781, 784, 785, 787 + 265, 268, 269, 271, 273, 275, 277, 279, 281, 284, + 285, 287, 289, 291, 293, 296, 299, 302, 305, 308, + 311, 314, 317, 320, 323, 326, 329, 332, 335, 338, + 341, 344, 347, 350, 353, 356, 359, 362, 365, 368, + 371, 374, 377, 380, 383, 386, 389, 392, 395, 398, + 401, 404, 407, 410, 413, 416, 419, 422, 425, 428, + 431, 434, 437, 440, 443, 446, 449, 452, 455, 458, + 461, 464, 467, 470, 473, 476, 479, 482, 485, 488, + 491, 494, 497, 500, 503, 506, 509, 512, 515, 518, + 521, 524, 527, 530, 533, 536, 540, 543, 546, 549, + 552, 555, 558, 561, 564, 567, 570, 573, 576, 579, + 582, 585, 588, 591, 594, 597, 600, 604, 607, 610, + 613, 616, 619, 622, 625, 628, 631, 634, 638, 642, + 645, 648, 651, 654, 657, 660, 663, 666, 669, 672, + 674, 677, 678, 680, 682, 684, 686, 688, 690, 692, + 694, 697, 700, 703, 706, 709, 712, 715, 718, 720, + 723, 724, 726, 728, 730, 732, 734, 736, 738, 740, + 742, 744, 746, 748, 751, 754, 757, 760, 763, 766, + 769, 772, 775, 778, 781, 784, 786, 789, 790, 792 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 162, 0, -1, -1, 162, 163, -1, 164, 165, -1, - 167, 168, -1, 170, 171, -1, 323, 324, -1, 297, - 298, -1, 308, 309, -1, 11, -1, 165, 166, -1, - -1, 173, -1, 174, -1, 178, -1, 181, -1, 187, - -1, 188, -1, 189, -1, 190, -1, 179, -1, 200, - -1, 201, -1, 202, -1, 203, -1, 204, -1, 223, - -1, 224, -1, 225, -1, 229, -1, 230, -1, 184, - -1, 231, -1, 232, -1, 235, -1, 233, -1, 234, - -1, 237, -1, 238, -1, 239, -1, 252, -1, 213, - -1, 214, -1, 215, -1, 216, -1, 240, -1, 255, - -1, 209, -1, 211, -1, 256, -1, 262, -1, 263, - -1, 264, -1, 185, -1, 222, -1, 271, -1, 272, - -1, 210, -1, 267, -1, 197, -1, 180, -1, 205, - -1, 253, -1, 259, -1, 241, -1, 254, -1, 274, - -1, 275, -1, 186, -1, 175, -1, 196, -1, 245, - -1, 176, -1, 182, -1, 183, -1, 206, -1, 207, - -1, 273, -1, 243, -1, 247, -1, 248, -1, 177, - -1, 276, -1, 226, -1, 251, -1, 198, -1, 212, - -1, 257, -1, 258, -1, 261, -1, 266, -1, 208, - -1, 268, -1, 269, -1, 270, -1, 217, -1, 221, - -1, 249, -1, 250, -1, 218, -1, 242, -1, 265, - -1, 199, -1, 191, -1, 192, -1, 193, -1, 194, - -1, 195, -1, 277, -1, 278, -1, 279, -1, 219, - -1, 227, -1, 228, -1, 280, -1, 281, -1, 236, - -1, 244, -1, 220, -1, 282, -1, 284, -1, 283, - -1, 285, -1, 286, -1, 287, -1, 246, -1, 260, - -1, 38, -1, 168, 169, -1, -1, 288, -1, 289, - -1, 290, -1, 292, -1, 291, -1, 44, -1, 171, - 172, -1, -1, 293, -1, 294, -1, 295, -1, 296, - -1, 13, 10, -1, 12, 10, -1, 76, 10, -1, - 79, 10, -1, 97, 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, 123, 10, -1, 124, 10, - -1, 125, 10, -1, 126, 10, -1, 127, 10, -1, - 77, 10, -1, 66, 10, -1, 102, 10, -1, 122, - 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, 110, 10, -1, 54, - 10, -1, 64, 10, -1, 55, 10, -1, 103, 10, - -1, 48, 10, -1, 49, 10, -1, 50, 10, -1, - 51, 10, -1, 114, 10, -1, 118, 10, -1, 119, - 10, -1, 152, 10, -1, 115, 10, -1, 61, 10, - -1, 26, 10, -1, 27, 10, -1, 28, 10, -1, - 99, 10, -1, 133, 10, -1, 134, 10, -1, 29, - 10, -1, 30, 10, -1, 32, 10, -1, 33, 10, - -1, 35, 10, -1, 36, 10, -1, 34, 10, -1, - 135, 10, -1, 41, 10, -1, 42, 10, -1, 43, - 10, -1, 52, 10, -1, 71, 10, -1, 120, 10, - -1, 85, 10, -1, 151, 10, -1, 78, 10, -1, - 159, 10, -1, 86, 10, -1, 87, 10, -1, 116, - 10, -1, 117, 10, -1, 101, 10, -1, 47, 10, - -1, 69, 10, -1, 72, 10, 10, -1, 53, 10, - -1, 56, 10, -1, 106, 10, -1, 107, 10, -1, - 70, 10, -1, 160, 10, -1, 108, 10, -1, 57, - 10, -1, 58, 10, -1, 59, 10, -1, 121, 10, - -1, 109, 10, -1, 65, 10, -1, 112, 10, -1, - 113, 10, -1, 111, 10, -1, 62, 10, -1, 63, - 10, -1, 84, 10, -1, 73, 10, 10, -1, 74, - 10, -1, 98, 10, -1, 130, 10, -1, 131, 10, - -1, 132, 10, -1, 136, 10, -1, 137, 10, -1, - 153, 10, -1, 155, 10, -1, 154, 10, -1, 156, - 10, 10, -1, 157, 10, 10, -1, 158, 10, -1, - 37, 10, -1, 39, 10, -1, 40, 10, -1, 129, - 10, -1, 100, 10, -1, 37, 10, -1, 45, 10, - -1, 46, 10, -1, 128, 10, -1, 88, -1, 298, - 299, -1, -1, 300, -1, 302, -1, 301, -1, 304, - -1, 305, -1, 306, -1, 307, -1, 303, -1, 89, - 10, -1, 91, 10, -1, 90, 10, -1, 96, 10, - -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, - 95, 10, -1, 138, -1, 309, 310, -1, -1, 311, - -1, 312, -1, 313, -1, 314, -1, 315, -1, 316, - -1, 317, -1, 318, -1, 319, -1, 320, -1, 321, - -1, 322, -1, 139, 10, -1, 140, 10, -1, 141, - 10, -1, 142, 10, -1, 143, 10, -1, 144, 10, - -1, 145, 10, -1, 146, 10, -1, 147, 10, -1, - 148, 10, -1, 149, 10, -1, 150, 10, -1, 104, - -1, 324, 325, -1, -1, 326, -1, 105, 10, -1 + 163, 0, -1, -1, 163, 164, -1, 165, 166, -1, + 168, 169, -1, 171, 172, -1, 325, 326, -1, 299, + 300, -1, 310, 311, -1, 11, -1, 166, 167, -1, + -1, 174, -1, 175, -1, 179, -1, 182, -1, 188, + -1, 189, -1, 190, -1, 191, -1, 180, -1, 201, + -1, 202, -1, 203, -1, 204, -1, 205, -1, 224, + -1, 225, -1, 226, -1, 230, -1, 231, -1, 185, + -1, 232, -1, 233, -1, 236, -1, 234, -1, 235, + -1, 238, -1, 239, -1, 240, -1, 253, -1, 214, + -1, 215, -1, 216, -1, 217, -1, 241, -1, 256, + -1, 210, -1, 212, -1, 257, -1, 263, -1, 264, + -1, 265, -1, 186, -1, 223, -1, 273, -1, 274, + -1, 211, -1, 268, -1, 198, -1, 181, -1, 206, + -1, 254, -1, 260, -1, 242, -1, 255, -1, 276, + -1, 277, -1, 187, -1, 176, -1, 197, -1, 246, + -1, 177, -1, 183, -1, 184, -1, 207, -1, 208, + -1, 275, -1, 244, -1, 248, -1, 249, -1, 178, + -1, 278, -1, 227, -1, 252, -1, 199, -1, 213, + -1, 258, -1, 259, -1, 262, -1, 267, -1, 209, + -1, 269, -1, 270, -1, 271, -1, 218, -1, 222, + -1, 250, -1, 251, -1, 219, -1, 243, -1, 266, + -1, 200, -1, 192, -1, 193, -1, 194, -1, 195, + -1, 196, -1, 279, -1, 280, -1, 281, -1, 220, + -1, 228, -1, 229, -1, 282, -1, 283, -1, 237, + -1, 245, -1, 221, -1, 284, -1, 286, -1, 285, + -1, 287, -1, 288, -1, 289, -1, 247, -1, 261, + -1, 272, -1, 38, -1, 169, 170, -1, -1, 290, + -1, 291, -1, 292, -1, 294, -1, 293, -1, 44, + -1, 172, 173, -1, -1, 295, -1, 296, -1, 297, + -1, 298, -1, 13, 10, -1, 12, 10, -1, 76, + 10, -1, 79, 10, -1, 97, 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, 123, 10, -1, + 124, 10, -1, 125, 10, -1, 126, 10, -1, 127, + 10, -1, 77, 10, -1, 66, 10, -1, 102, 10, + -1, 122, 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, 110, 10, + -1, 54, 10, -1, 64, 10, -1, 55, 10, -1, + 103, 10, -1, 48, 10, -1, 49, 10, -1, 50, + 10, -1, 51, 10, -1, 114, 10, -1, 118, 10, + -1, 119, 10, -1, 152, 10, -1, 115, 10, -1, + 61, 10, -1, 26, 10, -1, 27, 10, -1, 28, + 10, -1, 99, 10, -1, 133, 10, -1, 134, 10, + -1, 29, 10, -1, 30, 10, -1, 32, 10, -1, + 33, 10, -1, 35, 10, -1, 36, 10, -1, 34, + 10, -1, 135, 10, -1, 41, 10, -1, 42, 10, + -1, 43, 10, -1, 52, 10, -1, 71, 10, -1, + 120, 10, -1, 85, 10, -1, 151, 10, -1, 78, + 10, -1, 159, 10, -1, 86, 10, -1, 87, 10, + -1, 116, 10, -1, 117, 10, -1, 101, 10, -1, + 47, 10, -1, 69, 10, -1, 72, 10, 10, -1, + 53, 10, -1, 56, 10, -1, 106, 10, -1, 107, + 10, -1, 70, 10, -1, 160, 10, -1, 108, 10, + -1, 57, 10, -1, 58, 10, -1, 59, 10, -1, + 121, 10, -1, 109, 10, -1, 65, 10, -1, 112, + 10, -1, 113, 10, -1, 111, 10, -1, 161, 10, + -1, 62, 10, -1, 63, 10, -1, 84, 10, -1, + 73, 10, 10, -1, 74, 10, -1, 98, 10, -1, + 130, 10, -1, 131, 10, -1, 132, 10, -1, 136, + 10, -1, 137, 10, -1, 153, 10, -1, 155, 10, + -1, 154, 10, -1, 156, 10, 10, -1, 157, 10, + 10, -1, 158, 10, -1, 37, 10, -1, 39, 10, + -1, 40, 10, -1, 129, 10, -1, 100, 10, -1, + 37, 10, -1, 45, 10, -1, 46, 10, -1, 128, + 10, -1, 88, -1, 300, 301, -1, -1, 302, -1, + 304, -1, 303, -1, 306, -1, 307, -1, 308, -1, + 309, -1, 305, -1, 89, 10, -1, 91, 10, -1, + 90, 10, -1, 96, 10, -1, 92, 10, -1, 93, + 10, -1, 94, 10, -1, 95, 10, -1, 138, -1, + 311, 312, -1, -1, 313, -1, 314, -1, 315, -1, + 316, -1, 317, -1, 318, -1, 319, -1, 320, -1, + 321, -1, 322, -1, 323, -1, 324, -1, 139, 10, + -1, 140, 10, -1, 141, 10, -1, 142, 10, -1, + 143, 10, -1, 144, 10, -1, 145, 10, -1, 146, + 10, -1, 147, 10, -1, 148, 10, -1, 149, 10, + -1, 150, 10, -1, 104, -1, 326, 327, -1, -1, + 328, -1, 105, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -910,26 +913,26 @@ static const yytype_uint16 yyrline[] = 174, 174, 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181, 181, 181, 182, 182, 182, 183, 183, 184, 184, 185, - 185, 185, 186, 186, 187, 187, 188, 188, 190, 202, - 203, 204, 204, 204, 204, 204, 206, 218, 219, 220, - 220, 220, 220, 222, 231, 240, 251, 260, 269, 278, - 291, 306, 315, 324, 333, 342, 351, 360, 369, 378, - 387, 396, 405, 414, 421, 428, 437, 446, 460, 469, - 478, 485, 492, 499, 507, 514, 521, 528, 535, 543, - 551, 559, 566, 573, 582, 591, 598, 605, 613, 621, - 631, 641, 654, 665, 673, 686, 695, 704, 713, 723, - 731, 744, 753, 761, 770, 778, 791, 800, 807, 817, - 827, 837, 847, 857, 867, 877, 887, 894, 901, 908, - 917, 926, 935, 942, 952, 969, 976, 994, 1007, 1020, - 1029, 1038, 1047, 1056, 1066, 1076, 1085, 1094, 1101, 1110, - 1119, 1128, 1136, 1149, 1157, 1181, 1188, 1203, 1213, 1223, - 1230, 1237, 1246, 1255, 1263, 1276, 1289, 1302, 1311, 1321, - 1328, 1335, 1344, 1354, 1364, 1371, 1378, 1387, 1392, 1393, - 1394, 1394, 1394, 1395, 1395, 1395, 1396, 1396, 1398, 1408, - 1417, 1424, 1434, 1441, 1448, 1455, 1462, 1467, 1468, 1469, - 1469, 1470, 1470, 1471, 1471, 1472, 1473, 1474, 1475, 1476, - 1477, 1479, 1487, 1494, 1502, 1510, 1517, 1524, 1533, 1542, - 1551, 1560, 1569, 1578, 1583, 1584, 1585, 1587 + 185, 185, 186, 186, 187, 187, 188, 188, 189, 191, + 203, 204, 205, 205, 205, 205, 205, 207, 219, 220, + 221, 221, 221, 221, 223, 232, 241, 252, 261, 270, + 279, 292, 307, 316, 325, 334, 343, 352, 361, 370, + 379, 388, 397, 406, 415, 422, 429, 438, 447, 461, + 470, 479, 486, 493, 500, 508, 515, 522, 529, 536, + 544, 552, 560, 567, 574, 583, 592, 599, 606, 614, + 622, 632, 642, 655, 666, 674, 687, 696, 705, 714, + 724, 732, 745, 754, 762, 771, 779, 792, 801, 808, + 818, 828, 838, 848, 858, 868, 878, 888, 895, 902, + 909, 918, 927, 936, 943, 953, 970, 977, 995, 1008, + 1021, 1030, 1039, 1048, 1057, 1067, 1077, 1086, 1095, 1102, + 1111, 1120, 1129, 1138, 1146, 1159, 1167, 1191, 1198, 1213, + 1223, 1233, 1240, 1247, 1256, 1265, 1273, 1286, 1299, 1312, + 1321, 1331, 1338, 1345, 1354, 1364, 1374, 1381, 1388, 1397, + 1402, 1403, 1404, 1404, 1404, 1405, 1405, 1405, 1406, 1406, + 1408, 1418, 1427, 1434, 1444, 1451, 1458, 1465, 1472, 1477, + 1478, 1479, 1479, 1480, 1480, 1481, 1481, 1482, 1483, 1484, + 1485, 1486, 1487, 1489, 1497, 1504, 1512, 1520, 1527, 1534, + 1543, 1552, 1561, 1570, 1579, 1588, 1593, 1594, 1595, 1597 }; #endif @@ -994,17 +997,18 @@ static const char *const yytname[] = "VAR_HARDEN_ALGO_DOWNGRADE", "VAR_IP_TRANSPARENT", "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN", "VAR_RATELIMIT_FACTOR", - "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream", + "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", + "VAR_PERMIT_SMALL_HOLDDOWN", "$accept", "toplevelvars", "toplevelvar", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "server_num_threads", "server_verbosity", + "server_statistics_interval", "server_statistics_cumulative", + "server_extended_statistics", "server_port", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_tcp_upstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_log_queries", @@ -1039,7 +1043,8 @@ static const char *const yytname[] = "server_val_clean_additional", "server_val_permissive_mode", "server_ignore_cd_flag", "server_val_log_level", "server_val_nsec3_keysize_iterations", "server_add_holddown", - "server_del_holddown", "server_keep_missing", "server_key_cache_size", + "server_del_holddown", "server_keep_missing", + "server_permit_small_holddown", "server_key_cache_size", "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", "server_local_data", "server_local_data_ptr", "server_minimal_responses", "server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix", @@ -1085,28 +1090,28 @@ static const yytype_uint16 yytoknum[] = 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415 + 415, 416 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 161, 162, 162, 163, 163, 163, 163, 163, 163, - 164, 165, 165, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 167, 168, - 168, 169, 169, 169, 169, 169, 170, 171, 171, 172, - 172, 172, 172, 173, 174, 175, 176, 177, 178, 179, + 0, 162, 163, 163, 164, 164, 164, 164, 164, 164, + 165, 166, 166, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 168, + 169, 169, 170, 170, 170, 170, 170, 171, 172, 172, + 173, 173, 173, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, @@ -1118,12 +1123,12 @@ static const yytype_uint16 yyr1[] = 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 298, - 299, 299, 299, 299, 299, 299, 299, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 309, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 324, 325, 326 + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 311, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 326, 327, 328 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1141,9 +1146,9 @@ 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, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 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, @@ -1151,16 +1156,16 @@ static const yytype_uint8 yyr2[] = 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, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 2 + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1168,8 +1173,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 10, 128, 136, 267, 313, 286, 3, - 12, 130, 138, 269, 288, 315, 4, 5, 6, 8, + 2, 0, 1, 10, 129, 137, 269, 315, 288, 3, + 12, 131, 139, 271, 290, 317, 4, 5, 6, 8, 9, 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, @@ -1181,62 +1186,62 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 13, 14, - 70, 73, 82, 15, 21, 61, 16, 74, 75, 32, - 54, 69, 17, 18, 19, 20, 104, 105, 106, 107, - 108, 71, 60, 86, 103, 22, 23, 24, 25, 26, - 62, 76, 77, 92, 48, 58, 49, 87, 42, 43, - 44, 45, 96, 100, 112, 119, 97, 55, 27, 28, - 29, 84, 113, 114, 30, 31, 33, 34, 36, 37, - 35, 117, 38, 39, 40, 46, 65, 101, 79, 118, - 72, 126, 80, 81, 98, 99, 85, 41, 63, 66, - 47, 50, 88, 89, 64, 127, 90, 51, 52, 53, - 102, 91, 59, 93, 94, 95, 56, 57, 78, 67, - 68, 83, 109, 110, 111, 115, 116, 120, 122, 121, - 123, 124, 125, 0, 0, 0, 0, 0, 129, 131, - 132, 133, 135, 134, 0, 0, 0, 0, 137, 139, - 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 268, 270, 272, 271, 277, 273, 274, 275, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 287, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 0, 314, 316, 144, 143, - 148, 151, 149, 157, 158, 159, 160, 170, 171, 172, - 173, 174, 193, 194, 195, 199, 200, 154, 201, 202, - 205, 203, 204, 207, 208, 209, 222, 183, 184, 185, - 186, 210, 225, 179, 181, 226, 232, 233, 234, 155, - 192, 241, 242, 180, 237, 167, 150, 175, 223, 229, - 211, 0, 0, 245, 156, 145, 166, 215, 146, 152, - 153, 176, 177, 243, 213, 217, 218, 147, 246, 196, - 221, 168, 182, 227, 228, 231, 236, 178, 240, 238, - 239, 187, 191, 219, 220, 188, 189, 212, 235, 169, - 161, 162, 163, 164, 165, 247, 248, 249, 197, 198, - 206, 250, 251, 214, 190, 252, 254, 253, 0, 0, - 257, 216, 230, 258, 259, 260, 262, 261, 263, 264, - 265, 266, 278, 280, 279, 282, 283, 284, 285, 281, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 317, 224, 244, 255, 256 + 0, 0, 0, 0, 0, 0, 0, 0, 11, 13, + 14, 70, 73, 82, 15, 21, 61, 16, 74, 75, + 32, 54, 69, 17, 18, 19, 20, 104, 105, 106, + 107, 108, 71, 60, 86, 103, 22, 23, 24, 25, + 26, 62, 76, 77, 92, 48, 58, 49, 87, 42, + 43, 44, 45, 96, 100, 112, 119, 97, 55, 27, + 28, 29, 84, 113, 114, 30, 31, 33, 34, 36, + 37, 35, 117, 38, 39, 40, 46, 65, 101, 79, + 118, 72, 126, 80, 81, 98, 99, 85, 41, 63, + 66, 47, 50, 88, 89, 64, 127, 90, 51, 52, + 53, 102, 91, 59, 93, 94, 95, 128, 56, 57, + 78, 67, 68, 83, 109, 110, 111, 115, 116, 120, + 122, 121, 123, 124, 125, 0, 0, 0, 0, 0, + 130, 132, 133, 134, 136, 135, 0, 0, 0, 0, + 138, 140, 141, 142, 143, 0, 0, 0, 0, 0, + 0, 0, 0, 270, 272, 274, 273, 279, 275, 276, + 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 289, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 316, 318, + 145, 144, 149, 152, 150, 158, 159, 160, 161, 171, + 172, 173, 174, 175, 194, 195, 196, 200, 201, 155, + 202, 203, 206, 204, 205, 208, 209, 210, 223, 184, + 185, 186, 187, 211, 226, 180, 182, 227, 233, 234, + 235, 156, 193, 243, 244, 181, 238, 168, 151, 176, + 224, 230, 212, 0, 0, 247, 157, 146, 167, 216, + 147, 153, 154, 177, 178, 245, 214, 218, 219, 148, + 248, 197, 222, 169, 183, 228, 229, 232, 237, 179, + 241, 239, 240, 188, 192, 220, 221, 189, 190, 213, + 236, 170, 162, 163, 164, 165, 166, 249, 250, 251, + 198, 199, 207, 252, 253, 215, 191, 254, 256, 255, + 0, 0, 259, 217, 231, 242, 260, 261, 262, 264, + 263, 265, 266, 267, 268, 280, 282, 281, 284, 285, + 286, 287, 283, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 319, 225, 246, 257, 258 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 9, 10, 16, 137, 11, 17, 258, 12, - 18, 268, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 259, 260, 261, - 262, 263, 269, 270, 271, 272, 13, 19, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 14, 20, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 15, 21, 316, 317 + -1, 1, 9, 10, 16, 138, 11, 17, 260, 12, + 18, 270, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 261, 262, + 263, 264, 265, 271, 272, 273, 274, 13, 19, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 14, 20, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 15, 21, 318, 319 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1247,17 +1252,17 @@ static const yytype_int16 yypact[] = -81, 116, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -12, 89, 47, -13, 22, -80, 16, 17, 18, 23, 24, 78, 107, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 139, 140, - 141, 142, 143, 145, 146, 147, 148, 149, 163, 164, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, -81, -81, -81, + 121, 122, 123, 124, 125, 126, 127, 128, 140, 141, + 142, 143, 145, 146, 147, 148, 149, 163, 164, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, @@ -1269,28 +1274,28 @@ static const yytype_int16 yypact[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, 258, 259, 260, 261, 262, -81, -81, - -81, -81, -81, -81, 263, 264, 265, 266, -81, -81, - -81, -81, -81, 267, 268, 269, 270, 271, 272, 273, - 274, -81, -81, -81, -81, -81, -81, -81, -81, -81, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, 287, -81, -81, -81, -81, + -81, -81, -81, -81, -81, 260, 261, 262, 263, 264, + -81, -81, -81, -81, -81, -81, 265, 266, 267, 268, + -81, -81, -81, -81, -81, 269, 270, 271, 272, 273, + 274, 275, 276, -81, -81, -81, -81, -81, -81, -81, + -81, -81, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, 289, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, 288, 289, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, 290, 291, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, 290, 291, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + 292, 293, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81, -81, -81, -81 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1312,7 +1317,7 @@ static const yytype_int8 yypgoto[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1323,35 +1328,35 @@ static const yytype_uint16 yytable[] = { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 315, 318, 319, 320, 47, - 48, 49, 0, 321, 322, 50, 51, 52, 53, 54, + 42, 43, 44, 45, 46, 317, 320, 321, 322, 47, + 48, 49, 0, 323, 324, 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, 88, 89, 90, 273, 274, 275, 276, - 277, 278, 279, 280, 264, 91, 92, 93, 323, 94, - 95, 96, 265, 266, 97, 98, 99, 100, 101, 102, + 85, 86, 87, 88, 89, 90, 275, 276, 277, 278, + 279, 280, 281, 282, 266, 91, 92, 93, 325, 94, + 95, 96, 267, 268, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 2, 324, 119, 120, - 121, 122, 123, 124, 125, 126, 253, 3, 254, 255, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 334, - 335, 336, 337, 338, 4, 339, 340, 341, 342, 343, - 5, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 344, 345, 267, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 256, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 6, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 257, 386, - 7, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 8, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466 + 113, 114, 115, 116, 117, 118, 2, 326, 119, 120, + 121, 122, 123, 124, 125, 126, 255, 3, 256, 257, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 336, 337, 338, 339, 4, 340, 341, 342, 343, 344, + 5, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 345, 346, 269, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 258, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 6, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 259, 387, + 7, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 8, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469 }; #define yypact_value_is_default(Yystate) \ @@ -1376,7 +1381,7 @@ static const yytype_int16 yycheck[] = 122, 123, 124, 125, 126, 127, 0, 10, 130, 131, 132, 133, 134, 135, 136, 137, 37, 11, 39, 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 10, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 10, 10, 10, 10, 38, 10, 10, 10, 10, 10, 44, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 10, 10, 128, 10, 10, 10, 10, @@ -1392,16 +1397,16 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10 + 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 162, 0, 11, 38, 44, 88, 104, 138, 163, - 164, 167, 170, 297, 308, 323, 165, 168, 171, 298, - 309, 324, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 163, 0, 11, 38, 44, 88, 104, 138, 164, + 165, 168, 171, 299, 310, 325, 166, 169, 172, 300, + 311, 326, 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, @@ -1412,7 +1417,7 @@ static const yytype_uint16 yystos[] = 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, 136, 137, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 166, 173, 174, + 154, 155, 156, 157, 158, 159, 160, 161, 167, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, @@ -1424,13 +1429,13 @@ static const yytype_uint16 yystos[] = 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 37, 39, 40, 100, 129, 169, 288, - 289, 290, 291, 292, 37, 45, 46, 128, 172, 293, - 294, 295, 296, 89, 90, 91, 92, 93, 94, 95, - 96, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 105, 325, 326, 10, 10, + 285, 286, 287, 288, 289, 37, 39, 40, 100, 129, + 170, 290, 291, 292, 293, 294, 37, 45, 46, 128, + 173, 295, 296, 297, 298, 89, 90, 91, 92, 93, + 94, 95, 96, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 105, 327, 328, 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, @@ -1445,7 +1450,7 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -2253,9 +2258,9 @@ yyreduce: } break; - case 128: + case 129: /* Line 1792 of yacc.c */ -#line 191 "util/configparser.y" +#line 192 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2268,9 +2273,9 @@ yyreduce: } break; - case 136: + case 137: /* Line 1792 of yacc.c */ -#line 207 "util/configparser.y" +#line 208 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2283,9 +2288,9 @@ yyreduce: } break; - case 143: + case 144: /* Line 1792 of yacc.c */ -#line 223 "util/configparser.y" +#line 224 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2295,9 +2300,9 @@ yyreduce: } break; - case 144: + case 145: /* Line 1792 of yacc.c */ -#line 232 "util/configparser.y" +#line 233 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2307,9 +2312,9 @@ yyreduce: } break; - case 145: + case 146: /* Line 1792 of yacc.c */ -#line 241 "util/configparser.y" +#line 242 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -2321,9 +2326,9 @@ yyreduce: } break; - case 146: + case 147: /* Line 1792 of yacc.c */ -#line 252 "util/configparser.y" +#line 253 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2333,9 +2338,9 @@ yyreduce: } break; - case 147: + case 148: /* Line 1792 of yacc.c */ -#line 261 "util/configparser.y" +#line 262 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2345,9 +2350,9 @@ yyreduce: } break; - case 148: + case 149: /* Line 1792 of yacc.c */ -#line 270 "util/configparser.y" +#line 271 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2357,9 +2362,9 @@ yyreduce: } break; - case 149: + case 150: /* Line 1792 of yacc.c */ -#line 279 "util/configparser.y" +#line 280 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2373,9 +2378,9 @@ yyreduce: } break; - case 150: + case 151: /* Line 1792 of yacc.c */ -#line 292 "util/configparser.y" +#line 293 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2391,9 +2396,9 @@ yyreduce: } break; - case 151: + case 152: /* Line 1792 of yacc.c */ -#line 307 "util/configparser.y" +#line 308 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2403,9 +2408,9 @@ yyreduce: } break; - case 152: + case 153: /* Line 1792 of yacc.c */ -#line 316 "util/configparser.y" +#line 317 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2415,9 +2420,9 @@ yyreduce: } break; - case 153: + case 154: /* Line 1792 of yacc.c */ -#line 325 "util/configparser.y" +#line 326 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2427,9 +2432,9 @@ yyreduce: } break; - case 154: + case 155: /* Line 1792 of yacc.c */ -#line 334 "util/configparser.y" +#line 335 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2439,9 +2444,9 @@ yyreduce: } break; - case 155: + case 156: /* Line 1792 of yacc.c */ -#line 343 "util/configparser.y" +#line 344 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2451,9 +2456,9 @@ yyreduce: } break; - case 156: + case 157: /* Line 1792 of yacc.c */ -#line 352 "util/configparser.y" +#line 353 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2463,9 +2468,9 @@ yyreduce: } break; - case 157: + case 158: /* Line 1792 of yacc.c */ -#line 361 "util/configparser.y" +#line 362 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2475,9 +2480,9 @@ yyreduce: } break; - case 158: + case 159: /* Line 1792 of yacc.c */ -#line 370 "util/configparser.y" +#line 371 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2487,9 +2492,9 @@ yyreduce: } break; - case 159: + case 160: /* Line 1792 of yacc.c */ -#line 379 "util/configparser.y" +#line 380 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2499,9 +2504,9 @@ yyreduce: } break; - case 160: + case 161: /* Line 1792 of yacc.c */ -#line 388 "util/configparser.y" +#line 389 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2511,9 +2516,9 @@ yyreduce: } break; - case 161: + case 162: /* Line 1792 of yacc.c */ -#line 397 "util/configparser.y" +#line 398 "util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2523,9 +2528,9 @@ yyreduce: } break; - case 162: + case 163: /* Line 1792 of yacc.c */ -#line 406 "util/configparser.y" +#line 407 "util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2535,9 +2540,9 @@ yyreduce: } break; - case 163: + case 164: /* Line 1792 of yacc.c */ -#line 415 "util/configparser.y" +#line 416 "util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->ssl_service_key); @@ -2545,9 +2550,9 @@ yyreduce: } break; - case 164: + case 165: /* Line 1792 of yacc.c */ -#line 422 "util/configparser.y" +#line 423 "util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->ssl_service_pem); @@ -2555,9 +2560,9 @@ yyreduce: } break; - case 165: + case 166: /* Line 1792 of yacc.c */ -#line 429 "util/configparser.y" +#line 430 "util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2567,9 +2572,9 @@ yyreduce: } break; - case 166: + case 167: /* Line 1792 of yacc.c */ -#line 438 "util/configparser.y" +#line 439 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2579,9 +2584,9 @@ yyreduce: } break; - case 167: + case 168: /* Line 1792 of yacc.c */ -#line 447 "util/configparser.y" +#line 448 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2596,9 +2601,9 @@ yyreduce: } break; - case 168: + case 169: /* Line 1792 of yacc.c */ -#line 461 "util/configparser.y" +#line 462 "util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2608,9 +2613,9 @@ yyreduce: } break; - case 169: + case 170: /* Line 1792 of yacc.c */ -#line 470 "util/configparser.y" +#line 471 "util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2620,9 +2625,9 @@ yyreduce: } break; - case 170: + case 171: /* Line 1792 of yacc.c */ -#line 479 "util/configparser.y" +#line 480 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2630,9 +2635,9 @@ yyreduce: } break; - case 171: + case 172: /* Line 1792 of yacc.c */ -#line 486 "util/configparser.y" +#line 487 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2640,9 +2645,9 @@ yyreduce: } break; - case 172: + case 173: /* Line 1792 of yacc.c */ -#line 493 "util/configparser.y" +#line 494 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2650,9 +2655,9 @@ yyreduce: } break; - case 173: + case 174: /* Line 1792 of yacc.c */ -#line 500 "util/configparser.y" +#line 501 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2661,9 +2666,9 @@ yyreduce: } break; - case 174: + case 175: /* Line 1792 of yacc.c */ -#line 508 "util/configparser.y" +#line 509 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2671,9 +2676,9 @@ yyreduce: } break; - case 175: + case 176: /* Line 1792 of yacc.c */ -#line 515 "util/configparser.y" +#line 516 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2681,9 +2686,9 @@ yyreduce: } break; - case 176: + case 177: /* Line 1792 of yacc.c */ -#line 522 "util/configparser.y" +#line 523 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2691,9 +2696,9 @@ yyreduce: } break; - case 177: + case 178: /* Line 1792 of yacc.c */ -#line 529 "util/configparser.y" +#line 530 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2701,9 +2706,9 @@ yyreduce: } break; - case 178: + case 179: /* Line 1792 of yacc.c */ -#line 536 "util/configparser.y" +#line 537 "util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2712,9 +2717,9 @@ yyreduce: } break; - case 179: + case 180: /* Line 1792 of yacc.c */ -#line 544 "util/configparser.y" +#line 545 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2723,9 +2728,9 @@ yyreduce: } break; - case 180: + case 181: /* Line 1792 of yacc.c */ -#line 552 "util/configparser.y" +#line 553 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2734,9 +2739,9 @@ yyreduce: } break; - case 181: + case 182: /* Line 1792 of yacc.c */ -#line 560 "util/configparser.y" +#line 561 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2744,9 +2749,9 @@ yyreduce: } break; - case 182: + case 183: /* Line 1792 of yacc.c */ -#line 567 "util/configparser.y" +#line 568 "util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) @@ -2754,9 +2759,9 @@ yyreduce: } break; - case 183: + case 184: /* Line 1792 of yacc.c */ -#line 574 "util/configparser.y" +#line 575 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2766,9 +2771,9 @@ yyreduce: } break; - case 184: + case 185: /* Line 1792 of yacc.c */ -#line 583 "util/configparser.y" +#line 584 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2778,9 +2783,9 @@ yyreduce: } break; - case 185: + case 186: /* Line 1792 of yacc.c */ -#line 592 "util/configparser.y" +#line 593 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2788,9 +2793,9 @@ yyreduce: } break; - case 186: + case 187: /* Line 1792 of yacc.c */ -#line 599 "util/configparser.y" +#line 600 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2798,9 +2803,9 @@ yyreduce: } break; - case 187: + case 188: /* Line 1792 of yacc.c */ -#line 606 "util/configparser.y" +#line 607 "util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) @@ -2809,9 +2814,9 @@ yyreduce: } break; - case 188: + case 189: /* Line 1792 of yacc.c */ -#line 614 "util/configparser.y" +#line 615 "util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) @@ -2820,9 +2825,9 @@ yyreduce: } break; - case 189: + case 190: /* Line 1792 of yacc.c */ -#line 622 "util/configparser.y" +#line 623 "util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2833,9 +2838,9 @@ yyreduce: } break; - case 190: + case 191: /* Line 1792 of yacc.c */ -#line 632 "util/configparser.y" +#line 633 "util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2846,9 +2851,9 @@ yyreduce: } break; - case 191: + case 192: /* Line 1792 of yacc.c */ -#line 642 "util/configparser.y" +#line 643 "util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2862,9 +2867,9 @@ yyreduce: } break; - case 192: + case 193: /* Line 1792 of yacc.c */ -#line 655 "util/configparser.y" +#line 656 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2876,9 +2881,9 @@ yyreduce: } break; - case 193: + case 194: /* Line 1792 of yacc.c */ -#line 666 "util/configparser.y" +#line 667 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2887,9 +2892,9 @@ yyreduce: } break; - case 194: + case 195: /* Line 1792 of yacc.c */ -#line 674 "util/configparser.y" +#line 675 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2903,9 +2908,9 @@ yyreduce: } break; - case 195: + case 196: /* Line 1792 of yacc.c */ -#line 687 "util/configparser.y" +#line 688 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2915,9 +2920,9 @@ yyreduce: } break; - case 196: + case 197: /* Line 1792 of yacc.c */ -#line 696 "util/configparser.y" +#line 697 "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) @@ -2927,9 +2932,9 @@ yyreduce: } break; - case 197: + case 198: /* Line 1792 of yacc.c */ -#line 705 "util/configparser.y" +#line 706 "util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2939,9 +2944,9 @@ yyreduce: } break; - case 198: + case 199: /* Line 1792 of yacc.c */ -#line 714 "util/configparser.y" +#line 715 "util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2952,9 +2957,9 @@ yyreduce: } break; - case 199: + case 200: /* Line 1792 of yacc.c */ -#line 724 "util/configparser.y" +#line 725 "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)) @@ -2963,9 +2968,9 @@ yyreduce: } break; - case 200: + case 201: /* Line 1792 of yacc.c */ -#line 732 "util/configparser.y" +#line 733 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2979,9 +2984,9 @@ yyreduce: } break; - case 201: + case 202: /* Line 1792 of yacc.c */ -#line 745 "util/configparser.y" +#line 746 "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) @@ -2991,9 +2996,9 @@ yyreduce: } break; - case 202: + case 203: /* Line 1792 of yacc.c */ -#line 754 "util/configparser.y" +#line 755 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " @@ -3002,9 +3007,9 @@ yyreduce: } break; - case 203: + case 204: /* Line 1792 of yacc.c */ -#line 762 "util/configparser.y" +#line 763 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3014,9 +3019,9 @@ yyreduce: } break; - case 204: + case 205: /* Line 1792 of yacc.c */ -#line 771 "util/configparser.y" +#line 772 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " @@ -3025,9 +3030,9 @@ yyreduce: } break; - case 205: + case 206: /* Line 1792 of yacc.c */ -#line 779 "util/configparser.y" +#line 780 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3041,9 +3046,9 @@ yyreduce: } break; - case 206: + case 207: /* Line 1792 of yacc.c */ -#line 792 "util/configparser.y" +#line 793 "util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3053,9 +3058,9 @@ yyreduce: } break; - case 207: + case 208: /* Line 1792 of yacc.c */ -#line 801 "util/configparser.y" +#line 802 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -3063,9 +3068,9 @@ yyreduce: } break; - case 208: + case 209: /* Line 1792 of yacc.c */ -#line 808 "util/configparser.y" +#line 809 "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) @@ -3076,9 +3081,9 @@ yyreduce: } break; - case 209: + case 210: /* Line 1792 of yacc.c */ -#line 818 "util/configparser.y" +#line 819 "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) @@ -3089,9 +3094,9 @@ yyreduce: } break; - case 210: + case 211: /* Line 1792 of yacc.c */ -#line 828 "util/configparser.y" +#line 829 "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) @@ -3102,9 +3107,9 @@ yyreduce: } break; - case 211: + case 212: /* Line 1792 of yacc.c */ -#line 838 "util/configparser.y" +#line 839 "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) @@ -3115,9 +3120,9 @@ yyreduce: } break; - case 212: + case 213: /* Line 1792 of yacc.c */ -#line 848 "util/configparser.y" +#line 849 "util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3128,9 +3133,9 @@ yyreduce: } break; - case 213: + case 214: /* Line 1792 of yacc.c */ -#line 858 "util/configparser.y" +#line 859 "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) @@ -3141,9 +3146,9 @@ yyreduce: } break; - case 214: + case 215: /* Line 1792 of yacc.c */ -#line 868 "util/configparser.y" +#line 869 "util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3154,9 +3159,9 @@ yyreduce: } break; - case 215: + case 216: /* Line 1792 of yacc.c */ -#line 878 "util/configparser.y" +#line 879 "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) @@ -3167,9 +3172,9 @@ yyreduce: } break; - case 216: + case 217: /* Line 1792 of yacc.c */ -#line 888 "util/configparser.y" +#line 889 "util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[(2) - (2)].str))) @@ -3177,9 +3182,9 @@ yyreduce: } break; - case 217: + case 218: /* Line 1792 of yacc.c */ -#line 895 "util/configparser.y" +#line 896 "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))) @@ -3187,9 +3192,9 @@ yyreduce: } break; - case 218: + case 219: /* Line 1792 of yacc.c */ -#line 902 "util/configparser.y" +#line 903 "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))) @@ -3197,9 +3202,9 @@ yyreduce: } break; - case 219: + case 220: /* Line 1792 of yacc.c */ -#line 909 "util/configparser.y" +#line 910 "util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3209,9 +3214,9 @@ yyreduce: } break; - case 220: + case 221: /* Line 1792 of yacc.c */ -#line 918 "util/configparser.y" +#line 919 "util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3221,9 +3226,9 @@ yyreduce: } break; - case 221: + case 222: /* Line 1792 of yacc.c */ -#line 927 "util/configparser.y" +#line 928 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3233,9 +3238,9 @@ yyreduce: } break; - case 222: + case 223: /* Line 1792 of yacc.c */ -#line 936 "util/configparser.y" +#line 937 "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))) @@ -3243,9 +3248,9 @@ yyreduce: } break; - case 223: + case 224: /* Line 1792 of yacc.c */ -#line 943 "util/configparser.y" +#line 944 "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) @@ -3256,9 +3261,9 @@ yyreduce: } break; - case 224: + case 225: /* Line 1792 of yacc.c */ -#line 953 "util/configparser.y" +#line 954 "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 && @@ -3276,9 +3281,9 @@ yyreduce: } break; - case 225: + case 226: /* Line 1792 of yacc.c */ -#line 970 "util/configparser.y" +#line 971 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -3286,9 +3291,9 @@ yyreduce: } break; - case 226: + case 227: /* Line 1792 of yacc.c */ -#line 977 "util/configparser.y" +#line 978 "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) { @@ -3307,9 +3312,9 @@ yyreduce: } break; - case 227: + case 228: /* Line 1792 of yacc.c */ -#line 995 "util/configparser.y" +#line 996 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3323,9 +3328,9 @@ yyreduce: } break; - case 228: + case 229: /* Line 1792 of yacc.c */ -#line 1008 "util/configparser.y" +#line 1009 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3339,9 +3344,9 @@ yyreduce: } break; - case 229: + case 230: /* Line 1792 of yacc.c */ -#line 1021 "util/configparser.y" +#line 1022 "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) @@ -3351,9 +3356,9 @@ yyreduce: } break; - case 230: + case 231: /* Line 1792 of yacc.c */ -#line 1030 "util/configparser.y" +#line 1031 "util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3363,9 +3368,9 @@ yyreduce: } break; - case 231: + case 232: /* Line 1792 of yacc.c */ -#line 1039 "util/configparser.y" +#line 1040 "util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3375,9 +3380,9 @@ yyreduce: } break; - case 232: + case 233: /* Line 1792 of yacc.c */ -#line 1048 "util/configparser.y" +#line 1049 "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) @@ -3387,9 +3392,9 @@ yyreduce: } break; - case 233: + case 234: /* Line 1792 of yacc.c */ -#line 1057 "util/configparser.y" +#line 1058 "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) @@ -3400,9 +3405,9 @@ yyreduce: } break; - case 234: + case 235: /* Line 1792 of yacc.c */ -#line 1067 "util/configparser.y" +#line 1068 "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) @@ -3413,9 +3418,9 @@ yyreduce: } break; - case 235: + case 236: /* Line 1792 of yacc.c */ -#line 1077 "util/configparser.y" +#line 1078 "util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3425,9 +3430,9 @@ yyreduce: } break; - case 236: + case 237: /* Line 1792 of yacc.c */ -#line 1086 "util/configparser.y" +#line 1087 "util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3437,9 +3442,9 @@ yyreduce: } break; - case 237: + case 238: /* Line 1792 of yacc.c */ -#line 1095 "util/configparser.y" +#line 1096 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -3447,9 +3452,9 @@ yyreduce: } break; - case 238: + case 239: /* Line 1792 of yacc.c */ -#line 1102 "util/configparser.y" +#line 1103 "util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3459,9 +3464,9 @@ yyreduce: } break; - case 239: + case 240: /* Line 1792 of yacc.c */ -#line 1111 "util/configparser.y" +#line 1112 "util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3471,9 +3476,9 @@ yyreduce: } break; - case 240: + case 241: /* Line 1792 of yacc.c */ -#line 1120 "util/configparser.y" +#line 1121 "util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3483,9 +3488,22 @@ yyreduce: } break; - case 241: + case 242: +/* Line 1792 of yacc.c */ +#line 1130 "util/configparser.y" + { + OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->permit_small_holddown = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 243: /* Line 1792 of yacc.c */ -#line 1129 "util/configparser.y" +#line 1139 "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)) @@ -3494,9 +3512,9 @@ yyreduce: } break; - case 242: + case 244: /* Line 1792 of yacc.c */ -#line 1137 "util/configparser.y" +#line 1147 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3510,9 +3528,9 @@ yyreduce: } break; - case 243: + case 245: /* Line 1792 of yacc.c */ -#line 1150 "util/configparser.y" +#line 1160 "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)) @@ -3521,9 +3539,9 @@ yyreduce: } break; - case 244: + case 246: /* Line 1792 of yacc.c */ -#line 1158 "util/configparser.y" +#line 1168 "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 && @@ -3548,9 +3566,9 @@ yyreduce: } break; - case 245: + case 247: /* Line 1792 of yacc.c */ -#line 1182 "util/configparser.y" +#line 1192 "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))) @@ -3558,9 +3576,9 @@ yyreduce: } break; - case 246: + case 248: /* Line 1792 of yacc.c */ -#line 1189 "util/configparser.y" +#line 1199 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3576,9 +3594,9 @@ yyreduce: } break; - case 247: + case 249: /* Line 1792 of yacc.c */ -#line 1204 "util/configparser.y" +#line 1214 "util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3589,9 +3607,9 @@ yyreduce: } break; - case 248: + case 250: /* Line 1792 of yacc.c */ -#line 1214 "util/configparser.y" +#line 1224 "util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3602,9 +3620,9 @@ yyreduce: } break; - case 249: + case 251: /* Line 1792 of yacc.c */ -#line 1224 "util/configparser.y" +#line 1234 "util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); @@ -3612,9 +3630,9 @@ yyreduce: } break; - case 250: + case 252: /* Line 1792 of yacc.c */ -#line 1231 "util/configparser.y" +#line 1241 "util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dns64_prefix); @@ -3622,9 +3640,9 @@ yyreduce: } break; - case 251: + case 253: /* Line 1792 of yacc.c */ -#line 1238 "util/configparser.y" +#line 1248 "util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3634,9 +3652,9 @@ yyreduce: } break; - case 252: + case 254: /* Line 1792 of yacc.c */ -#line 1247 "util/configparser.y" +#line 1257 "util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3646,9 +3664,9 @@ yyreduce: } break; - case 253: + case 255: /* Line 1792 of yacc.c */ -#line 1256 "util/configparser.y" +#line 1266 "util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ratelimit_size)) @@ -3657,9 +3675,9 @@ yyreduce: } break; - case 254: + case 256: /* Line 1792 of yacc.c */ -#line 1264 "util/configparser.y" +#line 1274 "util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3673,9 +3691,9 @@ yyreduce: } break; - case 255: + case 257: /* Line 1792 of yacc.c */ -#line 1277 "util/configparser.y" +#line 1287 "util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { @@ -3689,9 +3707,9 @@ yyreduce: } break; - case 256: + case 258: /* Line 1792 of yacc.c */ -#line 1290 "util/configparser.y" +#line 1300 "util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { @@ -3705,9 +3723,9 @@ yyreduce: } break; - case 257: + case 259: /* Line 1792 of yacc.c */ -#line 1303 "util/configparser.y" +#line 1313 "util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3717,9 +3735,9 @@ yyreduce: } break; - case 258: + case 260: /* Line 1792 of yacc.c */ -#line 1312 "util/configparser.y" +#line 1322 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->stubs->name) @@ -3730,9 +3748,9 @@ yyreduce: } break; - case 259: + case 261: /* Line 1792 of yacc.c */ -#line 1322 "util/configparser.y" +#line 1332 "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))) @@ -3740,9 +3758,9 @@ yyreduce: } break; - case 260: + case 262: /* Line 1792 of yacc.c */ -#line 1329 "util/configparser.y" +#line 1339 "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))) @@ -3750,9 +3768,9 @@ yyreduce: } break; - case 261: + case 263: /* Line 1792 of yacc.c */ -#line 1336 "util/configparser.y" +#line 1346 "util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3762,9 +3780,9 @@ yyreduce: } break; - case 262: + case 264: /* Line 1792 of yacc.c */ -#line 1345 "util/configparser.y" +#line 1355 "util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3775,9 +3793,9 @@ yyreduce: } break; - case 263: + case 265: /* Line 1792 of yacc.c */ -#line 1355 "util/configparser.y" +#line 1365 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->forwards->name) @@ -3788,9 +3806,9 @@ yyreduce: } break; - case 264: + case 266: /* Line 1792 of yacc.c */ -#line 1365 "util/configparser.y" +#line 1375 "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))) @@ -3798,9 +3816,9 @@ yyreduce: } break; - case 265: + case 267: /* Line 1792 of yacc.c */ -#line 1372 "util/configparser.y" +#line 1382 "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))) @@ -3808,9 +3826,9 @@ yyreduce: } break; - case 266: + case 268: /* Line 1792 of yacc.c */ -#line 1379 "util/configparser.y" +#line 1389 "util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3820,17 +3838,17 @@ yyreduce: } break; - case 267: + case 269: /* Line 1792 of yacc.c */ -#line 1388 "util/configparser.y" +#line 1398 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 278: + case 280: /* Line 1792 of yacc.c */ -#line 1399 "util/configparser.y" +#line 1409 "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) @@ -3841,9 +3859,9 @@ yyreduce: } break; - case 279: + case 281: /* Line 1792 of yacc.c */ -#line 1409 "util/configparser.y" +#line 1419 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3853,9 +3871,9 @@ yyreduce: } break; - case 280: + case 282: /* Line 1792 of yacc.c */ -#line 1418 "util/configparser.y" +#line 1428 "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))) @@ -3863,9 +3881,9 @@ yyreduce: } break; - case 281: + case 283: /* Line 1792 of yacc.c */ -#line 1425 "util/configparser.y" +#line 1435 "util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3876,9 +3894,9 @@ yyreduce: } break; - case 282: + case 284: /* Line 1792 of yacc.c */ -#line 1435 "util/configparser.y" +#line 1445 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3886,9 +3904,9 @@ yyreduce: } break; - case 283: + case 285: /* Line 1792 of yacc.c */ -#line 1442 "util/configparser.y" +#line 1452 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3896,9 +3914,9 @@ yyreduce: } break; - case 284: + case 286: /* Line 1792 of yacc.c */ -#line 1449 "util/configparser.y" +#line 1459 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3906,9 +3924,9 @@ yyreduce: } break; - case 285: + case 287: /* Line 1792 of yacc.c */ -#line 1456 "util/configparser.y" +#line 1466 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3916,17 +3934,17 @@ yyreduce: } break; - case 286: + case 288: /* Line 1792 of yacc.c */ -#line 1463 "util/configparser.y" +#line 1473 "util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } break; - case 301: + case 303: /* Line 1792 of yacc.c */ -#line 1480 "util/configparser.y" +#line 1490 "util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3935,9 +3953,9 @@ yyreduce: } break; - case 302: + case 304: /* Line 1792 of yacc.c */ -#line 1488 "util/configparser.y" +#line 1498 "util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_socket_path); @@ -3945,9 +3963,9 @@ yyreduce: } break; - case 303: + case 305: /* Line 1792 of yacc.c */ -#line 1495 "util/configparser.y" +#line 1505 "util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3956,9 +3974,9 @@ yyreduce: } break; - case 304: + case 306: /* Line 1792 of yacc.c */ -#line 1503 "util/configparser.y" +#line 1513 "util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3967,9 +3985,9 @@ yyreduce: } break; - case 305: + case 307: /* Line 1792 of yacc.c */ -#line 1511 "util/configparser.y" +#line 1521 "util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_identity); @@ -3977,9 +3995,9 @@ yyreduce: } break; - case 306: + case 308: /* Line 1792 of yacc.c */ -#line 1518 "util/configparser.y" +#line 1528 "util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dnstap_version); @@ -3987,9 +4005,9 @@ yyreduce: } break; - case 307: + case 309: /* Line 1792 of yacc.c */ -#line 1525 "util/configparser.y" +#line 1535 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3999,9 +4017,9 @@ yyreduce: } break; - case 308: + case 310: /* Line 1792 of yacc.c */ -#line 1534 "util/configparser.y" +#line 1544 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4011,9 +4029,9 @@ yyreduce: } break; - case 309: + case 311: /* Line 1792 of yacc.c */ -#line 1543 "util/configparser.y" +#line 1553 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4023,9 +4041,9 @@ yyreduce: } break; - case 310: + case 312: /* Line 1792 of yacc.c */ -#line 1552 "util/configparser.y" +#line 1562 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4035,9 +4053,9 @@ yyreduce: } break; - case 311: + case 313: /* Line 1792 of yacc.c */ -#line 1561 "util/configparser.y" +#line 1571 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4047,9 +4065,9 @@ yyreduce: } break; - case 312: + case 314: /* Line 1792 of yacc.c */ -#line 1570 "util/configparser.y" +#line 1580 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -4059,17 +4077,17 @@ yyreduce: } break; - case 313: + case 315: /* Line 1792 of yacc.c */ -#line 1579 "util/configparser.y" +#line 1589 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 317: + case 319: /* Line 1792 of yacc.c */ -#line 1588 "util/configparser.y" +#line 1598 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -4079,7 +4097,7 @@ yyreduce: /* Line 1792 of yacc.c */ -#line 4083 "util/configparser.c" +#line 4101 "util/configparser.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4311,7 +4329,7 @@ yyreturn: /* Line 2055 of yacc.c */ -#line 1593 "util/configparser.y" +#line 1603 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index cd62350858ef..582b8a1372b3 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -203,7 +203,8 @@ extern int yydebug; VAR_RATELIMIT_BELOW_DOMAIN = 412, VAR_RATELIMIT_FACTOR = 413, VAR_CAPS_WHITELIST = 414, - VAR_CACHE_MAX_NEGATIVE_TTL = 415 + VAR_CACHE_MAX_NEGATIVE_TTL = 415, + VAR_PERMIT_SMALL_HOLDDOWN = 416 }; #endif /* Tokens. */ @@ -365,6 +366,7 @@ extern int yydebug; #define VAR_RATELIMIT_FACTOR 413 #define VAR_CAPS_WHITELIST 414 #define VAR_CACHE_MAX_NEGATIVE_TTL 415 +#define VAR_PERMIT_SMALL_HOLDDOWN 416 @@ -378,7 +380,7 @@ typedef union YYSTYPE /* Line 2058 of yacc.c */ -#line 382 "util/configparser.h" +#line 384 "util/configparser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/util/configparser.y b/util/configparser.y index ad7f3d292cc8..d6db3c86f7dd 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -121,7 +121,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_HARDEN_ALGO_DOWNGRADE VAR_IP_TRANSPARENT %token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE %token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN VAR_RATELIMIT_FACTOR -%token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL +%token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -185,7 +185,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_ip_transparent | server_ratelimit | server_ratelimit_slabs | server_ratelimit_size | server_ratelimit_for_domain | server_ratelimit_below_domain | server_ratelimit_factor | - server_caps_whitelist | server_cache_max_negative_ttl + server_caps_whitelist | server_cache_max_negative_ttl | + server_permit_small_holddown ; stubstart: VAR_STUB_ZONE { @@ -1125,6 +1126,15 @@ server_keep_missing: VAR_KEEP_MISSING STRING_ARG free($2); } ; +server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG + { + OUTYY(("P(server_permit_small_holddown:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->permit_small_holddown = + (strcmp($2, "yes")==0); + free($2); + } server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG { OUTYY(("P(server_key_cache_size:%s)\n", $2)); diff --git a/util/data/msgencode.c b/util/data/msgencode.c index f9a8c5f67296..43464e9bbe0c 100644 --- a/util/data/msgencode.c +++ b/util/data/msgencode.c @@ -283,7 +283,7 @@ compress_owner(struct ub_packed_rrset_key* key, sldns_buffer* pkt, size_t owner_pos, uint16_t* owner_ptr, int owner_labs) { struct compress_tree_node* p; - struct compress_tree_node** insertpt; + struct compress_tree_node** insertpt = NULL; if(!*owner_ptr) { /* compress first time dname */ if((p = compress_tree_lookup(tree, key->rk.dname, diff --git a/util/iana_ports.inc b/util/iana_ports.inc index fb3290cc48fd..64edf0b02ec7 100644 --- a/util/iana_ports.inc +++ b/util/iana_ports.inc @@ -3840,6 +3840,8 @@ 4404, 4405, 4406, +4412, +4413, 4425, 4426, 4430, @@ -4666,6 +4668,7 @@ 7725, 7726, 7727, +7728, 7734, 7738, 7741, @@ -4780,6 +4783,7 @@ 8301, 8320, 8321, +8322, 8351, 8376, 8377, @@ -5170,6 +5174,8 @@ 17220, 17221, 17222, +17224, +17225, 17234, 17235, 17500, diff --git a/util/net_help.c b/util/net_help.c index 8b39af6b3b0d..07605b19f92d 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -629,9 +629,9 @@ void* listen_sslctx_create(char* key, char* pem, char* verifypem) SSL_CTX_free(ctx); return NULL; } - if(!SSL_CTX_use_certificate_file(ctx, pem, SSL_FILETYPE_PEM)) { + if(!SSL_CTX_use_certificate_chain_file(ctx, pem)) { log_err("error for cert file: %s", pem); - log_crypto_err("error in SSL_CTX use_certificate_file"); + log_crypto_err("error in SSL_CTX use_certificate_chain_file"); SSL_CTX_free(ctx); return NULL; } @@ -647,6 +647,23 @@ void* listen_sslctx_create(char* key, char* pem, char* verifypem) SSL_CTX_free(ctx); return NULL; } +#if HAVE_DECL_SSL_CTX_SET_ECDH_AUTO + if(!SSL_CTX_set_ecdh_auto(ctx,1)) { + log_crypto_err("Error in SSL_CTX_ecdh_auto, not enabling ECDHE"); + } +#elif defined(USE_ECDSA) + if(1) { + EC_KEY *ecdh = EC_KEY_new_by_curve_name (NID_X9_62_prime256v1); + if (!ecdh) { + log_crypto_err("could not find p256, not enabling ECDHE"); + } else { + if (1 != SSL_CTX_set_tmp_ecdh (ctx, ecdh)) { + log_crypto_err("Error in SSL_CTX_set_tmp_ecdh, not enabling ECDHE"); + } + EC_KEY_free (ecdh); + } + } +#endif if(verifypem && verifypem[0]) { if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) { @@ -684,7 +701,7 @@ void* connect_sslctx_create(char* key, char* pem, char* verifypem) return NULL; } if(key && key[0]) { - if(!SSL_CTX_use_certificate_file(ctx, pem, SSL_FILETYPE_PEM)) { + if(!SSL_CTX_use_certificate_chain_file(ctx, pem)) { log_err("error in client certificate %s", pem); log_crypto_err("error in certificate file"); SSL_CTX_free(ctx); |