From fd5e4e6019cc762c0d554506beb30a6923b59387 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Thu, 25 Oct 2018 09:21:41 +0000 Subject: [PATCH] - Fix #4126: RTT_band too low on VSAT links with 600+ms latency, adds the option unknown-server-time-limit to unbound.conf that can be increased to avoid the problem. git-svn-id: file:///svn/unbound/trunk@4954 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 3 + doc/example.conf.in | 4 + doc/unbound.conf.5.in | 6 + iterator/iterator.c | 3 + iterator/iterator.h | 2 +- util/config_file.c | 5 + util/config_file.h | 3 + util/configlexer.c | 4693 +++++++++++++++++++++-------------------- util/configlexer.lex | 1 + util/configparser.c | 2237 ++++++++++---------- util/configparser.h | 6 +- util/configparser.y | 11 +- 12 files changed, 3526 insertions(+), 3448 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index ce0e21831..8f6d5c4a1 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -8,6 +8,9 @@ to queries of type ANY. - Fix #4141: More randomness to rrset-roundrobin. - Fix #4132: Openness/closeness of RANGE intervals in rpl files. + - Fix #4126: RTT_band too low on VSAT links with 600+ms latency, + adds the option unknown-server-time-limit to unbound.conf that + can be increased to avoid the problem. 24 October 2018: Ralph - Add markdel function to ECS slabhash. diff --git a/doc/example.conf.in b/doc/example.conf.in index a2ff4b404..587aab284 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -145,6 +145,10 @@ server: # msec to wait before close of port on timeout UDP. 0 disables. # delay-close: 0 + # msec for waiting for an unknown server to reply. Increase if you + # are behind a slow satellite link, to eg. 1128. + # unknown-server-time-limit: 376 + # the amount of memory to use for the RRset cache. # plain value in bytes or you can append k, m or G. default is "4Mb". # rrset-cache-size: 4m diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index b47b61e17..e94170292 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -253,6 +253,12 @@ eg. 1500 msec. When timeouts happen you need extra sockets, it checks the ID and remote IP of packets, and unwanted packets are added to the unwanted packet counter. .TP +.B unknown\-server\-time\-limit: \fI +The wait time in msec for waiting for an unknown server to reply. +Increase this if you are behind a slow satellite link, to eg. 1128. +That would then avoid re\-querying every initial query because it times out. +Default is 376 msec. +.TP .B so\-rcvbuf: \fI If not 0, then set the SO_RCVBUF socket option to get more buffer space on UDP port 53 incoming queries. So that short spikes on busy diff --git a/iterator/iterator.c b/iterator/iterator.c index 2f26bd334..e177dcf1f 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -69,6 +69,9 @@ #include "sldns/parseutil.h" #include "sldns/sbuffer.h" +/* in msec */ +int UNKNOWN_SERVER_NICENESS = 376; + int iter_init(struct module_env* env, int id) { diff --git a/iterator/iterator.h b/iterator/iterator.h index 57cb7c4c4..a2f1b5705 100644 --- a/iterator/iterator.h +++ b/iterator/iterator.h @@ -83,7 +83,7 @@ struct rbtree_type; /** how nice is a server without further information, in msec * Equals rtt initial timeout value. */ -#define UNKNOWN_SERVER_NICENESS 376 +extern int UNKNOWN_SERVER_NICENESS; /** maximum timeout before a host is deemed unsuitable, in msec. * After host_ttl this will be timed out and the host will be tried again. * Equals RTT_MAX_TIMEOUT diff --git a/util/config_file.c b/util/config_file.c index 964b2166f..24ef0db1b 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -59,6 +59,7 @@ #include "services/cache/infra.h" #include "sldns/wire2str.h" #include "sldns/parseutil.h" +#include "iterator/iterator.h" #ifdef HAVE_GLOB_H # include #endif @@ -263,6 +264,7 @@ config_create(void) cfg->control_use_cert = 1; cfg->minimal_responses = 1; cfg->rrset_roundrobin = 0; + cfg->unknown_server_time_limit = 376; cfg->max_udp_size = 4096; if(!(cfg->server_key_file = strdup(RUN_DIR"/unbound_server.key"))) goto error_exit; @@ -579,6 +581,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_MEMSIZE("neg-cache-size:", neg_cache_size) else S_YNO("minimal-responses:", minimal_responses) else S_YNO("rrset-roundrobin:", rrset_roundrobin) + else S_NUMBER_OR_ZERO("unknown-server-time-limit:", unknown_server_time_limit) else S_STRLIST("local-data:", local_data) else S_YNO("unblock-lan-zones:", unblock_lan_zones) else S_YNO("insecure-lan-zones:", insecure_lan_zones) @@ -985,6 +988,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_UNS(opt, "val-override-date", val_date_override) else O_YNO(opt, "minimal-responses", minimal_responses) else O_YNO(opt, "rrset-roundrobin", rrset_roundrobin) + else O_DEC(opt, "unknown-server-time-limit", unknown_server_time_limit) #ifdef CLIENT_SUBNET else O_LST(opt, "send-client-subnet", client_subnet) else O_LST(opt, "client-subnet-zone", client_subnet_zone) @@ -1899,6 +1903,7 @@ config_apply(struct config_file* config) EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; MINIMAL_RESPONSES = config->minimal_responses; RRSET_ROUNDROBIN = config->rrset_roundrobin; + UNKNOWN_SERVER_NICENESS = config->unknown_server_time_limit; log_set_time_asc(config->log_time_ascii); autr_permit_small_holddown = config->permit_small_holddown; } diff --git a/util/config_file.h b/util/config_file.h index 944741579..6083f8333 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -437,6 +437,9 @@ struct config_file { /* RRSet roundrobin */ int rrset_roundrobin; + /* wait time for unknown server in msec */ + int unknown_server_time_limit; + /* maximum UDP response size */ size_t max_udp_size; diff --git a/util/configlexer.c b/util/configlexer.c index 527ec1e61..d2a2a30d8 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -10,7 +10,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 4 +#define YY_FLEX_SUBMINOR_VERSION 1 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -85,16 +85,10 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif -#ifndef SIZE_MAX -#define SIZE_MAX (~(size_t)0) -#endif - #endif /* ! C99 */ #endif /* ! FLEXINT_H */ -/* begin standard C++ headers. */ - /* TODO: this is always defined, so inline it */ #define yyconst const @@ -107,26 +101,32 @@ typedef unsigned int flex_uint32_t; /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an - * integer in range [0..255] for use as an array index. +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. */ -#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * + /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START + /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) +#define YY_NEW_FILE yyrestart(yyin ) + #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -163,7 +163,7 @@ extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -172,7 +172,7 @@ extern FILE *yyin, *yyout; do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ @@ -180,6 +180,7 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) + #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -222,7 +223,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -261,6 +262,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) + /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -281,56 +283,62 @@ static int yy_start = 0; /* start state number */ */ static int yy_did_buffer_switch_on_eof; -void yyrestart ( FILE *input_file ); -void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); -void yy_delete_buffer ( YY_BUFFER_STATE b ); -void yy_flush_buffer ( YY_BUFFER_STATE b ); -void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state ( void ); +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); -static void yyensure_buffer_stack ( void ); -static void yy_load_buffer_state ( void ); -static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) -YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); -void *yyalloc ( yy_size_t ); -void *yyrealloc ( void *, yy_size_t ); -void yyfree ( void * ); +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); #define yy_new_buffer yy_create_buffer + #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } + #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } + #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ -typedef flex_uint8_t YY_CHAR; + +typedef unsigned char YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; + int yylineno = 1; extern char *yytext; @@ -339,10 +347,10 @@ extern char *yytext; #endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state ( void ); -static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); -static int yy_get_next_buffer ( void ); -static void yynoreturn yy_fatal_error ( const char* msg ); +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -354,8 +362,9 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 285 -#define YY_END_OF_BUFFER 286 + +#define YY_NUM_RULES 286 +#define YY_END_OF_BUFFER 287 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,321 +372,324 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2821] = +static yyconst flex_int16_t yy_accept[2845] = { 0, - 1, 1, 267, 267, 271, 271, 275, 275, 279, 279, - 1, 1, 286, 283, 1, 265, 265, 284, 2, 284, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 267, 268, 268, 269, 284, 271, 272, 272, - 273, 284, 278, 275, 276, 276, 277, 284, 279, 280, - 280, 281, 284, 282, 266, 2, 270, 284, 282, 283, - 0, 1, 2, 2, 2, 2, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 267, - 0, 271, 0, 278, 0, 275, 279, 0, 282, 0, - 2, 2, 282, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 282, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 110, 283, 283, 283, 283, - 283, 283, 283, 282, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 92, 283, 283, 283, - 283, 283, 283, 8, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 115, 283, 282, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 282, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 51, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 208, 283, 14, 15, 283, 18, - 17, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 109, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 193, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 3, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 282, 283, 283, 283, - 283, 283, 283, 283, 258, 283, 283, 257, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 274, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 54, 283, 232, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 55, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 182, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 20, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 134, 283, 283, - 274, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 90, 283, 283, 283, 283, 283, 283, 283, 240, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 155, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 133, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 89, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 31, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 32, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 52, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 108, - 283, 283, 283, 283, 283, 107, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 53, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 156, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 42, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 223, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 46, 283, 47, 283, 283, 283, - 283, 93, 283, 94, 283, 283, 283, 283, 91, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 7, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 201, 283, 283, 283, 283, 136, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 43, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 174, 283, 173, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 16, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 56, 283, 283, 283, 283, 283, 283, 283, - 283, 181, 283, 283, 283, 283, 283, 96, 283, 95, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 166, 283, 283, - 283, 283, 283, 283, 283, 283, 116, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 74, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 78, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 50, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 169, 170, - 283, 283, 234, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 6, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 238, 283, 283, 283, - - 259, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 40, - 283, 283, 283, 283, 283, 283, 283, 283, 162, 283, - 283, 283, 111, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 186, 283, 163, 283, 283, 283, 198, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 41, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 113, 101, 283, 102, - 283, 283, 283, 100, 283, 283, 283, 283, 283, 283, - - 283, 283, 131, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 222, 283, 283, 283, 283, 283, - 283, 283, 283, 164, 283, 283, 283, 283, 283, 167, - 283, 172, 283, 283, 283, 283, 197, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 88, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 48, 283, 283, 283, 25, 283, 283, - 283, 283, 283, 283, 283, 283, 19, 283, 283, 283, - 283, 26, 35, 283, 141, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 63, 65, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 242, 283, - 283, 283, 209, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 103, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 130, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 253, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 135, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 192, - 283, 283, 283, 283, 283, 283, 283, 283, 262, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 152, 283, - 283, 283, 283, 283, 283, 283, 97, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 147, 283, 157, 283, 283, 283, 283, - 283, 119, 283, 283, 283, 283, 283, 84, 283, 283, - 283, 283, 184, 283, 283, 283, 283, 283, 283, 199, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 214, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 112, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 151, 283, 283, 283, 283, 283, 66, - 67, 283, 283, 283, 283, 283, 49, 283, 283, 283, - 283, 283, 73, 158, 283, 175, 283, 202, 283, 168, - 235, 283, 283, 283, 283, 283, 59, 283, 160, 283, - 283, 283, 283, 283, 9, 283, 283, 283, 87, 283, - 283, 283, 283, 227, 283, 283, 283, 183, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 150, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 137, 283, 241, 283, 283, 283, 283, 213, 283, 283, - 283, 283, 283, 283, 283, 283, 194, 283, 283, 283, - 283, 233, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 256, 283, 159, 283, - 283, 283, 283, 283, 283, 58, 60, 283, 283, 283, - 283, 283, 283, 283, 86, 283, 283, 283, 283, 225, - 283, 283, 283, 237, 283, 283, 283, 283, 283, 283, - - 283, 188, 33, 27, 29, 283, 283, 283, 283, 283, - 283, 283, 283, 34, 28, 30, 283, 283, 283, 283, - 283, 283, 83, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 190, 187, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 57, 283, 283, 114, - 283, 104, 283, 283, 283, 283, 283, 283, 283, 283, - 132, 13, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 251, 283, 254, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 12, 283, 283, 21, 283, 283, 283, - - 231, 283, 283, 283, 239, 283, 61, 283, 196, 283, - 283, 189, 283, 283, 283, 283, 283, 283, 22, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 146, 145, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 191, 185, 283, 200, 283, 283, 243, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 68, 283, 283, 283, 226, 283, 283, 283, - 283, 171, 283, 283, 283, 195, 283, 283, 283, 283, - 283, 283, 283, 283, 260, 261, 143, 62, 283, 283, - - 153, 283, 283, 98, 99, 283, 283, 283, 138, 283, - 140, 283, 176, 283, 283, 283, 144, 283, 283, 203, - 283, 283, 283, 283, 283, 283, 283, 121, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 210, - 283, 283, 283, 23, 283, 236, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 177, 283, 283, - 224, 283, 255, 283, 283, 283, 283, 283, 44, 283, - 283, 283, 283, 4, 283, 283, 120, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 206, 36, 37, 283, 283, 283, 283, 283, 283, - - 283, 244, 283, 283, 283, 283, 283, 283, 212, 283, - 283, 283, 180, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 71, 283, 45, 230, 283, 207, 283, 283, - 283, 283, 11, 283, 283, 283, 283, 283, 283, 283, - 178, 75, 283, 39, 283, 283, 283, 283, 283, 283, - 149, 283, 283, 283, 283, 283, 123, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 211, 117, 283, 283, - 105, 106, 283, 283, 283, 77, 81, 76, 283, 69, - 283, 283, 283, 283, 283, 10, 283, 283, 283, 228, - 283, 283, 264, 38, 283, 283, 283, 148, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 82, 80, 283, 70, - 252, 283, 283, 283, 283, 283, 283, 283, 165, 283, - 283, 283, 179, 283, 283, 283, 283, 283, 283, 139, - 64, 283, 283, 283, 283, 283, 245, 283, 283, 283, - 283, 283, 283, 283, 118, 283, 79, 124, 125, 128, - 129, 126, 127, 72, 283, 229, 283, 142, 283, 283, - 283, 283, 205, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 154, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283, 283, 283, 85, 283, 204, - 283, 221, 249, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 5, 283, 283, 283, 250, 283, 283, - 283, 283, 283, 283, 283, 283, 24, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 122, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 161, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 246, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 263, 283, - 283, 217, 283, 283, 283, 283, 283, 247, 283, 283, - - 283, 283, 283, 283, 248, 283, 283, 283, 215, 283, - 218, 219, 283, 283, 283, 283, 283, 216, 220, 0 + 1, 1, 268, 268, 272, 272, 276, 276, 280, 280, + 1, 1, 287, 284, 1, 266, 266, 285, 2, 285, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 268, 269, 269, 270, 285, 272, 273, 273, + 274, 285, 279, 276, 277, 277, 278, 285, 280, 281, + 281, 282, 285, 283, 267, 2, 271, 285, 283, 284, + 0, 1, 2, 2, 2, 2, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 268, + 0, 272, 0, 279, 0, 276, 280, 0, 283, 0, + 2, 2, 283, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 283, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 110, 284, 284, + 284, 284, 284, 284, 284, 283, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 92, 284, + 284, 284, 284, 284, 284, 8, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 115, + 284, 283, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 283, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 51, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 209, 284, + 14, 15, 284, 18, 17, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 109, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 193, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 3, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 283, 284, 284, 284, 284, 284, 284, 284, 259, + + 284, 284, 258, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 275, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 54, 284, 233, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 55, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 182, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 20, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 134, 284, 284, 275, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 90, 284, 284, + 284, 284, 284, 284, 284, 241, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 155, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 133, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 89, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 31, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 32, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 52, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 108, 284, 284, 284, + 284, 284, 107, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 53, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 156, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 42, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 224, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 46, 284, 47, 284, 284, 284, 284, 93, 284, + 94, 284, 284, 284, 284, 91, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 7, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 202, 284, 284, 284, 284, 136, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 43, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 174, + 284, 173, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 16, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 56, 284, 284, 284, 284, 284, 284, 284, 284, 181, + 284, 284, 284, 284, 284, 96, 284, 95, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 166, 284, 284, 284, + 284, 284, 284, 284, 284, 116, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 74, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 78, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 50, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 169, 170, 284, + 284, 235, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 6, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 239, 284, 284, 284, 260, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 40, + 284, 284, 284, 284, 284, 284, 284, 284, 162, 284, + 284, 284, 111, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 186, 284, 163, 284, 284, 284, 199, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 41, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 113, 101, 284, 102, + + 284, 284, 284, 100, 284, 284, 284, 284, 284, 284, + 284, 284, 131, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 223, 284, 284, 284, 284, 284, + 284, 284, 284, 164, 284, 284, 284, 284, 284, 167, + 284, 172, 284, 284, 284, 284, 198, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 88, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 48, 284, 284, 284, 25, 284, 284, + 284, 284, 284, 284, 284, 284, 19, 284, 284, 284, + + 284, 26, 35, 284, 141, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 63, 65, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 243, + 284, 284, 284, 210, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 103, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 130, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 254, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 135, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 192, 284, 284, 284, 284, 284, 284, 284, 284, 263, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 152, + 284, 284, 284, 284, 284, 284, 284, 97, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 147, 284, 157, 284, 284, + 284, 284, 284, 119, 284, 284, 284, 284, 284, 84, + 284, 284, 284, 284, 184, 284, 284, 284, 284, 284, + 284, 200, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 215, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 112, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 151, 284, 284, 284, 284, + 284, 66, 67, 284, 284, 284, 284, 284, 49, 284, + 284, 284, 284, 284, 73, 158, 284, 175, 284, 203, + 284, 168, 236, 284, 284, 284, 284, 284, 59, 284, + 160, 284, 284, 284, 284, 284, 9, 284, 284, 284, + 87, 284, 284, 284, 284, 228, 284, 284, 284, 183, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 150, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 137, 284, 242, 284, 284, 284, 284, + 214, 284, 284, 284, 284, 284, 284, 284, 284, 194, + 284, 284, 284, 284, 234, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 257, + 284, 159, 284, 284, 284, 284, 284, 284, 58, 60, + 284, 284, 284, 284, 284, 284, 284, 86, 284, 284, + + 284, 284, 226, 284, 284, 284, 238, 284, 284, 284, + 284, 284, 284, 284, 188, 33, 27, 29, 284, 284, + 284, 284, 284, 284, 284, 284, 34, 28, 30, 284, + 284, 284, 284, 284, 284, 284, 83, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 190, 187, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 57, 284, 284, 114, 284, 104, 284, 284, 284, 284, + 284, 284, 284, 284, 132, 13, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 252, 284, 255, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 12, 284, 284, + 21, 284, 284, 284, 232, 284, 284, 284, 240, 284, + 61, 284, 196, 284, 284, 189, 284, 284, 284, 284, + 284, 284, 22, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 146, 145, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 191, 185, 284, 201, + 284, 284, 244, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 68, 284, 284, + 284, 227, 284, 284, 284, 284, 171, 284, 284, 284, + + 195, 284, 284, 284, 284, 284, 284, 284, 284, 261, + 262, 143, 62, 284, 284, 153, 284, 284, 98, 99, + 284, 284, 284, 138, 284, 140, 284, 176, 284, 284, + 284, 284, 144, 284, 284, 204, 284, 284, 284, 284, + 284, 284, 284, 121, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 211, 284, 284, 284, 23, + 284, 237, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 177, 284, 284, 225, 284, 256, 284, + 284, 284, 284, 284, 44, 284, 284, 284, 284, 4, + 284, 284, 120, 284, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 207, 36, + 37, 284, 284, 284, 284, 284, 284, 284, 245, 284, + 284, 284, 284, 284, 284, 213, 284, 284, 284, 180, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 71, + 284, 45, 231, 284, 208, 284, 284, 284, 284, 11, + 284, 284, 284, 284, 284, 284, 284, 178, 75, 284, + 39, 284, 284, 284, 284, 284, 284, 284, 149, 284, + 284, 284, 284, 284, 123, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 212, 117, 284, 284, 105, 106, + 284, 284, 284, 77, 81, 76, 284, 69, 284, 284, + + 284, 284, 284, 10, 284, 284, 284, 229, 284, 284, + 265, 38, 284, 284, 284, 284, 148, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 82, 80, 284, 70, 253, + 284, 284, 284, 284, 284, 284, 284, 165, 284, 284, + 284, 179, 284, 284, 284, 284, 284, 284, 284, 139, + 64, 284, 284, 284, 284, 284, 246, 284, 284, 284, + 284, 284, 284, 284, 118, 284, 79, 124, 125, 128, + 129, 126, 127, 72, 284, 230, 284, 142, 284, 284, + 284, 284, 284, 206, 284, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 154, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 85, 284, 205, 284, 222, 250, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 5, 284, 197, 284, + 284, 251, 284, 284, 284, 284, 284, 284, 284, 284, + 24, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 122, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 161, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 247, 284, 284, 284, 284, 284, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 264, 284, 284, 218, 284, 284, 284, 284, + 284, 248, 284, 284, 284, 284, 284, 284, 249, 284, + 284, 284, 216, 284, 219, 220, 284, 284, 284, 284, + 284, 217, 221, 0 } ; -static const YY_CHAR yy_ec[256] = +static yyconst YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -709,7 +721,7 @@ static const YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static const YY_CHAR yy_meta[41] = +static yyconst YY_CHAR yy_meta[41] = { 0, 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, @@ -717,15 +729,15 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[2835] = +static yyconst flex_uint16_t yy_base[2859] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 1508, 1461, 81, 5511, 5511, 5511, 96, 52, + 90, 112, 2455, 2203, 81, 5552, 5552, 5552, 96, 52, 106, 63, 107, 111, 70, 128, 130, 133, 57, 88, 76, 135, 141, 117, 148, 145, 160, 164, 185, 176, - 191, 152, 1330, 5511, 5511, 5511, 107, 1275, 5511, 5511, - 5511, 165, 1150, 1130, 5511, 5511, 5511, 211, 1086, 5511, - 5511, 5511, 180, 1030, 5511, 217, 5511, 221, 168, 985, + 191, 152, 1950, 5552, 5552, 5552, 107, 1843, 5552, 5552, + 5552, 165, 1756, 1310, 5552, 5552, 5552, 211, 1251, 5552, + 5552, 5552, 180, 1045, 5552, 217, 5552, 221, 168, 918, 225, 189, 0, 232, 0, 0, 226, 189, 85, 221, 114, 227, 234, 156, 219, 235, 239, 236, 238, 132, 246, 242, 241, 252, 244, 247, 266, 243, 258, 273, @@ -733,623 +745,627 @@ static const flex_int16_t yy_base[2835] = 275, 187, 277, 278, 267, 274, 280, 283, 287, 289, 295, 297, 298, 299, 304, 305, 306, 311, 307, 315, 309, 313, 330, 318, 329, 325, 320, 335, 336, 338, - 339, 340, 343, 342, 346, 347, 349, 350, 358, 975, - 371, 889, 375, 697, 383, 557, 369, 373, 198, 387, - 391, 0, 383, 385, 393, 370, 389, 392, 257, 395, - 394, 396, 401, 397, 399, 415, 398, 405, 418, 420, - 424, 421, 428, 412, 432, 433, 434, 436, 445, 443, - 448, 426, 449, 450, 451, 452, 454, 460, 458, 455, - 467, 476, 471, 479, 487, 474, 488, 490, 477, 492, - - 491, 495, 503, 493, 501, 502, 504, 505, 506, 507, - 509, 512, 510, 516, 513, 518, 520, 521, 523, 526, - 536, 532, 540, 533, 535, 542, 547, 552, 543, 560, - 544, 557, 564, 561, 565, 566, 567, 569, 570, 572, - 573, 575, 571, 577, 584, 586, 583, 587, 599, 589, - 594, 596, 597, 598, 601, 609, 602, 610, 615, 620, - 607, 618, 621, 613, 623, 624, 628, 630, 637, 633, - 640, 641, 642, 644, 645, 649, 656, 635, 651, 652, - 653, 657, 659, 660, 663, 661, 670, 664, 672, 668, - 683, 681, 674, 687, 676, 690, 688, 689, 695, 700, - - 691, 709, 702, 714, 715, 716, 718, 719, 721, 724, - 722, 725, 733, 730, 726, 734, 736, 743, 739, 741, - 750, 747, 753, 757, 749, 765, 761, 772, 769, 776, - 798, 755, 756, 767, 773, 5511, 788, 778, 822, 780, - 793, 806, 790, 783, 794, 803, 811, 808, 815, 816, - 810, 812, 829, 748, 828, 831, 832, 835, 839, 849, - 844, 846, 850, 853, 858, 855, 856, 859, 863, 857, - 865, 868, 869, 871, 870, 875, 885, 876, 878, 882, - 887, 888, 890, 892, 903, 896, 897, 913, 904, 909, - 914, 911, 917, 919, 921, 922, 923, 928, 930, 931, - - 926, 932, 933, 939, 940, 942, 943, 946, 945, 947, - 948, 955, 958, 951, 960, 961, 5511, 965, 968, 969, - 970, 971, 972, 5511, 974, 973, 976, 986, 978, 988, - 995, 983, 996, 1005, 998, 1003, 1008, 1001, 1009, 1010, - 1012, 1013, 1011, 1019, 1020, 1021, 1022, 1042, 1024, 1023, - 1027, 1028, 1029, 1035, 1046, 1040, 1049, 1036, 1057, 1059, - 1060, 1067, 1063, 1071, 1065, 1073, 1069, 1075, 1077, 1078, - 1079, 1080, 1082, 1081, 1088, 1089, 5511, 1093, 1094, 1105, - 1096, 1104, 1106, 1107, 1109, 1110, 1111, 1113, 1112, 1122, - 1117, 1129, 1120, 1133, 1131, 1134, 1135, 1136, 1139, 1138, - - 1145, 1140, 1148, 1146, 1153, 1158, 1166, 1163, 1168, 1171, - 1155, 1169, 1170, 1173, 1174, 1177, 1178, 1179, 1181, 1184, - 1191, 1186, 1187, 1189, 1193, 1201, 1198, 1196, 1204, 1197, - 1208, 1199, 1206, 1214, 1218, 1220, 1227, 1222, 1223, 1224, - 1225, 1233, 1229, 1237, 1238, 1239, 1240, 1241, 1243, 1246, - 1244, 1248, 1249, 1247, 1257, 1254, 1262, 1266, 1267, 1268, - 1270, 1277, 1273, 1280, 1276, 1282, 1289, 1281, 1285, 1290, - 1297, 1292, 1293, 1295, 1296, 1307, 1303, 1308, 1318, 1304, - 1306, 1319, 1316, 1320, 1323, 1324, 1325, 1326, 1327, 1328, - 1329, 1333, 1334, 1336, 1337, 1339, 1340, 1350, 1346, 1352, - - 1353, 1357, 1358, 1359, 1361, 1363, 1365, 1366, 1367, 1369, - 1370, 1371, 1378, 1374, 1375, 1385, 1386, 1387, 1388, 1391, - 1397, 1399, 1400, 1401, 1404, 1403, 1408, 1406, 1413, 1405, - 1414, 1415, 1419, 1421, 1422, 1426, 1429, 1432, 1427, 5511, - 1423, 1439, 1437, 1440, 1441, 1445, 1446, 1454, 1447, 1449, - 1450, 1451, 1452, 1462, 5511, 1458, 5511, 5511, 1460, 5511, - 5511, 1466, 1459, 1463, 1478, 1485, 1487, 1469, 1483, 1489, - 1490, 1497, 1511, 1493, 1495, 1496, 1492, 1499, 1505, 1500, - 1508, 1506, 1519, 1522, 1525, 1526, 1532, 1524, 1533, 1535, - 1537, 1540, 1538, 1541, 1543, 1547, 1544, 1548, 1550, 1549, - - 1551, 1554, 1569, 5511, 1555, 1570, 1573, 1572, 1580, 1575, - 1576, 1579, 1581, 1565, 1585, 1584, 1586, 1593, 1588, 1594, - 1601, 1596, 5511, 1598, 1599, 1604, 1603, 1610, 1606, 1600, - 1616, 1617, 1619, 1620, 1621, 1622, 1624, 5511, 1623, 1629, - 1626, 1631, 1632, 1637, 1638, 1633, 1640, 1642, 1644, 1643, - 1645, 1656, 1654, 1659, 1649, 1652, 1667, 1662, 1665, 1675, - 1669, 1672, 1677, 1678, 1679, 1680, 1688, 1685, 1690, 1683, - 1692, 1687, 1693, 1694, 1702, 1695, 1704, 1715, 1708, 1710, - 1713, 1723, 1718, 1720, 1721, 1722, 1725, 1729, 1730, 1731, - 1733, 1736, 1735, 1741, 5511, 1737, 1743, 5511, 1742, 1745, - - 1767, 1746, 1748, 1749, 1751, 1754, 1759, 1753, 1771, 1769, - 1773, 1781, 1777, 1782, 1784, 1789, 1790, 1792, 1793, 1796, - 1797, 1807, 1808, 1812, 1805, 1815, 1798, 1813, 1816, 1835, - 1817, 1818, 1819, 1825, 1821, 1826, 1830, 1828, 1827, 1839, - 1845, 1847, 5511, 1856, 1857, 1840, 1852, 1868, 1848, 1863, - 1864, 1866, 1867, 1876, 1869, 1871, 1872, 1874, 1879, 1880, - 1884, 1886, 1888, 1881, 1891, 5511, 1889, 5511, 1892, 1898, - 1901, 1899, 1903, 1902, 1904, 1907, 1910, 1914, 1924, 1922, - 1919, 5511, 1911, 1934, 1935, 1926, 1930, 1931, 1937, 1940, - 1941, 1948, 1938, 1949, 1947, 1945, 1952, 1954, 1946, 1960, - - 1963, 1961, 5511, 1964, 1967, 1969, 1977, 1979, 1972, 1974, - 1982, 1976, 1980, 1984, 1986, 1987, 1996, 1997, 1988, 1998, - 2001, 2008, 5511, 1995, 2005, 2015, 2011, 2007, 2012, 2014, - 2018, 2020, 2019, 2022, 2029, 2032, 2024, 2028, 2036, 2027, - 2038, 2041, 2044, 2042, 2045, 2043, 2047, 5511, 2048, 2050, - 124, 2051, 2055, 2056, 2058, 2057, 2074, 2059, 2075, 2077, - 2076, 2078, 2082, 2083, 2084, 2085, 2086, 2088, 1758, 2089, - 2091, 5511, 2093, 2094, 2095, 2096, 2099, 2100, 2109, 5511, - 2102, 2112, 2115, 2116, 2061, 2106, 2118, 2121, 2119, 2129, - 2131, 2132, 5511, 2136, 2139, 2140, 2133, 2141, 2143, 2148, - - 2137, 2149, 2150, 2154, 2155, 2156, 2159, 2158, 2160, 2161, - 2162, 2165, 2167, 2172, 2173, 5511, 2184, 2174, 2175, 2176, - 2185, 2186, 2195, 2191, 2193, 2199, 2200, 2213, 2202, 2197, - 2209, 2204, 2211, 2208, 2220, 2219, 2223, 2229, 2233, 2235, - 2225, 2231, 2237, 2227, 2239, 2241, 2242, 2254, 2256, 2252, - 2258, 2259, 2263, 2253, 2261, 5511, 2265, 2266, 2267, 2271, - 2284, 2270, 2282, 2274, 2286, 2289, 2290, 2291, 2293, 2296, - 2297, 2294, 2298, 2300, 2305, 2313, 2302, 2315, 2304, 5511, - 2318, 2319, 2320, 2323, 2326, 2328, 2329, 2331, 2332, 2333, - 2335, 2337, 2338, 2340, 2342, 2343, 2348, 5511, 2355, 2344, - - 2351, 2359, 2361, 2363, 2364, 2362, 2369, 2370, 2371, 5511, - 2378, 2379, 2376, 2388, 2374, 2385, 2386, 2390, 2387, 5511, - 2391, 2392, 2399, 2400, 2395, 5511, 2402, 2398, 2403, 2405, - 2406, 2408, 2409, 2413, 2414, 2416, 2419, 2422, 2425, 2427, - 5511, 2428, 2436, 2431, 2429, 2437, 2440, 2441, 2442, 2450, - 2444, 2451, 2459, 2462, 2452, 2461, 2443, 2464, 2467, 2468, - 2470, 2471, 5511, 2473, 2474, 2476, 2477, 2479, 2481, 2484, - 2495, 2485, 2488, 2490, 2493, 2496, 2498, 2500, 2502, 2501, - 2510, 2512, 2513, 2515, 2516, 2518, 2519, 2526, 2529, 2531, - 2533, 5511, 2536, 2537, 2538, 2525, 2540, 2527, 2544, 2545, - - 2548, 2549, 2550, 2552, 2553, 2562, 2564, 2559, 2569, 2565, - 2567, 2571, 2573, 2574, 2560, 2581, 2577, 2576, 2589, 2585, - 2587, 2596, 2588, 2591, 2595, 2597, 2598, 2599, 2600, 2605, - 2608, 2601, 2618, 2619, 2621, 2609, 2623, 2626, 2627, 5511, - 2630, 2628, 2631, 2634, 2637, 2640, 2642, 2644, 2649, 2638, - 2641, 2652, 2660, 2656, 5511, 2657, 5511, 2661, 2662, 2663, - 2671, 5511, 2669, 5511, 2670, 2677, 2674, 2678, 5511, 2680, - 2666, 2679, 2684, 2681, 2687, 2692, 2698, 2689, 2691, 2693, - 2700, 2695, 2705, 2702, 2704, 2711, 2712, 2713, 2716, 2719, - 2720, 2721, 2722, 5511, 2726, 2723, 2728, 2729, 2731, 2733, - - 2734, 2739, 2736, 2737, 2743, 2746, 2747, 2753, 2754, 2766, - 2750, 2768, 5511, 2761, 2764, 2765, 2771, 5511, 2769, 2772, - 2778, 2780, 2773, 2776, 2782, 2783, 2788, 2790, 2785, 2792, - 2799, 2801, 2791, 2803, 2804, 2809, 2813, 2811, 2814, 2817, - 2825, 2821, 2820, 2822, 2823, 2824, 2827, 2834, 2837, 2836, - 2838, 2835, 2843, 2846, 2847, 2839, 2849, 2850, 2851, 2853, - 2854, 2855, 2862, 2859, 2860, 2861, 2863, 5511, 2872, 2873, - 2876, 2877, 2874, 2882, 2864, 2883, 2885, 2887, 2890, 2886, - 2891, 5511, 2899, 5511, 2892, 2900, 2905, 2909, 2906, 2910, - 2912, 2915, 2916, 2920, 2921, 2922, 2923, 2924, 2927, 2931, - - 2929, 2936, 2945, 2932, 2934, 2937, 2942, 2948, 2949, 5511, - 2950, 2951, 2953, 2957, 2958, 2960, 2962, 2959, 2966, 2970, - 2972, 2980, 5511, 2978, 2982, 2981, 2986, 2989, 2988, 3000, - 2995, 5511, 2987, 2996, 3003, 2998, 3005, 5511, 3004, 5511, - 3002, 3006, 3009, 3013, 3015, 3016, 3018, 3019, 3026, 3023, - 3024, 3027, 3030, 3034, 3037, 3035, 3038, 5511, 3040, 3041, - 3042, 3043, 3050, 3052, 3053, 3054, 5511, 3058, 3060, 3063, - 3064, 3065, 3067, 3069, 3068, 3074, 3078, 3070, 3071, 3085, - 3080, 3081, 3087, 3095, 3097, 3102, 5511, 3098, 3096, 3110, - 3107, 3108, 3109, 3112, 3113, 3114, 3116, 3117, 3118, 3119, - - 3125, 3124, 3121, 3122, 3127, 3130, 3141, 3138, 3129, 3142, - 3072, 3143, 3146, 3151, 3152, 3155, 3157, 3149, 3159, 3170, - 3160, 3162, 3173, 3164, 3180, 3175, 5511, 3182, 3166, 3185, - 3177, 3186, 3188, 3190, 3198, 3193, 3194, 3195, 3203, 3196, - 5511, 3210, 3199, 3217, 3200, 3208, 3224, 3220, 3201, 3222, - 3226, 3227, 3230, 3228, 3232, 3233, 3236, 3237, 5511, 5511, - 3239, 3240, 5511, 3241, 3242, 3251, 3247, 3244, 3252, 3255, - 3259, 3256, 3260, 3258, 3264, 5511, 3266, 3275, 3270, 3272, - 3283, 3287, 3274, 3286, 3276, 3278, 3288, 3289, 3292, 3293, - 3294, 3296, 3305, 3302, 3300, 3304, 5511, 3303, 3306, 3312, - - 5511, 3309, 3310, 3313, 3317, 3330, 3331, 3321, 3334, 3318, - 3336, 3338, 3340, 3341, 3348, 3344, 3346, 3353, 3354, 3345, - 3347, 3357, 3365, 3368, 3372, 3375, 3370, 3371, 3379, 5511, - 3374, 3376, 3377, 3378, 3387, 3382, 3390, 3385, 5511, 3388, - 3391, 3393, 5511, 3392, 3401, 3406, 3408, 3394, 3415, 3411, - 3413, 3416, 3412, 5511, 3419, 5511, 3420, 3425, 3426, 5511, - 3428, 3429, 3430, 3432, 3433, 3434, 3438, 3445, 3436, 3446, - 3447, 3448, 3449, 3452, 3460, 3450, 5511, 3458, 3451, 3462, - 3472, 3466, 3468, 3461, 3474, 3463, 5511, 5511, 3478, 5511, - 3481, 3483, 3485, 5511, 3487, 3486, 3494, 3489, 3490, 3493, - - 3497, 3503, 5511, 3498, 3492, 3507, 3504, 3509, 3510, 3514, - 3515, 3516, 3517, 3518, 5511, 3519, 3521, 3529, 3520, 3523, - 3531, 3535, 3525, 5511, 3536, 3544, 3547, 3548, 3549, 5511, - 3550, 5511, 3551, 3552, 3555, 3554, 5511, 3561, 3558, 3567, - 3562, 3569, 3568, 3571, 3575, 3577, 3578, 3585, 3581, 3583, - 3582, 5511, 3584, 3587, 3592, 3593, 3589, 3597, 3605, 3602, - 3606, 3610, 3612, 3609, 3613, 3615, 3619, 3620, 3622, 3623, - 3631, 3627, 3633, 5511, 3634, 3635, 3637, 5511, 3638, 3639, - 3648, 3643, 3649, 3641, 3650, 3653, 5511, 3654, 3658, 3655, - 3669, 5511, 5511, 3656, 5511, 3665, 3663, 3672, 3652, 3673, - - 3679, 3676, 3681, 3683, 3684, 3689, 3690, 3697, 3698, 3699, - 3701, 3700, 3695, 5511, 5511, 3706, 3709, 3707, 3712, 3713, - 3717, 3718, 3725, 3721, 3722, 3728, 3732, 3739, 5511, 3730, - 3720, 3738, 5511, 3731, 3741, 3743, 3744, 3745, 3747, 3748, - 3752, 3749, 3754, 3755, 3757, 3758, 3761, 3762, 3763, 3768, - 3772, 5511, 3773, 3774, 3775, 3777, 3778, 3779, 3782, 3784, - 3785, 5511, 3789, 3788, 3792, 3797, 3791, 3799, 3807, 3814, - 3816, 3809, 3817, 3818, 3811, 3822, 3826, 5511, 3827, 3825, - 3828, 3829, 3834, 3836, 3837, 3839, 3840, 3843, 3844, 3847, - 3850, 3851, 3852, 3853, 3854, 5511, 3855, 3863, 3857, 3869, - - 3864, 3866, 3871, 3877, 3880, 3870, 3875, 3881, 3884, 5511, - 3885, 3886, 3887, 3888, 3895, 3891, 3896, 3897, 5511, 3899, - 3901, 3906, 3903, 3904, 3907, 3914, 3916, 3915, 5511, 3919, - 3920, 3922, 3924, 3926, 3929, 3928, 5511, 3932, 3936, 3938, - 3940, 3942, 3951, 3943, 3944, 3946, 3947, 3952, 3955, 3957, - 3954, 3971, 3958, 5511, 3960, 5511, 3967, 3972, 3981, 3977, - 3970, 5511, 3979, 3982, 3984, 3974, 3985, 5511, 3987, 3988, - 3991, 3993, 5511, 3997, 3996, 4002, 4003, 4008, 4009, 5511, - 4012, 4013, 4014, 4023, 4024, 4021, 4025, 4026, 4028, 4029, - 4030, 4031, 5511, 4033, 4035, 4042, 4045, 4044, 4034, 4047, - - 4056, 4046, 5511, 4052, 4048, 4058, 4060, 4061, 4062, 4064, - 4072, 4067, 4063, 5511, 4070, 4071, 4083, 4079, 4088, 5511, - 5511, 4075, 4084, 4091, 4080, 4092, 5511, 4095, 4102, 4097, - 4101, 4098, 5511, 5511, 4104, 5511, 4105, 5511, 4108, 5511, - 5511, 4110, 4111, 4112, 4113, 4120, 5511, 4125, 5511, 4127, - 4128, 4114, 4116, 4126, 5511, 4132, 4133, 4135, 5511, 4139, - 4142, 4140, 4141, 5511, 4144, 4146, 4149, 5511, 4152, 4155, - 4157, 4159, 4161, 4160, 4166, 4150, 4168, 4172, 4176, 4178, - 4182, 4179, 4169, 4183, 4185, 4188, 4189, 4190, 4192, 4194, - 4196, 4198, 4199, 4202, 4203, 4204, 4207, 4205, 4214, 4217, - - 4206, 4216, 4218, 4219, 4220, 4221, 4228, 4223, 4227, 5511, - 4229, 4230, 4233, 4241, 4235, 4240, 4246, 4254, 4258, 4259, - 5511, 4261, 5511, 4263, 4248, 3790, 4250, 5511, 4255, 4265, - 4267, 4268, 4270, 4271, 4272, 4273, 5511, 4277, 4278, 4284, - 4281, 5511, 4285, 4287, 4292, 4295, 4296, 4282, 4298, 4299, - 4302, 4301, 4305, 4307, 4314, 4309, 4311, 4312, 4319, 4315, - 4321, 4323, 4330, 4334, 4336, 4340, 5511, 4325, 5511, 4337, - 4329, 4322, 4345, 4343, 4347, 5511, 5511, 4349, 4351, 4353, - 4355, 4356, 4358, 4360, 5511, 4361, 4367, 4373, 4362, 5511, - 4359, 4365, 4378, 5511, 4368, 4382, 4383, 4387, 4384, 4388, - - 4391, 5511, 5511, 5511, 5511, 4392, 4394, 4395, 4396, 4397, - 4398, 4404, 4399, 5511, 5511, 5511, 4405, 4401, 4412, 4411, - 4413, 4418, 5511, 4420, 4422, 4423, 4421, 4425, 4430, 4431, - 4434, 4433, 4437, 4446, 4442, 4443, 4441, 4445, 4449, 4453, - 5511, 5511, 4454, 4458, 4459, 4466, 4463, 4464, 4476, 4471, - 4472, 4473, 4474, 4478, 4479, 4480, 5511, 4483, 4487, 5511, - 4481, 5511, 4491, 4494, 4485, 4495, 4497, 4498, 4500, 4502, - 5511, 5511, 4504, 4505, 4509, 4513, 4510, 4515, 4516, 4518, - 4514, 5511, 4519, 5511, 4520, 4522, 4536, 4527, 4538, 4543, - 4542, 4539, 4544, 5511, 4545, 4546, 5511, 4548, 4550, 4551, - - 5511, 4555, 4558, 4561, 5511, 4563, 5511, 4568, 5511, 4553, - 4571, 5511, 4569, 4574, 4577, 4579, 4580, 4572, 5511, 4581, - 4587, 4590, 4593, 4582, 4595, 4584, 4596, 4604, 4601, 4603, - 5511, 5511, 4612, 4605, 4588, 4609, 4613, 4620, 4615, 4617, - 4623, 5511, 5511, 4625, 5511, 4616, 4631, 5511, 4618, 4632, - 4627, 4633, 4636, 4626, 4637, 4642, 4639, 4647, 4662, 4648, - 4650, 4652, 4659, 4663, 4665, 4657, 4669, 4668, 4670, 4671, - 4672, 4675, 5511, 4677, 4678, 4679, 5511, 4683, 4684, 4686, - 4689, 5511, 4690, 4693, 4698, 5511, 4687, 4701, 4704, 4703, - 4706, 4715, 4710, 4711, 5511, 5511, 5511, 5511, 4717, 4713, - - 5511, 4718, 4722, 5511, 5511, 4719, 4724, 4725, 5511, 4726, - 5511, 4728, 5511, 4730, 4736, 4732, 5511, 4742, 4739, 5511, - 4751, 4753, 4755, 4748, 4746, 4756, 4758, 5511, 4765, 4762, - 4764, 4761, 4768, 4770, 4771, 4772, 4779, 4774, 4778, 5511, - 4781, 4780, 4782, 5511, 4784, 5511, 4785, 4788, 4789, 4787, - 4792, 4794, 4797, 4804, 4803, 4807, 4811, 5511, 4815, 4817, - 5511, 4810, 5511, 4819, 4812, 4820, 4821, 4822, 5511, 4824, - 4825, 4826, 4832, 5511, 4833, 4838, 5511, 4835, 4839, 4842, - 4844, 4846, 4848, 4850, 4853, 4855, 4856, 4857, 4863, 4869, - 4864, 5511, 5511, 5511, 4858, 4860, 4881, 4879, 4882, 4889, - - 4876, 5511, 4886, 4887, 4871, 4899, 4884, 4896, 5511, 4898, - 4888, 4900, 5511, 4904, 4906, 4908, 4910, 4911, 4915, 4918, - 4920, 4921, 5511, 4923, 5511, 5511, 4912, 5511, 4925, 4927, - 4928, 4929, 5511, 4933, 4934, 4935, 4936, 4938, 4939, 4941, - 5511, 5511, 4943, 5511, 4952, 4940, 4959, 4956, 4961, 4957, - 5511, 4963, 4965, 4966, 4967, 4968, 5511, 4969, 4970, 4972, - 4973, 4976, 4975, 4978, 4980, 4981, 5511, 5511, 4982, 4984, - 5511, 5511, 4988, 4999, 5000, 5511, 5511, 5511, 5006, 5511, - 5008, 5012, 5016, 5020, 5011, 5511, 5022, 5019, 5024, 5511, - 5023, 5026, 5511, 5511, 5027, 5029, 5030, 5511, 5031, 5032, - - 5035, 5040, 5043, 5044, 5046, 5048, 5053, 5056, 5054, 5055, - 5061, 5058, 5062, 5064, 5066, 5068, 5511, 5511, 5072, 5511, - 5511, 5075, 5077, 5081, 5085, 5087, 5089, 5091, 5511, 5069, - 5093, 5094, 5511, 5096, 5097, 5098, 5099, 5101, 5103, 5511, - 5511, 5104, 5105, 5106, 5117, 5107, 5511, 5120, 5115, 5113, - 5119, 5111, 5121, 5126, 5511, 5128, 5511, 5511, 5511, 5511, - 5511, 5511, 5511, 5511, 5131, 5511, 5136, 5511, 5129, 5133, - 5138, 5140, 5511, 5141, 5144, 5145, 5146, 5147, 5156, 4990, - 5149, 5151, 5159, 5153, 5161, 5160, 5163, 5511, 5165, 5167, - 5171, 5173, 5184, 5187, 5189, 5174, 5170, 5191, 5177, 5192, - - 5195, 5196, 5204, 5199, 5201, 5203, 5200, 5511, 5207, 5511, - 5205, 5511, 5511, 5209, 5214, 5210, 5206, 5230, 5232, 5217, - 5216, 5227, 5234, 5511, 5228, 5235, 5236, 5511, 5237, 5238, - 5239, 5241, 5242, 5244, 5245, 5247, 5511, 5251, 5253, 5260, - 5256, 5268, 5264, 5266, 5270, 5273, 5267, 5280, 5276, 5283, - 5511, 5284, 5277, 5285, 5279, 5287, 5295, 5290, 5291, 5293, - 5511, 5300, 5301, 5297, 5303, 5305, 5307, 5311, 5314, 5308, - 5511, 5315, 5316, 5318, 5325, 5327, 5329, 5323, 5331, 5333, - 5335, 5336, 5343, 5339, 5344, 5345, 5347, 5348, 5511, 5354, - 5349, 5511, 5355, 5356, 5357, 5358, 5362, 5511, 5366, 5359, - - 5369, 5370, 5373, 5374, 5511, 5380, 5383, 5384, 5511, 5385, - 5511, 5511, 5387, 5375, 5386, 5396, 5398, 5511, 5511, 5511, - 5419, 5426, 5433, 5440, 5447, 88, 5454, 5461, 5468, 5475, - 5482, 5489, 5496, 5503 + 339, 340, 343, 346, 342, 349, 350, 359, 351, 806, + 372, 771, 377, 699, 381, 549, 355, 385, 198, 389, + 393, 0, 385, 373, 395, 387, 391, 392, 257, 390, + 394, 396, 397, 399, 401, 414, 403, 412, 420, 422, + 426, 423, 430, 433, 434, 435, 436, 418, 447, 445, + 450, 442, 451, 453, 454, 457, 458, 473, 459, 460, + 409, 467, 475, 477, 484, 469, 487, 488, 485, 492, + + 490, 500, 502, 498, 499, 501, 503, 504, 508, 509, + 511, 513, 516, 514, 515, 519, 521, 520, 528, 522, + 533, 534, 541, 536, 540, 543, 551, 554, 546, 555, + 547, 557, 560, 563, 564, 572, 567, 568, 570, 573, + 574, 576, 577, 578, 579, 587, 594, 590, 596, 598, + 589, 599, 600, 603, 606, 580, 615, 607, 619, 611, + 623, 608, 624, 627, 616, 622, 630, 631, 629, 640, + 636, 645, 641, 648, 647, 652, 644, 660, 646, 655, + 656, 657, 658, 661, 662, 663, 665, 671, 669, 675, + 674, 682, 681, 679, 692, 685, 688, 690, 693, 697, + + 689, 703, 705, 717, 718, 713, 719, 720, 722, 724, + 727, 725, 728, 735, 736, 737, 738, 739, 747, 742, + 744, 751, 750, 752, 761, 746, 765, 767, 759, 769, + 770, 792, 777, 775, 772, 785, 780, 5552, 798, 788, + 818, 789, 790, 825, 803, 805, 810, 807, 814, 812, + 841, 816, 827, 836, 844, 828, 839, 840, 843, 849, + 846, 862, 852, 845, 855, 857, 869, 864, 866, 868, + 877, 870, 872, 876, 879, 878, 778, 881, 883, 886, + 887, 891, 894, 895, 897, 899, 896, 910, 904, 921, + 903, 916, 923, 920, 911, 928, 926, 930, 932, 933, + + 942, 937, 938, 940, 943, 944, 946, 947, 950, 951, + 952, 954, 956, 962, 965, 958, 967, 971, 5552, 975, + 968, 973, 977, 978, 979, 5552, 982, 983, 980, 990, + 987, 999, 992, 995, 1004, 1007, 985, 1008, 1016, 1006, + 1013, 1014, 1017, 1019, 1021, 1022, 1024, 1025, 1027, 1047, + 1030, 1028, 1031, 1032, 1033, 1040, 1052, 1039, 1059, 1042, + 1056, 1074, 1060, 1069, 1062, 1070, 1077, 1071, 1080, 1082, + 1075, 1083, 1084, 1086, 1088, 1091, 1092, 1089, 1095, 5552, + 1105, 1102, 1113, 1109, 1110, 1099, 1112, 1115, 1116, 1119, + 1120, 1122, 1127, 1129, 1137, 1132, 1142, 1138, 1140, 1139, + + 1141, 1146, 1145, 1149, 1147, 1160, 1157, 1162, 1167, 1175, + 1172, 1174, 1182, 1164, 1152, 1178, 1177, 1179, 1181, 1186, + 1094, 1180, 1188, 1195, 1190, 1193, 1197, 1198, 1206, 1203, + 1201, 1204, 1205, 1209, 1213, 1214, 1217, 1220, 1221, 1230, + 1226, 1225, 1229, 1227, 1237, 1238, 1241, 1242, 1239, 1244, + 1245, 1247, 1250, 1248, 1253, 1254, 1256, 1264, 1266, 1270, + 1271, 1275, 1261, 1262, 1283, 1281, 1284, 1282, 1287, 1294, + 1289, 1290, 1291, 1301, 1296, 1297, 1299, 1305, 1313, 1300, + 1309, 1322, 1317, 1319, 1324, 1320, 1325, 1328, 1329, 1330, + 1331, 1332, 1333, 1334, 1336, 1338, 1340, 1335, 1345, 1341, + + 1355, 1359, 1360, 1342, 1362, 1363, 1364, 1365, 1366, 1368, + 1371, 1369, 1374, 1375, 1377, 1376, 1386, 1379, 1380, 1389, + 1393, 1392, 1396, 1401, 1404, 1398, 1405, 1408, 1407, 1410, + 1411, 1413, 1422, 1420, 1414, 1426, 1415, 1427, 1429, 1432, + 1433, 1437, 1438, 5552, 1439, 1446, 1443, 1444, 1445, 1449, + 1451, 1459, 1452, 1454, 1455, 1456, 1462, 1466, 5552, 1464, + 5552, 5552, 1467, 5552, 5552, 1468, 1470, 1480, 1483, 1489, + 1491, 1486, 1493, 1494, 1495, 1504, 1516, 1500, 1501, 1503, + 1499, 1506, 1513, 1465, 1525, 1514, 1530, 1502, 1533, 1527, + 1537, 1538, 1540, 1541, 1542, 1544, 1543, 1546, 1549, 1552, + + 1553, 1555, 1548, 1556, 1565, 1558, 1575, 5552, 1567, 1577, + 1582, 1579, 1586, 1585, 1581, 1583, 1589, 1590, 1593, 1561, + 1592, 1595, 1510, 1596, 1605, 1600, 5552, 1601, 1603, 1602, + 1606, 1613, 1609, 1617, 1618, 1620, 1622, 1623, 1624, 1625, + 1627, 5552, 1626, 1635, 1629, 1636, 1632, 1639, 1640, 1644, + 1645, 1646, 1647, 1652, 1648, 1662, 1654, 1657, 1658, 1661, + 1668, 1664, 1671, 1673, 1679, 1680, 1681, 1682, 1683, 1684, + 1691, 1686, 1693, 1688, 1696, 1698, 1703, 1694, 1697, 1706, + 1695, 1714, 1718, 1719, 1710, 1720, 1727, 1723, 1725, 1726, + 1729, 1731, 1732, 1735, 1736, 1738, 1741, 1740, 1746, 5552, + + 1742, 1748, 5552, 1749, 1750, 1772, 1751, 1753, 1755, 1759, + 1754, 1763, 1774, 1764, 1768, 1776, 1786, 1782, 1787, 1784, + 1792, 1795, 1794, 1798, 1801, 1803, 1810, 1811, 1813, 1821, + 1820, 1802, 1806, 1817, 1836, 1818, 1822, 1826, 1829, 1831, + 1823, 1838, 1833, 1834, 1839, 1849, 1857, 5552, 1851, 1860, + 1852, 1854, 1865, 1864, 1866, 1868, 1870, 1872, 1880, 1873, + 1875, 1876, 1878, 1883, 1884, 1887, 1886, 1891, 1890, 1907, + 5552, 1889, 5552, 1892, 1893, 1902, 1903, 1908, 1909, 1910, + 1911, 1914, 1918, 1922, 1931, 1920, 5552, 1912, 1935, 1936, + 1938, 1930, 1932, 1939, 1942, 1943, 1951, 1946, 1953, 1956, + + 1948, 1949, 1960, 1961, 1962, 1963, 1964, 5552, 1972, 1970, + 1973, 1980, 1982, 1975, 1971, 1985, 1983, 1987, 1990, 1991, + 1992, 1999, 2002, 1995, 1998, 2004, 2013, 5552, 1997, 2008, + 2017, 2019, 2012, 2014, 2020, 2022, 2016, 2024, 2026, 2029, + 2036, 2037, 2034, 2035, 2044, 2033, 2039, 2045, 2050, 2041, + 2047, 2051, 2054, 5552, 2055, 2061, 124, 2058, 2062, 2063, + 2064, 2067, 2066, 2068, 2084, 2086, 2082, 2071, 2085, 2081, + 2083, 2089, 2091, 2092, 2093, 2098, 2096, 5552, 2102, 2103, + 2104, 2099, 2110, 2105, 2107, 5552, 2108, 2119, 2120, 2118, + 2128, 2129, 2130, 2133, 2134, 2135, 2137, 2136, 5552, 2142, + + 2144, 2145, 2143, 2146, 2152, 2157, 2154, 2158, 2159, 2160, + 2161, 2164, 2162, 2165, 2167, 2168, 2175, 2170, 2177, 2179, + 2180, 5552, 2193, 2182, 2183, 2190, 2195, 2192, 2207, 2194, + 2198, 2202, 2208, 2216, 2205, 2211, 2223, 2226, 2214, 2222, + 2234, 2232, 2233, 2240, 2242, 2244, 2230, 2236, 2246, 2245, + 2248, 2252, 2251, 2262, 2263, 2259, 2267, 2261, 2272, 2260, + 2274, 5552, 2276, 2268, 2278, 2282, 2290, 2286, 2287, 2288, + 2294, 2293, 2295, 2297, 2299, 2301, 2304, 2298, 2309, 2300, + 2310, 2317, 2311, 2320, 2321, 5552, 2328, 2324, 2322, 2333, + 2330, 2335, 2336, 2338, 2339, 2340, 2345, 2342, 2346, 2347, + + 2348, 2354, 2355, 5552, 2356, 2364, 2365, 2358, 2368, 2371, + 2351, 2372, 2374, 2375, 2378, 2380, 5552, 2388, 2389, 2379, + 2396, 2386, 2387, 2391, 2398, 2394, 5552, 2399, 2400, 2407, + 2409, 2404, 5552, 2411, 2408, 2412, 2413, 2415, 2416, 2417, + 2420, 2421, 2424, 2426, 2436, 2427, 2433, 5552, 2430, 2445, + 2437, 2443, 2448, 2447, 2451, 2453, 2454, 2458, 2463, 2470, + 2465, 2467, 2457, 2472, 2473, 2474, 2475, 2480, 2481, 5552, + 2482, 2484, 2486, 2487, 2490, 2489, 2492, 2503, 2483, 2499, + 2500, 2505, 2506, 2508, 2510, 2509, 2512, 2513, 2519, 2522, + 2524, 2526, 2525, 2529, 2536, 2541, 2537, 2542, 5552, 2545, + + 2547, 2540, 2548, 2550, 2552, 2553, 2554, 2556, 2557, 2558, + 2559, 2561, 2575, 2578, 2562, 2570, 2568, 2579, 2581, 2583, + 2584, 2585, 2592, 2588, 2589, 2597, 2594, 2595, 2605, 2600, + 2606, 2607, 2608, 2596, 2609, 2614, 2611, 2617, 2616, 2622, + 2618, 2631, 2624, 2632, 2633, 2634, 5552, 2638, 2639, 2642, + 2644, 2648, 2645, 2651, 2655, 2657, 2649, 2652, 2658, 2671, + 2664, 5552, 2666, 5552, 2667, 2668, 2674, 2682, 5552, 2680, + 5552, 2683, 2690, 2677, 2681, 5552, 2691, 2672, 2687, 2698, + 2685, 2695, 2701, 2702, 2704, 2705, 2707, 2708, 2710, 2711, + 2712, 2713, 2715, 2719, 2718, 2725, 2721, 2730, 2727, 2733, + + 2734, 5552, 2736, 2737, 2740, 2742, 2744, 2745, 2746, 2748, + 2749, 2751, 2750, 2760, 2756, 2764, 2763, 2773, 2757, 2778, + 5552, 2774, 2780, 2775, 2781, 5552, 2784, 2782, 2785, 2790, + 2783, 2792, 2793, 2795, 2799, 2801, 2796, 2809, 2811, 2802, + 2814, 2817, 2803, 2818, 2825, 2824, 2830, 2832, 2826, 2834, + 2835, 2836, 2837, 2838, 2840, 2847, 2850, 2846, 2855, 2842, + 2852, 2860, 2861, 2845, 2853, 2862, 2864, 2867, 2868, 2870, + 2875, 2871, 2872, 2874, 2876, 5552, 2885, 2879, 2889, 2886, + 2890, 2893, 2877, 2895, 2900, 2896, 2903, 2906, 2898, 5552, + 2902, 5552, 2904, 2916, 2921, 2924, 2925, 2927, 2932, 2926, + + 2928, 2933, 2935, 2934, 2936, 2941, 2942, 2945, 2946, 2949, + 2959, 2944, 2956, 2948, 2951, 2960, 2962, 5552, 2963, 2967, + 2970, 2968, 2972, 2973, 2979, 2977, 2975, 2982, 2983, 2996, + 5552, 2991, 2998, 2997, 3000, 3008, 3004, 3012, 3007, 5552, + 3010, 3011, 3020, 3016, 3018, 5552, 3023, 5552, 3017, 3019, + 3024, 3026, 3028, 3033, 3034, 3037, 3045, 3040, 3022, 3043, + 3044, 3047, 3055, 3050, 3052, 3056, 5552, 3058, 3059, 2908, + 3062, 3064, 3065, 3066, 3054, 5552, 3071, 3081, 3073, 3076, + 3078, 3083, 3084, 3087, 3089, 3090, 3085, 3091, 3099, 3095, + 3096, 3100, 3109, 3110, 3116, 5552, 3112, 3118, 3125, 3121, + + 3122, 3103, 3123, 3124, 3128, 3129, 3130, 3131, 3132, 3133, + 3137, 3135, 3142, 3138, 3139, 3156, 3149, 3146, 3153, 3157, + 3159, 3160, 3161, 3165, 3169, 3171, 3163, 3181, 3184, 3174, + 3176, 3187, 3178, 3194, 3189, 5552, 3196, 3191, 3199, 3198, + 3200, 3202, 3204, 3212, 3207, 3208, 3210, 3217, 3213, 5552, + 3235, 3218, 3214, 3225, 3222, 3244, 3215, 3227, 3231, 3240, + 3241, 3242, 3245, 3246, 3248, 3251, 3253, 5552, 5552, 3255, + 3257, 5552, 3260, 3256, 3264, 3262, 3259, 3263, 3272, 3274, + 3270, 3275, 3271, 3282, 5552, 3281, 3290, 3285, 3287, 3295, + 3299, 3292, 3301, 3300, 3288, 3302, 3303, 3304, 3310, 3311, + + 3312, 3320, 3316, 3317, 3318, 5552, 3319, 3323, 3325, 5552, + 3324, 3326, 3327, 3335, 3346, 3347, 3341, 3349, 3329, 3353, + 3354, 3355, 3356, 3364, 3362, 3360, 3369, 3370, 3374, 3372, + 3380, 3382, 3390, 3391, 3392, 3361, 3393, 3394, 3401, 5552, + 3396, 3399, 3397, 3400, 3410, 3402, 3411, 3407, 5552, 3414, + 3412, 3413, 5552, 3331, 3415, 3421, 3423, 3417, 3433, 3428, + 3430, 3432, 3436, 5552, 3439, 5552, 3363, 3429, 3442, 5552, + 3440, 3446, 3448, 3450, 3447, 3454, 3455, 3462, 3451, 3457, + 3463, 3464, 3465, 3467, 3474, 3470, 5552, 3475, 3473, 3477, + 3478, 3480, 3482, 3485, 3488, 3490, 5552, 5552, 3496, 5552, + + 3497, 3492, 3498, 5552, 3501, 3499, 3510, 3502, 3511, 3505, + 3518, 3515, 5552, 3520, 3509, 3521, 3524, 3525, 3526, 3528, + 3530, 3531, 3532, 3535, 5552, 3536, 3537, 3544, 3534, 3539, + 3545, 3550, 3551, 5552, 3553, 3560, 3561, 3563, 3565, 5552, + 3564, 5552, 3566, 3569, 3574, 3567, 5552, 3578, 3570, 3583, + 3577, 3585, 3587, 3588, 3591, 3592, 3594, 3601, 3597, 3598, + 3599, 5552, 3600, 3604, 3606, 3608, 3612, 3613, 3621, 3617, + 3623, 3616, 3629, 3626, 3630, 3634, 3636, 3637, 3639, 3640, + 3648, 3643, 3644, 5552, 3650, 3653, 3654, 5552, 3651, 3655, + 3666, 3660, 3663, 3657, 3668, 3669, 5552, 3667, 3671, 3672, + + 3680, 5552, 5552, 3670, 5552, 3686, 3674, 3687, 3688, 3690, + 3691, 3694, 3695, 3699, 3701, 3703, 3705, 3696, 3714, 3717, + 3718, 3716, 3721, 3722, 5552, 5552, 3724, 3725, 3727, 3731, + 3732, 3734, 3735, 3743, 3739, 3747, 3750, 3752, 3760, 5552, + 3741, 3738, 3755, 5552, 3756, 3761, 3762, 3763, 3764, 3765, + 3768, 3771, 3772, 3767, 3774, 3773, 3775, 3777, 3786, 3780, + 3788, 3790, 5552, 3792, 3794, 3795, 3797, 3798, 3802, 3803, + 3804, 3805, 5552, 3808, 3810, 3812, 3817, 3811, 3818, 3827, + 3833, 3835, 3829, 3836, 3837, 3839, 3841, 3842, 5552, 3845, + 3843, 3846, 3807, 3853, 3855, 3856, 3858, 3859, 3861, 3864, + + 3868, 3870, 3862, 3865, 3871, 3872, 5552, 3873, 3881, 3882, + 3884, 3886, 3887, 3889, 3894, 3897, 3888, 3890, 3898, 3900, + 5552, 3902, 3903, 3906, 3908, 3914, 3909, 3915, 3916, 5552, + 3919, 3920, 3925, 3923, 3924, 3933, 3927, 3939, 3929, 5552, + 3935, 3938, 3946, 3942, 3944, 3945, 3948, 5552, 3954, 3955, + 3956, 3958, 3961, 3968, 3964, 3963, 3965, 3970, 3972, 3974, + 3975, 3973, 3986, 3991, 3989, 5552, 3976, 5552, 3990, 3994, + 3998, 4000, 3997, 5552, 4002, 4004, 4006, 4007, 4003, 5552, + 4011, 4008, 4010, 4014, 5552, 4013, 4027, 4015, 4021, 4029, + 4030, 5552, 4037, 4038, 4034, 4046, 4048, 4044, 4045, 4049, + + 4051, 4047, 4052, 4053, 5552, 4056, 4055, 4065, 4057, 4066, + 4067, 4068, 4070, 4073, 5552, 4074, 4076, 4077, 4078, 4080, + 4081, 4083, 4091, 4089, 4082, 5552, 4090, 4093, 4105, 4094, + 4107, 5552, 5552, 4103, 4110, 4112, 4104, 4113, 5552, 4116, + 4124, 4119, 4122, 4123, 5552, 5552, 4126, 5552, 4127, 5552, + 4128, 5552, 5552, 4129, 4133, 4135, 4136, 4138, 5552, 4144, + 5552, 4152, 4147, 4139, 4149, 4151, 5552, 4150, 4153, 4158, + 5552, 4154, 4166, 4161, 4162, 5552, 4168, 4164, 4170, 5552, + 4172, 4175, 4176, 4180, 4182, 4178, 4186, 4187, 4189, 4191, + 4196, 4198, 4202, 4193, 4199, 4203, 4208, 4206, 4210, 4211, + + 4212, 4214, 4216, 4220, 4221, 4223, 4224, 4225, 4227, 4226, + 4229, 4235, 4238, 4237, 4239, 4240, 4241, 4242, 4243, 4248, + 4251, 4252, 5552, 4250, 4254, 4255, 4258, 4260, 4264, 4270, + 4272, 4280, 4281, 5552, 4283, 5552, 4285, 4273, 4277, 4287, + 5552, 4289, 4290, 4292, 4293, 4294, 4295, 4298, 4296, 5552, + 4300, 4301, 4302, 4305, 5552, 4310, 4318, 4307, 4312, 4320, + 4321, 4322, 4324, 4328, 4326, 4332, 4334, 4335, 4337, 4338, + 4339, 4341, 4343, 4347, 4349, 4348, 4352, 4357, 4361, 5552, + 4356, 5552, 4362, 4364, 4365, 4368, 4366, 4369, 5552, 5552, + 4370, 4374, 4379, 4372, 4376, 4381, 4389, 5552, 4382, 4391, + + 4399, 4392, 5552, 4384, 4396, 4401, 5552, 4402, 4407, 4403, + 4409, 4410, 4411, 4413, 5552, 5552, 5552, 5552, 4417, 4419, + 4420, 4421, 4426, 4427, 4425, 4428, 5552, 5552, 5552, 4432, + 4430, 4440, 4431, 4429, 4438, 4442, 5552, 4446, 4449, 4451, + 4452, 4458, 4460, 4455, 4463, 4453, 4464, 4472, 4465, 4473, + 4469, 4475, 4477, 4479, 5552, 5552, 4481, 4486, 4487, 4489, + 4491, 4492, 4499, 4498, 4495, 4501, 4503, 4504, 4506, 4505, + 5552, 4508, 4516, 5552, 4509, 5552, 4515, 4522, 4507, 4523, + 4524, 4526, 4528, 4530, 5552, 5552, 4531, 4514, 4532, 4538, + 4540, 4543, 4541, 4545, 4542, 5552, 4547, 5552, 4546, 4549, + + 4555, 4563, 4564, 4571, 4568, 4569, 4570, 5552, 4572, 4560, + 5552, 4574, 4576, 4579, 5552, 4582, 4585, 4587, 5552, 4589, + 5552, 4592, 5552, 4580, 4599, 5552, 4595, 4596, 4602, 4604, + 4605, 4606, 5552, 4607, 4610, 4611, 4614, 4616, 4618, 4620, + 4621, 4622, 4629, 4627, 4624, 5552, 5552, 4638, 4630, 4634, + 4635, 4640, 4647, 4642, 4644, 4650, 5552, 5552, 4651, 5552, + 4652, 4658, 5552, 4643, 4659, 4657, 4664, 4645, 4665, 4666, + 4671, 4672, 4673, 4683, 4676, 4679, 4686, 4688, 4692, 4696, + 4684, 4694, 4690, 4698, 4702, 4701, 4703, 5552, 4705, 4706, + 4707, 5552, 4713, 4708, 4717, 4714, 5552, 4718, 4720, 4722, + + 5552, 4726, 4733, 4730, 4728, 4735, 4742, 4738, 4739, 5552, + 5552, 5552, 5552, 4746, 4740, 5552, 4743, 4747, 5552, 5552, + 4749, 4753, 4755, 5552, 4754, 5552, 4756, 5552, 4760, 4763, + 4769, 4764, 5552, 4767, 4778, 5552, 4781, 4784, 4786, 4787, + 4771, 4757, 4788, 5552, 4795, 4792, 4794, 4801, 4790, 4798, + 4802, 4803, 4810, 4805, 4812, 5552, 4806, 4809, 4813, 5552, + 4815, 5552, 4816, 4818, 4822, 4823, 4820, 4827, 4834, 4835, + 4817, 4838, 4828, 5552, 4845, 4849, 5552, 4839, 5552, 4851, + 4841, 4852, 4853, 4854, 5552, 4856, 4858, 4861, 4862, 5552, + 4863, 4865, 5552, 4866, 4867, 4873, 4875, 4870, 4877, 4882, + + 4880, 4892, 4883, 4885, 4887, 4894, 4895, 4903, 5552, 5552, + 5552, 4899, 4888, 4912, 4910, 4913, 4920, 4901, 5552, 4917, + 4918, 4905, 4921, 4925, 4927, 5552, 4929, 4930, 4931, 5552, + 4933, 4935, 4936, 4937, 4939, 4946, 4948, 4953, 4950, 5552, + 4957, 5552, 5552, 4954, 5552, 4938, 4958, 4959, 4961, 5552, + 4964, 4965, 4966, 4967, 4969, 4970, 4972, 5552, 5552, 4975, + 5552, 4983, 4971, 4984, 4987, 4988, 4991, 4992, 5552, 4993, + 4994, 4995, 4998, 5001, 5552, 5003, 5002, 5004, 5005, 5008, + 5006, 5012, 5015, 5018, 5552, 5552, 5017, 5019, 5552, 5552, + 5028, 5034, 5016, 5552, 5552, 5552, 5039, 5552, 5041, 5045, + + 5049, 5053, 5031, 5552, 5055, 5044, 5052, 5552, 5056, 5058, + 5552, 5552, 5060, 5059, 5064, 5065, 5552, 5068, 5069, 5070, + 5075, 5077, 5072, 5079, 5081, 5089, 5091, 5082, 5094, 5092, + 5095, 5096, 5097, 5099, 5103, 5552, 5552, 5105, 5552, 5552, + 5111, 5115, 5118, 5120, 5122, 5124, 5126, 5552, 5127, 5129, + 5112, 5552, 5131, 5133, 5134, 5137, 5138, 5135, 5141, 5552, + 5552, 5142, 5143, 5144, 5151, 5145, 5552, 5153, 5161, 5154, + 5157, 5158, 5164, 5159, 5552, 5165, 5552, 5552, 5552, 5552, + 5552, 5552, 5552, 5552, 5166, 5552, 5172, 5552, 5167, 5174, + 5102, 5173, 5178, 5552, 5176, 5184, 5181, 5185, 5179, 5188, + + 5191, 5196, 5198, 5197, 5200, 5202, 5201, 5203, 5552, 5205, + 5206, 5208, 5209, 5211, 5220, 5228, 5230, 5212, 5214, 5232, + 5233, 5236, 5224, 5237, 5245, 5240, 5242, 5244, 5246, 5248, + 5552, 5251, 5552, 5250, 5552, 5552, 5256, 5257, 5253, 5259, + 5269, 5270, 5260, 5267, 5271, 5273, 5552, 5275, 5552, 5277, + 5279, 5552, 5276, 5281, 5282, 5284, 5285, 5287, 5288, 5289, + 5552, 5292, 5299, 5303, 5300, 5313, 5308, 5311, 5312, 5314, + 5304, 5321, 5320, 5327, 5552, 5324, 5322, 5329, 5330, 5331, + 5338, 5333, 5334, 5339, 5552, 5343, 5344, 5346, 5335, 5345, + 5348, 5357, 5355, 5359, 5552, 5337, 5365, 5362, 5367, 5369, + + 5371, 5373, 5374, 5378, 5379, 5383, 5387, 5375, 5388, 5389, + 5391, 5390, 5552, 5398, 5392, 5552, 5394, 5400, 5401, 5402, + 5403, 5552, 5407, 5410, 5412, 5413, 5416, 5417, 5552, 5419, + 5423, 5425, 5552, 5428, 5552, 5552, 5430, 5426, 5427, 5437, + 5439, 5552, 5552, 5552, 5460, 5467, 5474, 5481, 5488, 88, + 5495, 5502, 5509, 5516, 5523, 5530, 5537, 5544 } ; -static const flex_int16_t yy_def[2835] = +static yyconst flex_int16_t yy_def[2859] = { 0, - 2820, 1, 2821, 2821, 2822, 2822, 2823, 2823, 2824, 2824, - 2825, 2825, 2820, 2826, 2820, 2820, 2820, 2820, 2827, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2828, 2820, 2820, 2820, 2828, 2829, 2820, 2820, - 2820, 2829, 2830, 2820, 2820, 2820, 2820, 2830, 2831, 2820, - 2820, 2820, 2831, 2832, 2820, 2833, 2820, 2832, 2832, 2826, - 2826, 2820, 2834, 2827, 2834, 2827, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2828, - 2828, 2829, 2829, 2830, 2830, 2820, 2831, 2831, 2832, 2832, - 2833, 2833, 2832, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2832, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2832, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2832, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2832, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2820, 2826, 2820, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2832, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2820, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2832, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, - 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2820, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2820, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2820, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, - 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2820, 2820, 2826, 2820, 2826, 2820, 2826, 2820, - 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2826, - 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2820, 2820, 2820, 2820, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2820, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2820, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2820, 2826, 2826, 2826, - - 2820, 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2820, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2820, 2826, 2820, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2820, 2820, 2820, 2826, 2826, - - 2820, 2826, 2826, 2820, 2820, 2826, 2826, 2826, 2820, 2826, - 2820, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2826, 2826, 2826, 2820, 2826, 2820, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2820, 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2820, 2826, 2820, 2820, 2826, 2820, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2820, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2826, - 2820, 2820, 2826, 2826, 2826, 2820, 2820, 2820, 2826, 2820, - 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, - 2826, 2826, 2820, 2820, 2826, 2826, 2826, 2820, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 2826, 2820, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2820, - 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2820, 2826, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2826, 2820, 2826, 2820, 2826, 2826, - 2826, 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2820, - 2826, 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2820, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2820, 2826, - 2826, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2826, 2826, - - 2826, 2826, 2826, 2826, 2820, 2826, 2826, 2826, 2820, 2826, - 2820, 2820, 2826, 2826, 2826, 2826, 2826, 2820, 2820, 0, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820 + 2844, 1, 2845, 2845, 2846, 2846, 2847, 2847, 2848, 2848, + 2849, 2849, 2844, 2850, 2844, 2844, 2844, 2844, 2851, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2852, 2844, 2844, 2844, 2852, 2853, 2844, 2844, + 2844, 2853, 2854, 2844, 2844, 2844, 2844, 2854, 2855, 2844, + 2844, 2844, 2855, 2856, 2844, 2857, 2844, 2856, 2856, 2850, + 2850, 2844, 2858, 2851, 2858, 2851, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2852, + 2852, 2853, 2853, 2854, 2854, 2844, 2855, 2855, 2856, 2856, + 2857, 2857, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2856, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2856, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2844, 2844, 2850, 2844, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2856, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2844, 2850, + 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, + + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + + 2850, 2844, 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2844, 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, 2850, 2844, + 2850, 2844, 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2850, + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + + 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2844, 2844, 2844, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2844, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2844, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, + 2844, 2850, 2844, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2844, 2844, 2844, 2850, 2850, 2844, 2850, 2850, 2844, 2844, + 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2844, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2844, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2850, 2844, 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2844, 2844, + 2850, 2850, 2850, 2844, 2844, 2844, 2850, 2844, 2850, 2850, + + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, 2850, + 2844, 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, 2844, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, + 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2850, 2844, 2850, 2844, 2850, 2850, + 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2844, 2850, 2844, 2844, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, + + 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, + 2850, 2850, 2844, 2850, 2850, 2844, 2850, 2850, 2850, 2850, + 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, + 2850, 2850, 2844, 2850, 2844, 2844, 2850, 2850, 2850, 2850, + 2850, 2844, 2844, 0, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844 } ; -static const flex_int16_t yy_nxt[5552] = +static yyconst flex_uint16_t yy_nxt[5593] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1381,7 +1397,7 @@ static const flex_int16_t yy_nxt[5552] = 160, 71, 71, 172, 71, 71, 71, 71, 165, 71, 71, 182, 164, 161, 166, 71, 167, 168, 169, 174, 71, 71, 173, 170, 175, 179, 176, 177, 180, 71, - 71, 247, 188, 181, 178, 183, 71, 71, 71, 184, + 71, 248, 188, 181, 178, 183, 71, 71, 71, 184, 71, 71, 185, 71, 193, 191, 71, 199, 194, 196, 71, 198, 71, 200, 197, 186, 187, 189, 71, 202, @@ -1390,581 +1406,586 @@ static const flex_int16_t yy_nxt[5552] = 204, 71, 213, 71, 224, 207, 222, 216, 71, 210, 212, 214, 71, 71, 221, 217, 218, 215, 71, 71, 223, 71, 71, 71, 225, 71, 71, 219, 231, 71, - 71, 220, 71, 71, 234, 227, 226, 233, 237, 230, - 228, 71, 235, 229, 140, 140, 147, 147, 142, 232, - 236, 142, 148, 71, 144, 238, 144, 144, 149, 144, - 149, 149, 75, 149, 75, 75, 150, 75, 71, 239, - - 241, 243, 71, 240, 152, 71, 71, 71, 71, 71, - 71, 71, 71, 245, 71, 242, 248, 244, 71, 251, - 246, 253, 254, 257, 250, 71, 249, 259, 71, 255, - 252, 71, 258, 71, 71, 260, 256, 71, 263, 71, - 261, 71, 268, 264, 269, 71, 71, 71, 265, 71, - 270, 271, 274, 278, 266, 267, 71, 262, 71, 272, - 276, 71, 71, 71, 71, 71, 277, 71, 71, 273, - 283, 71, 284, 71, 285, 280, 289, 279, 281, 286, - 71, 275, 282, 292, 71, 293, 294, 71, 290, 71, - 71, 287, 71, 288, 296, 298, 291, 299, 295, 302, - - 71, 71, 304, 71, 71, 71, 71, 297, 71, 303, - 305, 301, 300, 306, 71, 71, 71, 71, 71, 71, - 71, 308, 71, 71, 310, 71, 71, 307, 312, 71, - 314, 71, 315, 71, 71, 313, 71, 309, 319, 71, - 321, 311, 317, 323, 316, 71, 71, 326, 71, 71, - 328, 318, 320, 71, 330, 71, 71, 71, 146, 331, - 71, 322, 329, 324, 325, 71, 327, 333, 337, 334, - 71, 335, 339, 71, 71, 332, 336, 71, 71, 71, - 71, 340, 71, 150, 71, 71, 71, 343, 71, 348, - 71, 350, 338, 351, 346, 344, 71, 71, 341, 71, - - 71, 352, 71, 342, 345, 353, 354, 71, 347, 71, - 71, 71, 71, 349, 71, 71, 361, 355, 362, 359, - 71, 356, 71, 71, 358, 363, 71, 357, 71, 364, - 365, 71, 367, 71, 71, 368, 71, 71, 366, 360, - 371, 71, 369, 71, 374, 372, 71, 376, 71, 378, - 71, 370, 373, 71, 71, 71, 377, 71, 71, 381, - 375, 379, 71, 383, 71, 71, 71, 382, 384, 71, - 71, 388, 71, 71, 71, 389, 71, 71, 380, 387, - 391, 71, 385, 71, 393, 71, 386, 71, 395, 71, - 397, 390, 392, 396, 71, 394, 71, 398, 406, 399, - - 71, 71, 71, 71, 71, 409, 408, 410, 71, 400, - 145, 412, 401, 71, 417, 71, 414, 402, 403, 404, - 405, 407, 71, 411, 415, 416, 413, 71, 71, 71, - 418, 71, 71, 424, 71, 71, 426, 71, 71, 71, - 422, 423, 425, 71, 421, 419, 71, 71, 420, 71, - 433, 428, 71, 427, 71, 429, 71, 436, 430, 435, - 71, 71, 71, 71, 432, 437, 71, 431, 71, 71, - 71, 438, 434, 440, 71, 441, 442, 439, 71, 448, - 71, 443, 71, 447, 490, 71, 71, 449, 460, 71, - 461, 71, 450, 71, 444, 462, 150, 445, 451, 446, - - 463, 71, 452, 71, 464, 466, 71, 71, 474, 478, - 453, 71, 454, 476, 455, 475, 71, 479, 477, 71, - 465, 71, 484, 71, 71, 71, 480, 456, 71, 71, - 457, 481, 458, 482, 459, 71, 488, 467, 468, 487, - 483, 71, 71, 486, 71, 71, 489, 469, 71, 470, - 471, 472, 71, 494, 473, 485, 496, 71, 497, 71, - 493, 491, 71, 71, 492, 501, 71, 495, 71, 71, - 71, 71, 71, 505, 506, 499, 71, 504, 71, 498, - 500, 71, 71, 71, 71, 503, 511, 513, 71, 71, - 507, 71, 514, 502, 508, 71, 510, 509, 71, 516, - - 71, 71, 143, 71, 512, 71, 518, 515, 517, 71, - 71, 519, 522, 527, 525, 521, 71, 71, 520, 528, - 529, 526, 71, 523, 71, 524, 71, 71, 531, 533, - 71, 532, 71, 535, 71, 71, 71, 540, 530, 71, - 537, 71, 539, 71, 71, 71, 71, 536, 541, 538, - 534, 544, 71, 71, 542, 71, 71, 545, 71, 71, - 71, 71, 546, 551, 71, 552, 543, 547, 71, 555, - 550, 71, 554, 71, 71, 557, 548, 549, 71, 558, - 553, 71, 71, 71, 71, 71, 71, 71, 141, 71, - 560, 71, 561, 568, 556, 570, 71, 563, 71, 71, - - 569, 71, 559, 567, 562, 564, 566, 565, 71, 71, - 572, 71, 575, 571, 71, 578, 71, 573, 71, 577, - 574, 71, 71, 71, 71, 71, 71, 581, 580, 585, - 584, 576, 71, 71, 71, 71, 71, 71, 587, 579, - 71, 71, 71, 150, 600, 582, 583, 586, 71, 71, - 588, 599, 603, 71, 589, 71, 590, 598, 602, 71, - 601, 591, 71, 592, 604, 607, 609, 606, 605, 593, - 71, 594, 71, 71, 595, 596, 71, 610, 71, 608, - 71, 597, 71, 612, 71, 614, 71, 616, 71, 611, - 71, 71, 71, 71, 71, 71, 613, 617, 622, 148, - - 618, 71, 71, 615, 623, 619, 71, 150, 626, 71, - 620, 628, 629, 624, 621, 627, 625, 71, 71, 71, - 71, 630, 71, 71, 71, 71, 71, 638, 636, 640, - 71, 146, 631, 71, 633, 71, 641, 634, 632, 637, - 643, 635, 71, 639, 71, 642, 71, 71, 71, 71, - 645, 71, 71, 71, 649, 654, 644, 648, 71, 71, - 655, 71, 646, 145, 647, 657, 71, 650, 71, 653, - 658, 71, 656, 659, 651, 660, 71, 652, 662, 71, - 661, 71, 71, 71, 71, 664, 71, 71, 665, 663, - 71, 71, 71, 668, 71, 667, 669, 71, 673, 71, - - 71, 672, 71, 674, 71, 666, 71, 676, 678, 71, - 71, 71, 71, 671, 71, 670, 679, 71, 675, 71, - 681, 71, 685, 680, 687, 682, 677, 71, 684, 683, - 686, 71, 688, 71, 691, 71, 71, 71, 71, 693, - 71, 694, 71, 696, 692, 689, 71, 698, 690, 697, - 71, 71, 71, 71, 71, 704, 71, 71, 702, 71, - 71, 71, 71, 695, 710, 701, 699, 71, 705, 700, - 71, 708, 709, 711, 703, 71, 706, 707, 712, 71, - 71, 71, 713, 71, 717, 714, 71, 719, 143, 71, - 71, 718, 720, 71, 71, 71, 722, 716, 71, 715, - - 721, 723, 71, 71, 728, 71, 71, 724, 71, 71, - 71, 725, 732, 731, 734, 730, 71, 71, 739, 71, - 71, 71, 726, 727, 729, 737, 736, 733, 735, 71, - 738, 71, 71, 71, 741, 743, 71, 71, 71, 71, - 71, 71, 71, 141, 740, 749, 71, 71, 742, 71, - 71, 750, 71, 71, 744, 745, 746, 757, 747, 71, - 748, 751, 752, 71, 755, 71, 71, 753, 756, 754, - 71, 71, 71, 758, 71, 762, 71, 759, 71, 71, - 71, 768, 71, 71, 71, 760, 769, 71, 71, 761, - 763, 71, 764, 767, 765, 771, 772, 766, 71, 71, - - 71, 71, 770, 773, 71, 777, 776, 774, 778, 779, - 71, 775, 71, 71, 71, 780, 71, 71, 71, 150, - 782, 71, 789, 783, 787, 785, 71, 71, 71, 788, - 781, 784, 71, 786, 71, 71, 71, 791, 795, 71, - 71, 790, 71, 796, 798, 71, 801, 792, 793, 799, - 71, 797, 71, 71, 71, 800, 794, 803, 71, 71, - 71, 807, 71, 71, 71, 71, 804, 71, 808, 809, - 802, 71, 71, 71, 71, 71, 71, 806, 821, 71, - 813, 810, 71, 805, 814, 812, 818, 815, 820, 811, - 819, 71, 822, 826, 816, 823, 71, 817, 71, 824, - - 71, 825, 71, 71, 830, 71, 71, 2820, 71, 71, - 71, 838, 71, 71, 827, 842, 828, 843, 71, 71, - 844, 71, 845, 829, 71, 831, 832, 840, 833, 839, - 841, 834, 71, 847, 846, 71, 835, 71, 71, 71, - 848, 849, 836, 837, 850, 71, 71, 851, 71, 852, - 71, 71, 854, 71, 71, 858, 71, 71, 861, 857, - 71, 71, 71, 71, 71, 853, 866, 71, 71, 865, - 855, 859, 856, 869, 860, 863, 867, 870, 71, 862, - 871, 868, 71, 71, 864, 71, 71, 873, 71, 71, - 872, 874, 71, 71, 71, 875, 878, 71, 71, 71, - - 876, 71, 877, 879, 880, 882, 71, 71, 885, 71, - 883, 71, 71, 71, 71, 884, 71, 71, 881, 71, - 887, 888, 889, 71, 892, 890, 891, 893, 886, 71, - 71, 895, 71, 71, 71, 71, 71, 71, 902, 71, - 900, 903, 71, 898, 71, 71, 71, 896, 901, 905, - 71, 71, 897, 71, 894, 71, 71, 71, 71, 899, - 904, 912, 71, 915, 911, 71, 906, 71, 909, 71, - 907, 908, 71, 910, 913, 71, 916, 914, 71, 919, - 71, 918, 71, 922, 917, 71, 920, 923, 71, 921, - 71, 71, 71, 71, 925, 930, 71, 932, 71, 934, - - 71, 71, 924, 71, 935, 71, 71, 71, 71, 2820, - 926, 927, 931, 929, 928, 71, 933, 71, 941, 937, - 939, 71, 942, 71, 943, 936, 71, 938, 71, 940, - 946, 71, 948, 71, 71, 71, 71, 951, 150, 945, - 950, 944, 71, 71, 71, 954, 71, 953, 71, 71, - 71, 947, 949, 957, 71, 71, 71, 952, 71, 71, - 969, 71, 71, 972, 71, 970, 71, 71, 955, 956, - 960, 71, 71, 958, 959, 961, 974, 971, 1138, 962, - 71, 975, 71, 963, 71, 964, 71, 977, 979, 965, - 71, 966, 973, 980, 71, 71, 967, 71, 976, 982, - - 978, 968, 71, 71, 981, 71, 71, 984, 986, 71, - 71, 71, 983, 994, 991, 992, 990, 985, 71, 987, - 71, 71, 995, 989, 993, 71, 71, 988, 71, 71, - 71, 71, 71, 996, 71, 1010, 1007, 2820, 71, 71, - 71, 71, 1006, 71, 1011, 997, 1008, 998, 71, 999, - 1009, 1012, 71, 71, 1000, 1013, 1001, 1016, 71, 1014, - 71, 71, 1002, 1018, 1017, 71, 1023, 1003, 1004, 71, - 71, 1015, 1020, 1019, 1005, 1022, 71, 71, 1021, 71, - 71, 71, 71, 1028, 71, 71, 1025, 71, 1026, 71, - 1031, 1029, 71, 71, 71, 1024, 1027, 71, 1039, 71, - - 1038, 71, 71, 1030, 71, 71, 1033, 1032, 1036, 1035, - 1037, 71, 71, 1034, 71, 71, 71, 71, 1040, 1041, - 71, 2820, 1047, 71, 71, 1048, 1044, 71, 1049, 1052, - 1046, 1042, 71, 1043, 1045, 71, 1050, 71, 1051, 71, - 1054, 1055, 1059, 71, 71, 1053, 1056, 71, 71, 1057, - 71, 71, 1058, 71, 71, 1065, 1067, 1060, 71, 71, - 71, 71, 71, 1068, 1061, 71, 1063, 71, 1062, 1064, - 1070, 1066, 1071, 71, 71, 1072, 71, 71, 1073, 1069, - 71, 1074, 71, 1076, 1079, 71, 1075, 71, 1078, 71, - 71, 1080, 71, 71, 1081, 71, 1077, 71, 1083, 71, - - 71, 71, 1087, 1089, 1090, 1082, 1091, 1084, 71, 71, - 71, 71, 1085, 1088, 71, 1094, 1092, 1086, 71, 1093, - 71, 71, 1097, 1098, 71, 71, 1095, 71, 71, 1099, - 1101, 71, 71, 71, 1102, 71, 1106, 71, 1096, 1107, - 71, 71, 71, 1100, 1103, 71, 1109, 1105, 1110, 71, - 1104, 71, 1108, 1114, 71, 71, 71, 71, 71, 1111, - 71, 71, 1120, 71, 71, 1112, 1113, 1116, 71, 71, - 71, 71, 71, 1115, 71, 1117, 1124, 1155, 1121, 1125, - 1119, 1123, 1128, 1122, 1129, 1118, 1126, 71, 71, 71, - 71, 71, 1127, 1131, 1130, 71, 71, 71, 71, 71, - - 1132, 71, 71, 1135, 71, 1141, 71, 71, 71, 71, - 1133, 1134, 71, 71, 1136, 71, 1151, 1139, 1145, 71, - 1137, 1142, 71, 1140, 1144, 71, 1143, 1147, 71, 71, - 1152, 71, 71, 1146, 71, 1153, 1148, 1156, 1149, 1158, - 1157, 1150, 71, 1154, 71, 71, 71, 1160, 1163, 71, - 71, 1159, 71, 71, 71, 1161, 71, 1164, 1165, 1167, - 1168, 71, 71, 71, 1162, 1170, 1166, 71, 71, 71, - 1169, 71, 71, 71, 71, 71, 1175, 1171, 71, 1173, - 71, 1180, 1172, 1174, 1176, 71, 71, 71, 71, 71, - 1177, 1185, 1179, 1181, 1178, 1184, 1187, 71, 71, 71, - - 1182, 1186, 1191, 1189, 71, 1183, 71, 1192, 71, 1188, - 71, 1190, 71, 71, 1196, 71, 1205, 71, 1206, 1204, - 1194, 71, 71, 1193, 71, 1195, 71, 1209, 1203, 1207, - 1208, 1197, 71, 71, 1198, 1199, 71, 1210, 71, 1200, - 71, 1211, 71, 1212, 71, 1201, 71, 1213, 71, 1202, - 71, 1214, 71, 1215, 71, 71, 2820, 1220, 1216, 1218, - 1219, 1223, 1217, 1224, 1233, 71, 71, 71, 1221, 71, - 1225, 71, 71, 1222, 71, 1226, 71, 1232, 71, 71, - 71, 1227, 1235, 71, 71, 1234, 1228, 71, 1229, 2820, - 1230, 1239, 1231, 1238, 1236, 71, 1240, 71, 1237, 71, - - 1242, 1243, 71, 71, 71, 1241, 71, 71, 1244, 71, - 71, 71, 1247, 71, 1249, 71, 1251, 71, 71, 1258, - 1248, 1245, 1246, 1254, 1250, 1255, 71, 1257, 71, 1252, - 1256, 71, 71, 71, 1259, 1262, 71, 1260, 1253, 71, - 1264, 71, 71, 1265, 71, 71, 71, 1269, 71, 1266, - 71, 71, 1261, 71, 1271, 71, 71, 71, 2820, 1263, - 1273, 71, 1277, 1275, 71, 1274, 1267, 1268, 71, 1278, - 1270, 1276, 71, 1272, 71, 71, 71, 71, 1282, 1280, - 1279, 1281, 71, 71, 71, 1287, 1288, 71, 1284, 71, - 1285, 71, 71, 1283, 1289, 1290, 1291, 1286, 71, 71, - - 71, 71, 1294, 71, 71, 71, 1298, 1299, 71, 1301, - 1293, 71, 71, 71, 1300, 71, 71, 1292, 71, 71, - 1295, 71, 71, 1308, 1296, 1302, 71, 71, 1297, 71, - 1305, 1303, 71, 1306, 1313, 71, 1304, 1312, 71, 1307, - 71, 71, 71, 1317, 71, 1315, 1309, 1311, 1318, 71, - 71, 1320, 1310, 71, 71, 71, 71, 71, 1321, 1328, - 1316, 1314, 1319, 71, 71, 71, 1330, 1322, 1326, 1323, - 1324, 1327, 71, 1325, 71, 71, 1332, 71, 1329, 1331, - 71, 71, 1334, 71, 71, 1336, 71, 71, 1338, 71, - 71, 1343, 71, 1333, 71, 1335, 1344, 71, 71, 1337, - - 1340, 71, 1347, 71, 1339, 1341, 71, 1342, 71, 71, - 1348, 71, 1345, 71, 71, 71, 1346, 1350, 1354, 1356, - 1349, 1351, 1355, 71, 1352, 71, 71, 1359, 71, 71, - 1353, 71, 71, 1364, 1358, 1361, 1365, 1363, 71, 71, - 71, 1357, 71, 1360, 71, 1366, 71, 1367, 1368, 71, - 71, 71, 1362, 71, 1369, 1373, 1371, 71, 71, 1375, - 1370, 71, 71, 71, 1374, 71, 71, 1372, 1378, 1381, - 1377, 1383, 71, 71, 1382, 71, 1384, 71, 71, 1379, - 71, 1376, 71, 1386, 71, 1380, 71, 71, 1393, 71, - 71, 1392, 1385, 1389, 71, 1394, 1396, 1387, 71, 1388, - - 71, 71, 71, 1399, 71, 1390, 1398, 1391, 71, 71, - 71, 71, 71, 71, 71, 1395, 2820, 1397, 71, 1407, - 1400, 71, 71, 1401, 1408, 1404, 1409, 1402, 1406, 1403, - 1410, 71, 71, 1405, 71, 1413, 71, 1411, 1412, 71, - 71, 71, 1416, 71, 71, 1414, 1417, 71, 1419, 1423, - 71, 71, 1415, 71, 71, 71, 1420, 71, 1424, 1418, - 1425, 1426, 71, 1422, 1421, 71, 1427, 1431, 1432, 71, - 71, 1428, 1429, 71, 71, 71, 71, 1436, 1437, 71, - 1435, 1438, 71, 71, 71, 1430, 1439, 71, 1433, 1440, - 71, 71, 71, 71, 71, 1434, 1443, 71, 1446, 1444, - - 71, 1445, 71, 1441, 71, 71, 71, 1442, 71, 1447, - 1449, 71, 1450, 71, 1454, 71, 1458, 71, 71, 1452, - 1451, 1448, 1455, 1456, 71, 71, 71, 1461, 1459, 71, - 1457, 1453, 71, 71, 71, 71, 71, 1464, 1467, 71, - 1466, 71, 71, 1463, 71, 1460, 71, 71, 1474, 71, - 71, 1462, 71, 1465, 1468, 1469, 71, 1475, 1472, 71, - 71, 1470, 1471, 71, 1479, 1478, 71, 71, 1481, 1476, - 1477, 1473, 1482, 1483, 71, 1485, 1487, 71, 71, 71, - 1480, 71, 71, 1484, 71, 71, 71, 1490, 1486, 71, - 1489, 71, 1492, 71, 1493, 71, 71, 1488, 71, 1497, - - 1494, 71, 1498, 71, 71, 71, 1504, 1495, 1501, 1491, - 1496, 1502, 71, 1506, 71, 1499, 71, 71, 1500, 1505, - 1510, 1507, 71, 1503, 71, 1509, 71, 71, 1512, 1511, - 71, 1513, 1514, 71, 71, 71, 71, 71, 71, 1515, - 71, 1521, 1508, 1520, 1522, 1524, 1516, 71, 71, 71, - 71, 71, 71, 1517, 1523, 1518, 71, 1519, 1527, 71, - 71, 1526, 71, 71, 71, 1528, 71, 71, 71, 1536, - 1529, 1525, 71, 71, 71, 71, 71, 71, 1532, 1534, - 1533, 1535, 1530, 1531, 1541, 71, 71, 71, 1539, 71, - 71, 1544, 1537, 1538, 1543, 71, 71, 1540, 71, 71, - - 71, 1547, 1545, 71, 71, 71, 1542, 1549, 1552, 1546, - 1551, 1553, 71, 71, 1548, 1550, 1558, 1559, 71, 71, - 1554, 1560, 71, 71, 1563, 71, 1562, 1555, 71, 71, - 1557, 1561, 1556, 71, 71, 71, 71, 71, 1566, 1567, - 71, 1564, 71, 1575, 71, 71, 1570, 71, 1565, 71, - 71, 1574, 1569, 1572, 1568, 71, 1573, 1576, 71, 1571, - 1578, 71, 71, 71, 71, 1577, 71, 1585, 1579, 1580, - 71, 71, 71, 71, 1582, 71, 1589, 1581, 1588, 71, - 1587, 1591, 1584, 71, 1592, 71, 1586, 1596, 1583, 1599, - 1590, 71, 1597, 71, 71, 71, 1602, 1593, 1601, 71, - - 71, 71, 71, 1595, 1594, 1598, 1603, 1604, 71, 71, - 1608, 71, 1600, 71, 1605, 71, 71, 71, 71, 71, - 1606, 1610, 71, 1607, 1609, 1612, 71, 1611, 71, 71, - 1615, 71, 71, 1621, 1613, 1616, 71, 71, 1614, 71, - 71, 1617, 1618, 71, 1627, 1619, 1620, 71, 71, 1622, - 71, 71, 1630, 71, 71, 71, 71, 1623, 1624, 1632, - 1626, 1633, 1625, 71, 1628, 71, 71, 71, 1634, 1629, - 1635, 71, 1639, 71, 1631, 1636, 71, 71, 71, 1643, - 71, 71, 71, 71, 71, 71, 1638, 71, 1645, 1641, - 1637, 71, 1650, 71, 71, 1640, 1644, 1642, 71, 1646, - - 71, 1681, 1648, 1647, 1649, 1651, 1653, 1654, 71, 71, - 71, 71, 1652, 1655, 1656, 71, 1657, 1659, 1658, 1660, - 71, 71, 71, 71, 1662, 71, 71, 71, 1663, 71, - 71, 71, 71, 1661, 71, 71, 1668, 71, 71, 1672, - 71, 1669, 71, 71, 1673, 1678, 1664, 1666, 1667, 1665, - 1670, 71, 1671, 1677, 71, 71, 71, 1674, 1676, 71, - 1675, 1683, 71, 1679, 71, 71, 1686, 1687, 71, 1688, - 71, 1690, 71, 71, 1680, 71, 1682, 71, 1684, 71, - 1685, 1695, 1689, 71, 1691, 1694, 71, 1696, 71, 1698, - 71, 1697, 1700, 71, 1692, 71, 1693, 1699, 71, 71, - - 1703, 71, 1702, 71, 1704, 1705, 71, 71, 71, 71, - 1712, 71, 71, 71, 71, 1701, 71, 1714, 1706, 1707, - 1708, 71, 1715, 71, 1718, 1709, 1716, 1710, 1711, 1713, - 71, 1720, 1717, 71, 1722, 71, 1719, 71, 1724, 71, - 71, 71, 1721, 71, 1726, 71, 71, 1729, 1730, 71, - 71, 1732, 71, 71, 71, 71, 1723, 71, 1736, 1737, - 71, 1727, 1733, 1734, 71, 71, 1725, 1728, 71, 71, - 1731, 71, 71, 71, 1743, 1740, 1735, 71, 1738, 71, - 1739, 1741, 1747, 71, 1746, 71, 1752, 71, 71, 71, - 1750, 71, 1749, 1745, 1751, 1742, 71, 1744, 1754, 71, - - 71, 71, 71, 1748, 1753, 71, 71, 71, 1758, 71, - 1761, 1755, 1762, 71, 1757, 71, 71, 71, 71, 71, - 1756, 1765, 71, 71, 1759, 71, 71, 1771, 1764, 2820, - 71, 71, 1772, 1760, 71, 1763, 1767, 1766, 1768, 1773, - 1769, 1770, 1774, 71, 71, 1776, 1778, 71, 1775, 71, - 1777, 71, 1779, 71, 71, 1784, 1781, 71, 71, 71, - 71, 71, 1789, 1780, 1786, 1787, 71, 71, 1788, 1792, - 71, 1790, 1785, 1782, 1783, 1794, 1791, 1793, 71, 1796, - 1795, 71, 1797, 71, 71, 71, 1800, 71, 71, 71, - 71, 71, 71, 1802, 1805, 71, 1799, 1807, 71, 1801, - - 71, 71, 1803, 71, 71, 71, 71, 71, 1812, 1798, - 1808, 1811, 2820, 1809, 71, 1813, 1804, 1806, 1814, 71, - 1815, 71, 1817, 1810, 71, 71, 71, 1816, 71, 71, - 1818, 1819, 71, 71, 1821, 1820, 1823, 1822, 71, 71, - 1825, 71, 71, 71, 1829, 71, 71, 71, 1828, 71, - 1824, 71, 1831, 1826, 1827, 1830, 1832, 1833, 71, 71, - 71, 71, 71, 71, 71, 71, 1838, 1840, 1835, 1834, - 1839, 71, 1842, 71, 71, 71, 71, 1841, 1836, 71, - 1837, 71, 1844, 1843, 1845, 71, 1846, 71, 1847, 1851, - 1852, 71, 1850, 1848, 71, 1849, 71, 1853, 71, 71, - - 71, 1858, 71, 71, 1860, 71, 71, 71, 1861, 1862, - 71, 71, 1854, 1857, 1855, 1856, 71, 71, 1864, 1859, - 71, 1866, 71, 71, 1863, 1865, 1867, 71, 71, 71, - 71, 71, 71, 71, 71, 1869, 71, 1874, 71, 1870, - 1871, 1878, 71, 1868, 71, 1873, 1877, 1881, 71, 71, - 1875, 1879, 1876, 1882, 1884, 1872, 1880, 71, 1883, 1885, - 71, 71, 71, 71, 71, 71, 1887, 71, 71, 1888, - 1892, 71, 1889, 1890, 71, 71, 1894, 1891, 1886, 1896, - 71, 71, 71, 1899, 71, 1895, 1893, 1898, 71, 1900, - 71, 71, 1904, 1901, 71, 71, 71, 71, 71, 1905, - - 71, 1897, 71, 1907, 1910, 71, 71, 1911, 1902, 1906, - 71, 1903, 1914, 2820, 1909, 71, 1908, 1912, 71, 71, - 1915, 1916, 71, 71, 1919, 71, 71, 1921, 71, 1922, - 1913, 1917, 71, 71, 1920, 71, 71, 1926, 1928, 1918, - 71, 1923, 1924, 1929, 71, 1925, 71, 71, 71, 1930, - 71, 71, 71, 1933, 71, 1934, 71, 1927, 1931, 1932, - 1937, 71, 71, 71, 1935, 71, 71, 71, 71, 71, - 1940, 71, 1936, 1945, 1938, 1947, 71, 1941, 71, 1943, - 1939, 1942, 71, 1944, 1949, 71, 71, 1946, 1948, 71, - 1952, 1954, 71, 1956, 71, 1953, 71, 71, 1955, 1950, - - 1951, 1958, 71, 71, 1961, 1963, 1964, 1959, 71, 1962, - 71, 71, 71, 71, 71, 1957, 1960, 1965, 1968, 71, - 71, 1966, 71, 1969, 1973, 71, 71, 1974, 1967, 1972, - 71, 71, 1977, 71, 71, 71, 1979, 1970, 71, 1978, - 1980, 71, 1975, 71, 71, 71, 1982, 1983, 1971, 1976, - 1981, 71, 71, 1984, 71, 1985, 71, 71, 71, 1987, - 71, 71, 71, 1990, 1993, 71, 1994, 71, 71, 1986, - 71, 71, 1989, 1996, 71, 71, 71, 1992, 1991, 1988, - 2000, 71, 1995, 1998, 2003, 71, 71, 71, 71, 2001, - 71, 71, 71, 1999, 2004, 71, 1997, 71, 71, 2002, - - 2014, 71, 71, 71, 71, 71, 2005, 2006, 2015, 2011, - 71, 2009, 71, 2007, 2247, 2008, 2010, 2013, 2017, 2012, - 71, 2019, 71, 2016, 71, 2018, 2020, 71, 2021, 71, - 71, 71, 2024, 2025, 2027, 71, 2026, 2022, 71, 71, - 71, 71, 71, 2023, 2028, 2029, 2033, 71, 2034, 71, - 71, 2036, 71, 71, 2032, 2038, 71, 71, 2030, 2040, - 71, 2031, 2041, 71, 71, 71, 71, 71, 71, 2035, - 71, 2037, 2039, 2046, 2043, 2047, 71, 71, 2042, 71, - 2044, 2049, 71, 71, 71, 2051, 2045, 2052, 71, 2048, - 71, 2053, 2055, 71, 71, 2050, 2059, 71, 71, 71, - - 71, 71, 2056, 2057, 71, 2063, 2054, 2064, 71, 71, - 71, 2068, 71, 2058, 71, 2062, 71, 71, 2060, 71, - 71, 2073, 2061, 2065, 2066, 2067, 2070, 71, 71, 71, - 2071, 2075, 71, 71, 2069, 71, 2074, 71, 2078, 71, - 2079, 71, 71, 2072, 2077, 71, 2083, 2087, 2076, 71, - 2084, 71, 2081, 71, 2085, 71, 71, 71, 2089, 71, - 71, 2090, 2080, 2082, 71, 71, 2086, 71, 71, 2093, - 71, 71, 2092, 71, 2094, 2099, 2088, 2095, 2098, 2096, - 71, 2097, 2091, 71, 71, 71, 2102, 71, 2103, 2101, - 71, 2104, 71, 2100, 71, 71, 2110, 71, 71, 2105, - - 71, 71, 2111, 2106, 71, 2107, 71, 2112, 2108, 71, - 71, 2109, 2113, 2117, 2118, 71, 71, 2114, 2116, 2115, - 2121, 71, 71, 2122, 2123, 71, 71, 71, 2120, 2124, - 2126, 2127, 2125, 2128, 71, 2119, 71, 71, 71, 71, - 2130, 71, 71, 71, 71, 2134, 71, 71, 71, 2820, - 2135, 2136, 2129, 2131, 2137, 71, 2132, 71, 71, 71, - 71, 71, 2133, 2138, 2141, 71, 2139, 2140, 2142, 71, - 2144, 71, 2143, 71, 71, 71, 71, 71, 2148, 2151, - 71, 2145, 2150, 71, 71, 71, 2152, 2147, 71, 2155, - 2156, 2146, 71, 71, 2153, 2149, 71, 71, 2160, 2154, - - 2157, 71, 2159, 2158, 71, 71, 2163, 2161, 71, 2165, - 71, 71, 2164, 2167, 71, 71, 2169, 71, 71, 2162, - 2168, 71, 2166, 71, 71, 71, 71, 71, 2172, 71, - 2174, 2175, 2176, 71, 2178, 2171, 2170, 2177, 71, 71, - 71, 71, 2179, 2180, 2182, 71, 71, 2185, 71, 2187, - 2173, 2181, 71, 71, 71, 71, 2190, 71, 2184, 71, - 2820, 2186, 71, 71, 2183, 71, 2193, 2194, 71, 2189, - 71, 2188, 71, 71, 71, 2195, 2197, 2196, 2191, 71, - 2192, 71, 71, 2200, 2202, 71, 2201, 2198, 2203, 71, - 2204, 71, 71, 2199, 2205, 71, 71, 2208, 71, 2209, - - 2207, 71, 71, 71, 2206, 71, 2214, 71, 2215, 71, - 2216, 71, 71, 2210, 2211, 71, 71, 71, 71, 71, - 71, 2213, 2218, 2212, 2217, 2221, 2223, 71, 2219, 71, - 71, 71, 71, 71, 71, 2230, 71, 2220, 2222, 2224, - 71, 71, 71, 71, 2227, 2225, 71, 2229, 71, 2226, - 2231, 2232, 2820, 71, 71, 2233, 2228, 2237, 2239, 71, - 2234, 71, 2238, 71, 2240, 2235, 2241, 71, 71, 2236, - 2242, 71, 71, 2243, 71, 2244, 71, 2245, 71, 2246, - 71, 71, 2248, 71, 71, 71, 71, 2256, 2249, 2257, - 71, 71, 2253, 2260, 71, 71, 2250, 71, 71, 2262, - - 71, 2252, 2251, 2255, 2254, 71, 2259, 2261, 71, 71, - 2266, 71, 71, 2258, 71, 71, 2265, 2271, 71, 2272, - 71, 2273, 71, 2263, 71, 71, 2264, 71, 71, 2267, - 2268, 2269, 71, 2270, 71, 71, 71, 2277, 71, 2275, - 2274, 2280, 71, 71, 2276, 2281, 2282, 71, 2278, 71, - 71, 2283, 2284, 71, 2279, 2288, 71, 2285, 71, 2286, - 71, 2287, 71, 2289, 71, 2294, 71, 2293, 71, 71, - 2297, 71, 71, 71, 71, 71, 2290, 2298, 71, 2291, - 71, 71, 2292, 2295, 2300, 2301, 71, 2296, 2302, 2299, - 2305, 71, 2303, 2306, 2307, 71, 71, 71, 2304, 2309, - - 71, 71, 2310, 2312, 71, 71, 2313, 71, 71, 71, - 71, 71, 71, 2311, 71, 2308, 2319, 71, 71, 2317, - 2318, 2315, 2316, 2321, 71, 71, 71, 2320, 2322, 2314, - 2323, 71, 2324, 71, 71, 71, 71, 2331, 71, 2326, - 2328, 2329, 2332, 71, 71, 2325, 71, 71, 2327, 2330, - 71, 2333, 2334, 2337, 71, 71, 71, 2339, 71, 71, - 2338, 2342, 71, 2341, 2335, 2343, 71, 71, 2336, 2340, - 2345, 71, 71, 2347, 2820, 2346, 71, 71, 2348, 71, - 2344, 2349, 2350, 2351, 71, 71, 71, 71, 2352, 71, - 2353, 71, 71, 71, 71, 2354, 71, 2357, 71, 2356, - - 71, 2359, 2355, 2360, 71, 2358, 2361, 71, 71, 2362, - 71, 71, 2363, 71, 2368, 71, 2364, 71, 71, 2366, - 2367, 2365, 71, 71, 2369, 2373, 71, 71, 71, 71, - 2377, 71, 71, 71, 2383, 71, 2370, 2375, 2371, 2381, - 71, 2372, 2374, 2820, 2376, 2384, 2378, 2379, 2382, 71, - 2385, 71, 71, 2380, 2386, 71, 71, 71, 71, 71, - 2387, 71, 2388, 71, 71, 2391, 71, 2389, 71, 2394, - 2395, 71, 2390, 2396, 71, 2397, 71, 2392, 2400, 2393, - 2398, 71, 71, 2401, 71, 71, 2399, 71, 2403, 2404, - 71, 2405, 71, 71, 71, 71, 2406, 71, 2407, 2409, - - 71, 71, 2402, 71, 2410, 2411, 71, 2413, 71, 71, - 2412, 2416, 2408, 2417, 71, 2414, 71, 71, 71, 2419, - 2418, 2422, 71, 2415, 2420, 71, 71, 2425, 71, 71, - 71, 71, 2424, 71, 2427, 2428, 71, 2430, 71, 71, - 71, 2421, 2423, 2429, 71, 71, 71, 2431, 2433, 71, - 71, 2436, 71, 2426, 2440, 71, 2432, 2434, 2435, 2438, - 71, 71, 2446, 71, 2439, 71, 2447, 2437, 2442, 2443, - 71, 2441, 71, 2448, 2444, 71, 71, 2449, 71, 2450, - 2445, 71, 71, 71, 71, 71, 2451, 2452, 71, 2458, - 71, 71, 71, 2455, 2459, 2461, 71, 71, 2463, 71, - - 71, 2453, 71, 71, 2462, 2456, 71, 2464, 2457, 2454, - 2460, 71, 2465, 2469, 71, 2466, 71, 71, 2468, 71, - 2467, 2470, 2473, 71, 71, 2471, 71, 2474, 71, 2477, - 71, 71, 71, 2476, 2472, 71, 2475, 71, 71, 71, - 2479, 71, 2820, 71, 2478, 71, 2482, 2480, 2486, 71, - 2487, 2484, 71, 2490, 2488, 71, 2491, 2481, 2483, 71, - 2489, 71, 2485, 2492, 71, 2493, 71, 2494, 71, 71, - 2495, 71, 2499, 2502, 71, 71, 2498, 71, 71, 2496, - 2500, 71, 2501, 71, 71, 71, 2507, 71, 2497, 2505, - 2509, 71, 71, 71, 71, 71, 2513, 71, 71, 2503, - - 71, 71, 71, 2506, 2504, 71, 2516, 71, 2511, 2517, - 71, 2514, 2508, 2510, 2515, 2512, 71, 71, 2520, 2523, - 71, 2518, 2521, 71, 71, 71, 2519, 2525, 71, 2526, - 71, 2528, 71, 71, 71, 71, 2533, 71, 71, 71, - 2532, 2529, 2522, 2524, 2527, 71, 71, 2537, 71, 2530, - 2531, 71, 71, 2539, 2541, 71, 2542, 71, 2534, 71, - 2544, 71, 2535, 71, 2536, 2538, 71, 2820, 71, 71, - 71, 71, 2546, 71, 2540, 2551, 71, 71, 2553, 2543, - 2545, 2549, 71, 2554, 71, 2552, 2547, 2548, 2556, 71, - 2550, 2557, 71, 2555, 71, 71, 2559, 71, 2558, 71, - - 71, 71, 71, 2563, 2561, 2562, 2564, 2560, 2567, 71, - 2568, 71, 71, 71, 2565, 2566, 2571, 71, 2572, 71, - 2569, 71, 2570, 71, 71, 71, 2573, 2576, 71, 2575, - 2577, 71, 2578, 71, 71, 2580, 71, 2574, 71, 2579, - 71, 71, 71, 2585, 2581, 2586, 71, 71, 71, 71, - 2590, 71, 71, 71, 71, 2593, 71, 2820, 2589, 2592, - 2582, 2587, 2583, 2584, 2594, 71, 2596, 2595, 2588, 71, - 71, 2591, 71, 2598, 71, 2599, 71, 2597, 71, 71, - 71, 71, 71, 71, 2602, 71, 71, 2604, 71, 71, - 2605, 71, 2603, 71, 71, 71, 2600, 71, 2601, 2614, - - 2617, 71, 2606, 71, 2610, 2607, 2608, 2609, 2611, 2612, - 2616, 2618, 71, 71, 2613, 2615, 2699, 2619, 2620, 71, - 2621, 71, 2622, 2623, 71, 71, 2624, 2625, 2628, 71, - 2626, 2627, 71, 71, 2629, 71, 71, 71, 2633, 71, - 71, 2632, 71, 71, 71, 71, 2635, 2634, 71, 2639, - 2630, 2631, 2640, 71, 2638, 2641, 71, 71, 2636, 71, - 2646, 71, 2637, 2648, 2643, 2647, 71, 71, 71, 71, - 2644, 71, 2642, 2645, 71, 71, 2652, 71, 2655, 71, - 2653, 71, 71, 2650, 2657, 71, 2656, 2658, 71, 2659, - 71, 2665, 2649, 2660, 71, 2651, 2654, 2661, 71, 2662, - - 71, 2663, 71, 2664, 71, 2666, 71, 71, 2668, 71, - 71, 71, 71, 2671, 71, 2673, 71, 71, 71, 71, - 71, 2675, 2680, 2670, 71, 2669, 71, 2667, 71, 2672, - 71, 2677, 71, 71, 71, 2674, 2679, 2682, 2678, 71, - 2681, 71, 71, 2683, 71, 2676, 71, 2687, 2688, 71, - 2690, 71, 2684, 71, 71, 2685, 2686, 71, 71, 71, - 71, 2696, 71, 2695, 71, 2689, 71, 2692, 2694, 71, - 2698, 2691, 71, 71, 71, 2697, 71, 2693, 71, 2708, - 71, 2700, 2701, 71, 71, 2710, 71, 71, 2702, 2704, - 71, 2703, 2707, 2709, 2705, 2717, 2706, 71, 2711, 2712, - - 71, 2713, 71, 2715, 71, 71, 2714, 2716, 71, 71, - 2718, 2721, 71, 71, 71, 2724, 71, 71, 71, 71, - 71, 2728, 71, 71, 2720, 2820, 2722, 71, 2729, 71, - 71, 2730, 2725, 2719, 2723, 2726, 2727, 2732, 2731, 2733, - 71, 71, 2735, 71, 2734, 71, 2737, 71, 71, 71, - 71, 71, 71, 2740, 71, 71, 2742, 71, 71, 2736, - 71, 2738, 2739, 2747, 71, 2748, 71, 2744, 2745, 71, - 2741, 2743, 2751, 71, 2752, 2753, 2746, 71, 2754, 71, - 71, 71, 2749, 71, 2755, 2750, 71, 2759, 2756, 71, - 71, 2757, 71, 71, 2760, 2761, 71, 71, 71, 2758, - - 71, 2762, 2767, 71, 71, 2764, 71, 2770, 71, 2763, - 71, 2765, 2771, 71, 71, 2774, 71, 2769, 71, 2766, - 71, 71, 2768, 2772, 71, 2778, 2773, 71, 71, 71, - 2782, 71, 2779, 2777, 2780, 2775, 71, 2776, 71, 2784, - 71, 2785, 71, 2787, 71, 2789, 71, 2786, 71, 71, - 2783, 2791, 71, 2790, 2781, 2792, 71, 71, 71, 2793, - 71, 71, 71, 2788, 2794, 2796, 2798, 71, 71, 71, - 71, 71, 71, 2800, 2801, 71, 2804, 2795, 2805, 71, - 2797, 2799, 71, 71, 2808, 2809, 71, 71, 71, 2802, - 2803, 2806, 2811, 71, 2810, 2812, 71, 71, 71, 71, - - 71, 2807, 2820, 2814, 2813, 2815, 2820, 2816, 2818, 71, - 2819, 71, 2820, 2820, 2820, 2820, 2820, 2820, 2817, 43, - 43, 43, 43, 43, 43, 43, 48, 48, 48, 48, - 48, 48, 48, 53, 53, 53, 53, 53, 53, 53, - 59, 59, 59, 59, 59, 59, 59, 64, 64, 64, - 64, 64, 64, 64, 74, 74, 2820, 74, 74, 74, - 74, 140, 140, 2820, 2820, 2820, 140, 140, 142, 142, - 2820, 2820, 142, 2820, 142, 144, 2820, 2820, 2820, 2820, - 2820, 144, 147, 147, 2820, 2820, 2820, 147, 147, 149, - 2820, 2820, 2820, 2820, 2820, 149, 151, 151, 2820, 151, - - 151, 151, 151, 75, 75, 2820, 75, 75, 75, 75, - 13, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820 + 235, 220, 71, 71, 71, 227, 226, 232, 148, 230, + 228, 234, 71, 229, 236, 140, 140, 238, 239, 233, + 142, 237, 144, 142, 144, 144, 71, 144, 147, 147, + 149, 241, 149, 149, 75, 149, 75, 75, 150, 75, + + 71, 240, 242, 71, 71, 71, 152, 71, 71, 71, + 71, 249, 71, 246, 71, 252, 71, 243, 244, 245, + 247, 255, 71, 254, 251, 71, 250, 71, 256, 260, + 258, 71, 253, 71, 259, 71, 71, 261, 292, 71, + 264, 257, 262, 71, 269, 265, 71, 71, 71, 71, + 266, 274, 271, 272, 275, 71, 267, 268, 71, 263, + 71, 273, 277, 71, 71, 270, 71, 71, 278, 279, + 71, 71, 71, 71, 293, 284, 285, 290, 281, 280, + 71, 282, 71, 276, 295, 283, 71, 286, 71, 294, + 71, 297, 287, 291, 299, 300, 296, 71, 71, 303, + + 71, 71, 298, 71, 288, 71, 289, 305, 304, 306, + 301, 71, 71, 71, 71, 71, 71, 71, 307, 302, + 309, 71, 71, 311, 71, 308, 71, 71, 71, 71, + 313, 315, 71, 71, 71, 71, 310, 314, 316, 320, + 324, 71, 317, 312, 318, 322, 71, 71, 327, 71, + 146, 321, 319, 71, 71, 329, 71, 323, 331, 71, + 71, 332, 334, 330, 71, 325, 326, 71, 71, 328, + 71, 339, 335, 71, 337, 338, 71, 71, 333, 341, + 71, 71, 342, 71, 336, 71, 150, 71, 345, 71, + 71, 71, 71, 71, 352, 340, 350, 348, 346, 343, + + 71, 353, 71, 71, 344, 356, 347, 71, 354, 71, + 349, 71, 71, 71, 355, 351, 71, 357, 362, 71, + 71, 71, 363, 364, 71, 366, 358, 361, 71, 71, + 360, 359, 71, 367, 365, 71, 71, 71, 369, 368, + 71, 370, 71, 71, 71, 371, 373, 376, 374, 71, + 372, 375, 378, 71, 71, 380, 379, 71, 71, 71, + 71, 71, 384, 377, 381, 71, 383, 385, 71, 71, + 71, 71, 390, 71, 71, 71, 71, 391, 71, 386, + 393, 382, 71, 389, 71, 395, 387, 71, 71, 399, + 388, 397, 71, 392, 71, 71, 394, 400, 71, 398, + + 396, 71, 71, 71, 401, 71, 71, 408, 410, 411, + 71, 412, 145, 414, 402, 415, 71, 403, 71, 409, + 417, 418, 404, 405, 406, 407, 71, 413, 416, 419, + 71, 71, 71, 71, 420, 71, 426, 71, 71, 428, + 71, 71, 424, 421, 425, 427, 422, 423, 71, 71, + 71, 71, 71, 430, 435, 71, 429, 71, 438, 71, + 71, 431, 437, 71, 71, 71, 450, 434, 439, 432, + 440, 433, 71, 444, 71, 436, 441, 442, 71, 443, + 71, 445, 71, 71, 143, 71, 452, 451, 71, 449, + 71, 71, 453, 71, 446, 516, 454, 447, 71, 448, + + 464, 71, 71, 71, 455, 71, 456, 466, 457, 463, + 462, 71, 478, 465, 467, 469, 71, 477, 150, 141, + 71, 458, 481, 71, 459, 71, 460, 71, 461, 71, + 468, 71, 479, 470, 471, 484, 485, 480, 71, 482, + 71, 71, 483, 472, 486, 473, 474, 475, 487, 71, + 476, 491, 71, 71, 71, 488, 71, 71, 71, 71, + 489, 492, 71, 490, 493, 71, 500, 497, 71, 499, + 71, 496, 494, 495, 498, 71, 504, 71, 501, 71, + 502, 71, 71, 71, 503, 71, 507, 508, 509, 71, + 71, 71, 71, 514, 71, 506, 71, 519, 517, 71, + + 71, 511, 505, 510, 71, 512, 513, 71, 71, 71, + 71, 515, 71, 518, 529, 521, 71, 71, 520, 525, + 522, 528, 524, 71, 71, 523, 531, 530, 532, 71, + 526, 71, 527, 71, 71, 534, 71, 533, 536, 71, + 535, 71, 538, 71, 537, 71, 71, 542, 540, 543, + 71, 71, 539, 71, 544, 71, 71, 71, 541, 71, + 71, 547, 548, 71, 71, 71, 545, 71, 549, 71, + 554, 71, 550, 555, 546, 71, 558, 553, 71, 557, + 71, 71, 552, 551, 71, 560, 71, 556, 71, 561, + 71, 71, 71, 71, 563, 71, 71, 571, 71, 564, + + 71, 559, 562, 71, 566, 71, 573, 570, 71, 572, + 574, 565, 71, 567, 578, 568, 569, 71, 579, 71, + 71, 71, 575, 581, 580, 576, 71, 71, 577, 71, + 71, 584, 71, 583, 71, 71, 587, 71, 71, 588, + 71, 71, 590, 71, 71, 71, 71, 582, 603, 585, + 589, 586, 71, 71, 591, 71, 602, 606, 150, 592, + 71, 593, 605, 601, 604, 71, 594, 608, 595, 71, + 607, 610, 71, 71, 596, 71, 597, 609, 611, 598, + 599, 612, 71, 71, 71, 615, 600, 71, 71, 614, + 71, 618, 613, 71, 620, 71, 71, 71, 616, 71, + + 622, 71, 71, 617, 71, 71, 626, 71, 71, 619, + 621, 623, 71, 627, 630, 150, 624, 629, 71, 632, + 633, 625, 71, 71, 628, 71, 71, 631, 71, 71, + 674, 636, 71, 71, 634, 71, 640, 642, 635, 637, + 71, 644, 71, 638, 645, 71, 641, 639, 643, 647, + 71, 71, 71, 71, 71, 71, 649, 646, 71, 71, + 71, 653, 71, 648, 652, 71, 650, 658, 668, 651, + 71, 654, 659, 71, 661, 71, 657, 71, 655, 662, + 71, 656, 663, 660, 664, 71, 665, 71, 71, 666, + 71, 71, 71, 71, 71, 71, 669, 672, 667, 71, + + 671, 71, 677, 71, 673, 676, 71, 678, 71, 670, + 71, 71, 675, 682, 71, 680, 71, 71, 71, 71, + 685, 683, 71, 689, 679, 686, 71, 71, 684, 687, + 71, 681, 691, 71, 71, 692, 688, 695, 71, 71, + 71, 697, 71, 71, 690, 700, 698, 693, 696, 694, + 71, 71, 71, 701, 71, 71, 702, 71, 71, 708, + 71, 71, 706, 71, 148, 705, 71, 71, 699, 71, + 703, 714, 709, 704, 71, 71, 712, 71, 707, 71, + 710, 713, 711, 71, 71, 715, 716, 717, 71, 720, + 721, 723, 719, 718, 71, 71, 71, 71, 724, 722, + + 71, 726, 71, 71, 71, 725, 727, 71, 732, 71, + 71, 146, 71, 71, 71, 728, 729, 735, 71, 734, + 738, 736, 71, 730, 731, 739, 71, 740, 733, 741, + 71, 743, 71, 71, 742, 71, 737, 71, 71, 745, + 747, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 753, 71, 746, 71, 71, 71, 754, 744, 71, 748, + 749, 750, 761, 751, 755, 752, 756, 758, 71, 760, + 759, 757, 71, 71, 764, 71, 71, 71, 71, 71, + 766, 71, 71, 772, 71, 763, 762, 71, 71, 71, + 71, 773, 71, 71, 765, 767, 768, 769, 771, 71, + + 770, 775, 71, 776, 777, 71, 71, 774, 778, 71, + 782, 71, 779, 781, 71, 780, 783, 71, 71, 784, + 71, 71, 785, 71, 71, 787, 150, 71, 71, 786, + 788, 792, 790, 71, 789, 71, 791, 794, 793, 71, + 71, 795, 71, 797, 800, 71, 71, 801, 796, 803, + 71, 71, 71, 806, 798, 802, 71, 71, 71, 71, + 804, 808, 71, 799, 71, 71, 812, 71, 71, 71, + 809, 805, 71, 813, 814, 71, 807, 71, 71, 71, + 71, 71, 811, 71, 818, 849, 815, 810, 819, 826, + 825, 820, 823, 71, 816, 817, 71, 824, 821, 71, + + 828, 822, 71, 829, 71, 830, 71, 71, 71, 827, + 831, 835, 71, 71, 71, 71, 71, 71, 843, 71, + 853, 833, 847, 71, 832, 848, 71, 71, 834, 71, + 836, 837, 888, 838, 845, 844, 839, 846, 71, 850, + 71, 840, 851, 71, 852, 855, 71, 841, 842, 854, + 71, 71, 856, 71, 71, 71, 71, 71, 859, 71, + 863, 71, 71, 857, 862, 71, 71, 866, 71, 71, + 871, 71, 858, 868, 71, 860, 861, 864, 71, 865, + 71, 885, 872, 870, 875, 874, 867, 873, 71, 876, + 71, 869, 71, 878, 71, 71, 71, 877, 71, 71, + + 880, 879, 71, 71, 881, 71, 71, 887, 71, 71, + 882, 884, 890, 71, 71, 71, 71, 889, 71, 71, + 894, 883, 71, 892, 886, 893, 71, 897, 895, 896, + 71, 71, 891, 71, 900, 71, 71, 71, 71, 71, + 71, 907, 71, 905, 898, 71, 903, 908, 71, 71, + 901, 906, 71, 71, 910, 902, 899, 71, 71, 71, + 71, 71, 904, 909, 917, 71, 911, 71, 916, 920, + 71, 71, 912, 913, 71, 71, 921, 71, 915, 914, + 919, 71, 922, 918, 71, 928, 71, 925, 924, 927, + 923, 926, 71, 71, 71, 71, 71, 71, 935, 71, + + 937, 71, 930, 939, 71, 940, 71, 71, 71, 71, + 71, 71, 929, 936, 931, 932, 71, 934, 933, 71, + 941, 938, 943, 71, 945, 948, 942, 71, 947, 946, + 944, 71, 71, 71, 952, 949, 71, 954, 71, 71, + 71, 950, 71, 957, 150, 71, 951, 956, 71, 71, + 960, 71, 959, 71, 71, 71, 953, 955, 963, 71, + 958, 71, 71, 71, 71, 975, 71, 71, 71, 145, + 976, 978, 71, 961, 962, 966, 71, 71, 964, 965, + 980, 71, 967, 977, 968, 71, 983, 71, 969, 71, + 970, 982, 979, 985, 971, 71, 972, 71, 986, 71, + + 71, 973, 981, 984, 988, 71, 974, 71, 71, 987, + 990, 71, 989, 992, 71, 71, 71, 997, 998, 71, + 991, 993, 996, 71, 71, 999, 71, 1001, 995, 1000, + 71, 71, 994, 71, 71, 71, 71, 1002, 1003, 71, + 1013, 1017, 71, 1012, 71, 1016, 71, 71, 1004, 71, + 1005, 71, 71, 1014, 1015, 1006, 143, 1007, 1024, 1018, + 1019, 1022, 71, 1008, 71, 71, 1020, 71, 1009, 1010, + 71, 1021, 1028, 71, 1023, 1011, 1025, 71, 71, 71, + 1027, 71, 1029, 71, 1026, 71, 71, 1034, 71, 71, + 1031, 71, 1032, 71, 1037, 1035, 71, 71, 1030, 71, + + 71, 1033, 71, 71, 71, 71, 71, 1036, 1042, 1044, + 1039, 1038, 1041, 1043, 1045, 71, 71, 1040, 1046, 1047, + 71, 71, 71, 71, 71, 71, 1048, 71, 1053, 1054, + 1050, 71, 1055, 71, 1049, 71, 1057, 1052, 1058, 1051, + 1056, 1060, 1061, 71, 71, 71, 1059, 1062, 71, 71, + 1063, 71, 71, 1064, 1065, 71, 71, 1066, 1071, 71, + 1073, 71, 71, 141, 71, 1067, 71, 1076, 1069, 71, + 1068, 1070, 1074, 71, 71, 71, 71, 71, 1077, 1072, + 1079, 1080, 1075, 71, 71, 71, 71, 1085, 71, 1081, + 1078, 1082, 1084, 71, 1086, 71, 71, 1087, 71, 1083, + + 71, 1089, 1088, 71, 71, 71, 1095, 1093, 71, 1096, + 71, 71, 71, 1097, 1090, 71, 1098, 71, 1094, 1091, + 1100, 71, 1099, 1092, 1103, 71, 71, 71, 1101, 71, + 71, 1104, 71, 71, 1105, 71, 1107, 71, 1108, 71, + 1109, 1102, 71, 1113, 1114, 1106, 71, 71, 71, 71, + 71, 1111, 71, 1116, 71, 1110, 1117, 71, 71, 1121, + 71, 1112, 1115, 71, 71, 1118, 1119, 71, 71, 1123, + 1120, 71, 1122, 1127, 71, 71, 71, 71, 1133, 71, + 71, 71, 1131, 1124, 71, 1128, 1138, 1126, 1130, 1132, + 1129, 1135, 1125, 1136, 71, 71, 71, 71, 71, 71, + + 1137, 1134, 71, 1139, 71, 71, 71, 1142, 1140, 71, + 1141, 71, 71, 1145, 1148, 71, 71, 71, 71, 1143, + 71, 71, 1158, 71, 1144, 1154, 1146, 1151, 1147, 1152, + 1149, 71, 71, 71, 1155, 1150, 1156, 1159, 1153, 1157, + 1160, 71, 71, 71, 1162, 1161, 71, 71, 71, 71, + 71, 1165, 1164, 1167, 1170, 71, 71, 71, 71, 71, + 1163, 1168, 1171, 1172, 1174, 71, 1166, 71, 1169, 1175, + 71, 71, 71, 71, 71, 71, 1173, 71, 71, 1176, + 71, 71, 1177, 71, 1182, 1180, 1178, 1183, 71, 1181, + 71, 1179, 71, 71, 1187, 71, 71, 1184, 1188, 1186, + + 1192, 1185, 1191, 71, 1194, 71, 71, 71, 71, 1193, + 1189, 71, 1190, 1196, 1198, 71, 71, 1197, 71, 1199, + 71, 71, 1203, 1195, 71, 1201, 1200, 71, 1202, 71, + 1212, 1210, 1214, 1211, 1204, 71, 71, 1205, 1206, 71, + 1213, 1216, 1207, 71, 1215, 71, 71, 71, 1208, 71, + 1217, 1218, 1209, 71, 1219, 71, 1220, 71, 71, 71, + 1221, 71, 1222, 1223, 71, 71, 1227, 1224, 1225, 1230, + 1231, 1240, 71, 71, 71, 71, 71, 1232, 1226, 1228, + 71, 71, 1229, 1234, 1233, 71, 1239, 71, 1235, 71, + 1236, 71, 1237, 1242, 1238, 71, 1243, 1246, 1241, 71, + + 71, 71, 1247, 71, 1245, 1249, 71, 71, 71, 1244, + 71, 71, 71, 71, 71, 1250, 1251, 71, 1254, 1256, + 1258, 1248, 71, 71, 71, 1252, 1255, 1253, 1261, 1262, + 71, 1257, 1264, 71, 71, 71, 1265, 71, 1260, 1263, + 1259, 71, 1267, 71, 1266, 1269, 71, 1271, 71, 71, + 1272, 71, 71, 71, 1268, 71, 1273, 1276, 71, 71, + 71, 71, 1278, 1270, 71, 1289, 1280, 71, 71, 71, + 1282, 71, 1283, 1274, 1275, 1277, 1281, 71, 71, 1286, + 1279, 71, 1284, 1285, 71, 71, 1287, 71, 71, 1288, + 1290, 71, 71, 71, 1292, 1295, 1296, 1297, 1293, 71, + + 71, 71, 71, 1298, 71, 1291, 1294, 71, 1299, 71, + 1302, 71, 71, 71, 1306, 1301, 1307, 71, 1309, 1300, + 71, 71, 71, 1308, 71, 71, 71, 1303, 71, 71, + 71, 1316, 1304, 71, 71, 1310, 1305, 71, 1313, 71, + 71, 1311, 1314, 71, 1320, 1312, 71, 1315, 1321, 71, + 71, 1323, 1325, 1317, 2844, 1319, 71, 1326, 71, 1318, + 71, 71, 1324, 1322, 71, 1328, 71, 71, 1327, 1329, + 71, 71, 1334, 1336, 1330, 1335, 71, 1338, 71, 1331, + 71, 1332, 1339, 71, 1333, 71, 71, 71, 71, 1341, + 1337, 1340, 1344, 71, 71, 71, 71, 71, 1346, 71, + + 71, 1351, 71, 71, 1343, 71, 1345, 1352, 1356, 1348, + 1355, 1342, 71, 71, 1347, 1349, 71, 1350, 71, 71, + 1353, 71, 71, 71, 1354, 71, 71, 1358, 1362, 1363, + 1364, 1357, 71, 1359, 1360, 71, 1367, 71, 71, 71, + 1361, 1366, 71, 1372, 1365, 1369, 2844, 1371, 1373, 71, + 71, 1374, 1368, 71, 71, 71, 1375, 1376, 71, 1370, + 71, 71, 1378, 71, 1377, 71, 71, 71, 1383, 71, + 71, 71, 71, 1382, 71, 71, 1386, 1380, 1385, 1379, + 1381, 71, 1389, 71, 1394, 1391, 1387, 1390, 71, 1384, + 1392, 71, 71, 1388, 71, 1393, 71, 71, 71, 1401, + + 1395, 71, 71, 1397, 1404, 71, 1402, 71, 71, 71, + 71, 1396, 1407, 71, 1406, 1398, 1400, 1399, 71, 71, + 71, 71, 71, 1412, 71, 1415, 1405, 71, 1403, 71, + 71, 71, 1408, 1416, 1418, 71, 1419, 71, 1409, 1410, + 1411, 1417, 1414, 1413, 71, 71, 71, 71, 1420, 1424, + 1421, 71, 71, 1425, 1422, 71, 1427, 71, 71, 1423, + 1431, 71, 71, 1432, 71, 71, 1426, 1428, 71, 1433, + 71, 71, 1434, 1430, 1435, 1429, 1440, 71, 1439, 71, + 71, 71, 1436, 1437, 71, 71, 1443, 71, 1444, 1445, + 71, 1438, 1446, 71, 71, 71, 71, 1441, 71, 1447, + + 71, 1442, 1448, 71, 71, 1452, 1449, 1451, 71, 1453, + 1450, 71, 1454, 1455, 71, 71, 1458, 71, 71, 1457, + 71, 71, 1462, 71, 71, 71, 71, 1467, 71, 1456, + 1465, 71, 71, 1460, 71, 1459, 1468, 1463, 71, 1470, + 71, 1466, 1464, 71, 1473, 1461, 71, 71, 1476, 71, + 71, 1469, 1475, 71, 1472, 71, 1471, 71, 71, 71, + 1483, 71, 71, 71, 71, 1474, 1484, 1478, 1477, 71, + 71, 1481, 1487, 71, 1479, 1480, 71, 71, 1488, 1490, + 1492, 1491, 1485, 1482, 1486, 1494, 71, 71, 71, 1489, + 1493, 71, 1496, 71, 71, 71, 71, 71, 71, 1501, + + 1498, 1495, 1499, 71, 1502, 71, 71, 1497, 71, 71, + 1503, 1506, 71, 1507, 71, 71, 71, 2844, 1513, 1500, + 1514, 1505, 71, 1504, 71, 1510, 1508, 71, 1511, 1509, + 71, 71, 1519, 1523, 1518, 1516, 1515, 71, 71, 71, + 1512, 1517, 1520, 71, 1521, 71, 1522, 71, 71, 71, + 71, 71, 1524, 71, 1530, 71, 1529, 1531, 71, 71, + 71, 1525, 1533, 71, 1532, 71, 71, 1526, 71, 1527, + 1535, 1528, 1536, 71, 71, 71, 1538, 71, 1534, 1537, + 71, 71, 1545, 71, 71, 71, 1539, 71, 71, 71, + 71, 1541, 71, 1543, 1542, 1540, 1544, 1550, 71, 71, + + 1553, 1548, 71, 71, 1546, 1547, 71, 1552, 71, 71, + 1549, 71, 1551, 71, 1556, 71, 71, 71, 1554, 71, + 1555, 71, 1558, 1560, 1559, 1642, 1557, 1563, 1561, 71, + 1564, 1562, 1567, 1568, 71, 1565, 1569, 71, 71, 71, + 71, 71, 1566, 1571, 1572, 71, 71, 71, 71, 71, + 1570, 1575, 1573, 1576, 71, 71, 1584, 71, 71, 71, + 1574, 71, 71, 1579, 71, 1578, 1577, 1581, 1583, 71, + 1582, 1585, 71, 71, 1580, 71, 71, 1586, 1589, 1588, + 71, 71, 1587, 71, 1594, 71, 71, 1591, 71, 1590, + 71, 1597, 71, 1598, 1596, 71, 71, 1595, 1593, 1600, + + 2844, 1592, 1601, 1605, 71, 1608, 1602, 1599, 1606, 71, + 71, 71, 1610, 71, 1604, 1611, 1603, 71, 1607, 1613, + 71, 71, 1612, 71, 71, 71, 1614, 1617, 1609, 71, + 71, 71, 71, 71, 1619, 71, 71, 71, 1616, 71, + 1620, 71, 1618, 1615, 1621, 1624, 71, 71, 1625, 1622, + 71, 1623, 1630, 71, 1626, 1632, 71, 71, 71, 1627, + 71, 1628, 1636, 71, 1629, 71, 1631, 71, 71, 71, + 1640, 71, 71, 1635, 1633, 71, 1634, 71, 71, 71, + 1643, 1638, 1644, 1645, 71, 1637, 71, 1639, 1646, 71, + 1647, 71, 1641, 1649, 71, 1653, 71, 71, 71, 1648, + + 71, 1651, 71, 71, 71, 1650, 1660, 1655, 71, 71, + 1652, 1654, 71, 71, 1656, 1657, 71, 1658, 1672, 1663, + 1661, 1664, 71, 71, 1659, 71, 1665, 1662, 1666, 71, + 1667, 71, 1669, 1670, 71, 71, 71, 71, 71, 1673, + 1668, 71, 71, 71, 71, 71, 71, 1671, 71, 1678, + 71, 71, 71, 1682, 1679, 71, 1688, 1674, 1680, 71, + 1676, 1677, 71, 1675, 1683, 1681, 71, 1686, 1687, 71, + 71, 1685, 71, 71, 71, 1693, 71, 1684, 71, 1696, + 1689, 1697, 71, 1698, 71, 1690, 1691, 71, 1694, 71, + 1695, 71, 1692, 1700, 71, 1705, 1699, 71, 1701, 1704, + + 71, 1706, 71, 1708, 71, 1707, 1710, 71, 1702, 71, + 1703, 71, 71, 71, 1713, 71, 1712, 71, 1714, 1715, + 71, 71, 1709, 71, 1722, 71, 71, 71, 71, 1727, + 71, 71, 1716, 1717, 1718, 71, 1711, 1731, 71, 1719, + 71, 1720, 1724, 1721, 71, 1726, 1723, 1725, 71, 1728, + 1729, 1730, 1734, 71, 71, 71, 1736, 71, 71, 71, + 1732, 71, 1739, 1740, 71, 1733, 71, 1742, 71, 71, + 71, 1746, 71, 71, 1747, 71, 71, 71, 1737, 1743, + 1735, 1738, 1744, 71, 71, 71, 1741, 71, 71, 1753, + 1745, 1749, 1750, 1748, 71, 71, 1751, 1757, 71, 1756, + + 71, 71, 1760, 71, 1762, 71, 1761, 1759, 71, 1752, + 1754, 1755, 71, 71, 71, 71, 71, 71, 1758, 1763, + 1768, 1765, 1764, 71, 71, 71, 1771, 1772, 1767, 71, + 71, 71, 71, 71, 1766, 1775, 71, 71, 71, 71, + 71, 1769, 71, 1781, 71, 1774, 1782, 1823, 71, 1773, + 1770, 1776, 1777, 1779, 71, 1778, 1780, 1783, 1784, 71, + 71, 1788, 71, 1789, 1785, 1786, 71, 71, 71, 71, + 1787, 1794, 1791, 71, 71, 71, 71, 71, 1796, 1834, + 1790, 1797, 71, 71, 1798, 71, 2844, 71, 1792, 1793, + 1795, 1799, 1802, 71, 1803, 71, 1800, 1804, 1806, 1807, + + 1808, 1801, 1805, 71, 71, 71, 71, 71, 1811, 71, + 71, 1809, 71, 71, 71, 71, 1813, 1816, 1818, 1810, + 71, 1812, 1814, 71, 71, 71, 71, 71, 71, 1824, + 71, 1822, 1819, 1825, 71, 1826, 71, 1817, 1815, 1820, + 1828, 71, 71, 71, 1821, 71, 71, 1829, 1830, 71, + 1827, 1831, 71, 71, 1835, 71, 1836, 1833, 1832, 71, + 71, 71, 1840, 71, 71, 1837, 1839, 71, 71, 1841, + 71, 1838, 1842, 1843, 1844, 71, 71, 71, 71, 1846, + 71, 1851, 1849, 71, 1845, 1850, 71, 71, 71, 1853, + 71, 71, 1857, 71, 1847, 71, 1848, 1852, 71, 1856, + + 1854, 71, 1858, 71, 1855, 71, 1861, 1859, 1863, 71, + 71, 71, 71, 1864, 71, 71, 1862, 1869, 71, 1860, + 1872, 1865, 71, 71, 71, 1871, 1868, 1866, 71, 1867, + 1873, 71, 1870, 71, 71, 1877, 1874, 71, 71, 71, + 1875, 71, 1876, 71, 71, 71, 1878, 71, 71, 71, + 71, 1880, 71, 1881, 1885, 1882, 1889, 71, 71, 1879, + 1884, 1892, 1888, 71, 71, 1890, 71, 1886, 1893, 1887, + 1883, 1895, 1891, 71, 71, 1896, 71, 71, 71, 71, + 71, 1898, 71, 71, 1894, 1899, 1900, 71, 1901, 1903, + 71, 71, 1897, 1905, 1902, 1907, 71, 1906, 71, 1904, + + 71, 71, 1910, 1909, 71, 71, 1911, 71, 1915, 1912, + 71, 71, 71, 71, 71, 1916, 1908, 71, 1921, 71, + 1918, 71, 1922, 1913, 1917, 71, 71, 1914, 1925, 71, + 71, 1920, 1919, 2844, 71, 1926, 71, 1928, 1927, 71, + 1923, 1930, 71, 71, 1932, 1929, 1924, 71, 1933, 71, + 71, 1931, 71, 71, 1937, 1939, 71, 71, 1934, 1935, + 1940, 71, 1936, 71, 71, 1941, 71, 71, 71, 1942, + 71, 1944, 1945, 71, 1938, 1943, 71, 1946, 1948, 71, + 71, 71, 71, 71, 71, 71, 1951, 71, 1947, 1958, + 1956, 1949, 1954, 71, 1950, 1952, 1955, 1953, 1957, 71, + + 71, 71, 1959, 71, 71, 1960, 1966, 71, 71, 71, + 1961, 1968, 71, 1965, 71, 1962, 71, 1967, 71, 1963, + 1970, 1973, 1972, 1971, 1975, 1976, 1974, 71, 1964, 71, + 71, 71, 1977, 1969, 71, 71, 1980, 71, 71, 1981, + 71, 2844, 1978, 1985, 71, 71, 1986, 71, 71, 1984, + 1989, 71, 71, 1982, 71, 1979, 71, 1990, 1995, 1987, + 71, 1991, 1992, 71, 1983, 71, 1988, 1994, 71, 71, + 1993, 1996, 1997, 71, 71, 71, 71, 71, 71, 1999, + 71, 71, 2002, 2005, 71, 71, 71, 71, 71, 2006, + 71, 2001, 2008, 71, 1998, 2007, 2003, 2004, 2000, 71, + + 2010, 71, 2015, 71, 2012, 71, 2013, 71, 71, 2011, + 71, 71, 2009, 2016, 2844, 71, 71, 71, 71, 2014, + 71, 71, 2026, 71, 71, 71, 2017, 2018, 2027, 2023, + 71, 71, 2044, 2019, 2021, 2020, 2025, 2022, 2029, 2024, + 71, 2031, 71, 2028, 2030, 2032, 71, 2033, 71, 71, + 71, 2036, 71, 2039, 71, 71, 71, 2034, 71, 71, + 2040, 2037, 2035, 2041, 2038, 2045, 71, 2046, 71, 71, + 2048, 71, 71, 2050, 71, 71, 2042, 71, 71, 2043, + 2052, 71, 2053, 71, 71, 71, 71, 2055, 2047, 2054, + 2049, 2058, 2051, 2059, 71, 71, 2061, 71, 2056, 71, + + 71, 71, 71, 71, 2057, 2064, 2063, 71, 2065, 2067, + 71, 71, 2071, 71, 2060, 71, 71, 2062, 2069, 71, + 2068, 71, 71, 2066, 2844, 2075, 2076, 71, 71, 71, + 2070, 2080, 71, 71, 2074, 2072, 71, 71, 71, 2073, + 71, 2077, 71, 2078, 2079, 2082, 71, 2085, 71, 2086, + 2083, 71, 71, 2081, 2087, 71, 2090, 71, 71, 71, + 2089, 71, 2088, 2084, 2091, 2099, 2095, 71, 71, 71, + 2093, 71, 2096, 2097, 71, 2101, 71, 71, 71, 2094, + 2092, 71, 2102, 71, 2098, 71, 71, 71, 71, 71, + 2844, 2104, 2105, 2110, 2106, 2100, 2107, 2108, 2111, 71, + + 2109, 2103, 71, 71, 71, 2116, 2112, 71, 2115, 2113, + 71, 71, 2114, 71, 2117, 71, 71, 71, 2123, 71, + 71, 71, 2118, 71, 71, 2125, 71, 71, 71, 2130, + 2119, 2121, 2120, 2122, 71, 2124, 2126, 2127, 2128, 2129, + 71, 2134, 71, 71, 2135, 2131, 2133, 71, 2132, 2136, + 71, 71, 2138, 2139, 2137, 2140, 2141, 71, 71, 71, + 71, 71, 71, 2143, 71, 71, 71, 2147, 71, 71, + 71, 2149, 2142, 2148, 2145, 2151, 2144, 2150, 71, 71, + 71, 71, 2155, 71, 2146, 2154, 71, 71, 2152, 71, + 71, 71, 2157, 71, 71, 71, 71, 2161, 2164, 2156, + + 2153, 2163, 71, 71, 71, 2160, 71, 71, 2165, 2158, + 2159, 2168, 2169, 2166, 2162, 2170, 71, 71, 71, 2167, + 71, 2844, 2171, 71, 2173, 71, 71, 2176, 2174, 71, + 2172, 2178, 71, 2177, 2180, 71, 71, 71, 2182, 71, + 71, 71, 71, 2175, 2179, 2181, 71, 2185, 71, 71, + 2189, 71, 71, 2187, 2188, 2184, 2190, 71, 2183, 2191, + 71, 2192, 71, 71, 71, 71, 71, 71, 2193, 2195, + 2198, 71, 2186, 2200, 71, 71, 2199, 71, 2197, 71, + 2203, 71, 2196, 71, 2194, 71, 2206, 2207, 71, 71, + 2202, 71, 2201, 71, 2208, 71, 2204, 2210, 2209, 71, + + 71, 2205, 71, 2215, 71, 2211, 71, 2214, 2216, 71, + 2217, 71, 71, 2212, 2218, 71, 71, 2221, 2219, 71, + 2213, 71, 2222, 71, 71, 71, 2227, 71, 2228, 71, + 2220, 2223, 2229, 71, 71, 2224, 71, 71, 71, 71, + 71, 2226, 71, 2231, 2225, 2234, 2230, 2237, 71, 2232, + 71, 71, 71, 71, 71, 71, 71, 2244, 2233, 2235, + 2238, 71, 2236, 71, 71, 71, 2241, 71, 71, 2243, + 2245, 71, 2240, 71, 2251, 2844, 2239, 71, 2242, 2246, + 2247, 2248, 2253, 71, 2255, 71, 71, 2252, 2254, 2249, + 71, 2250, 2256, 71, 71, 2257, 71, 2258, 71, 2259, + + 71, 2261, 71, 71, 2260, 71, 71, 71, 71, 71, + 2270, 71, 2271, 71, 71, 71, 2267, 2274, 71, 2262, + 71, 2264, 2263, 71, 2273, 71, 2266, 2265, 2268, 2269, + 2276, 71, 2275, 71, 71, 71, 2272, 71, 2277, 71, + 2279, 71, 2287, 2278, 2285, 71, 2286, 71, 71, 2280, + 71, 71, 71, 2281, 71, 2282, 71, 2283, 2284, 2291, + 71, 71, 71, 2295, 2296, 71, 2289, 2294, 2288, 71, + 71, 2290, 2297, 2298, 71, 71, 2292, 71, 71, 71, + 2293, 71, 71, 71, 2300, 71, 2303, 71, 2299, 71, + 2307, 2308, 71, 2311, 71, 71, 2301, 71, 2302, 2304, + + 2309, 2305, 71, 2306, 71, 71, 2312, 2310, 2314, 71, + 2313, 2315, 71, 2319, 71, 71, 71, 2317, 2316, 2321, + 71, 2323, 71, 71, 71, 2326, 71, 2320, 2324, 2318, + 71, 2327, 71, 71, 71, 2322, 2325, 2333, 71, 71, + 71, 71, 71, 71, 71, 71, 2329, 2330, 2331, 2332, + 2335, 71, 2338, 71, 2328, 71, 2334, 2336, 2337, 71, + 2340, 2339, 71, 2341, 71, 71, 71, 2343, 71, 2344, + 2346, 71, 2347, 71, 2342, 2348, 71, 71, 71, 2352, + 2345, 2349, 71, 2353, 2350, 71, 71, 2354, 71, 2357, + 71, 2358, 71, 2356, 71, 2351, 2362, 2355, 2360, 71, + + 71, 2363, 71, 2361, 71, 71, 2366, 2359, 71, 2364, + 2365, 71, 71, 2368, 71, 2367, 71, 71, 71, 71, + 71, 71, 71, 2369, 2372, 2371, 2374, 71, 71, 71, + 2373, 2370, 2375, 2377, 2376, 71, 71, 71, 2379, 71, + 2378, 71, 2383, 71, 71, 71, 2381, 2386, 2382, 2380, + 2388, 71, 2384, 71, 71, 71, 71, 2392, 71, 71, + 71, 2844, 71, 2385, 2387, 2390, 2396, 2397, 71, 2391, + 2398, 2399, 2389, 71, 2393, 2394, 71, 71, 2400, 2395, + 2401, 71, 71, 71, 71, 71, 2405, 71, 2403, 71, + 2402, 2406, 71, 71, 2404, 71, 2409, 2410, 71, 2411, + + 71, 2412, 71, 2407, 2413, 71, 2415, 2408, 71, 71, + 2418, 2416, 71, 2414, 2419, 71, 2420, 71, 71, 71, + 71, 2421, 2424, 71, 71, 2425, 2426, 71, 2417, 71, + 2428, 71, 2422, 71, 71, 71, 2432, 71, 2423, 2433, + 71, 2434, 71, 71, 2427, 2435, 2429, 71, 71, 2431, + 2436, 71, 2430, 71, 2441, 71, 71, 71, 71, 2440, + 71, 2443, 2444, 71, 71, 71, 2437, 2438, 2439, 2445, + 71, 71, 71, 2446, 2447, 2449, 2453, 71, 71, 71, + 2442, 2448, 2452, 2456, 71, 71, 71, 2450, 2451, 71, + 2459, 2462, 71, 2455, 2458, 2460, 71, 71, 2454, 71, + + 2463, 71, 2464, 71, 2457, 71, 2465, 71, 2461, 71, + 2466, 71, 2468, 2467, 71, 71, 71, 2474, 71, 71, + 71, 71, 2475, 2469, 2471, 2477, 71, 71, 2478, 2479, + 71, 71, 2480, 71, 2472, 71, 2473, 2470, 2476, 71, + 2481, 71, 2482, 71, 2483, 2485, 71, 2486, 71, 2489, + 2487, 71, 71, 71, 2490, 71, 71, 2484, 2493, 71, + 71, 2492, 71, 2488, 2491, 2495, 71, 71, 71, 71, + 71, 2494, 2496, 71, 2844, 2498, 71, 71, 2502, 2500, + 71, 2503, 71, 2504, 71, 2506, 2505, 2497, 2499, 2514, + 2501, 71, 2507, 2509, 71, 2508, 2510, 71, 2511, 71, + + 71, 71, 2516, 71, 2513, 71, 2515, 71, 71, 2512, + 2517, 71, 2518, 2519, 71, 71, 71, 2524, 71, 71, + 2522, 2520, 71, 71, 2526, 71, 71, 2530, 71, 71, + 71, 71, 2521, 71, 2523, 71, 71, 2528, 2527, 2533, + 71, 71, 2531, 2525, 2532, 2534, 2529, 71, 71, 2535, + 2540, 71, 71, 2538, 71, 2537, 2539, 2542, 71, 2536, + 2541, 2543, 71, 2545, 71, 71, 71, 71, 2550, 71, + 2546, 71, 2549, 2544, 71, 71, 71, 2554, 71, 71, + 71, 2547, 2548, 71, 2556, 2558, 71, 2559, 71, 2561, + 71, 2551, 2555, 71, 2553, 71, 71, 2552, 71, 2565, + + 71, 71, 2557, 2560, 2563, 71, 2569, 71, 71, 2562, + 2567, 2570, 71, 2564, 71, 2566, 71, 2571, 71, 2574, + 2568, 2573, 2575, 71, 2572, 71, 71, 2577, 2582, 2576, + 71, 71, 2578, 71, 71, 2579, 2580, 2581, 71, 2585, + 71, 2586, 71, 71, 71, 2589, 71, 2590, 71, 71, + 71, 71, 71, 2588, 2591, 2583, 2584, 2593, 2594, 71, + 2595, 71, 2587, 71, 2592, 2596, 71, 71, 2597, 2598, + 71, 71, 71, 2600, 71, 2603, 2604, 71, 71, 71, + 71, 2608, 71, 71, 71, 71, 2599, 2611, 71, 2607, + 2610, 2614, 2605, 2601, 2602, 2612, 71, 71, 2613, 2606, + + 71, 71, 2609, 2617, 71, 71, 71, 71, 71, 2616, + 2618, 71, 2615, 2621, 71, 71, 71, 71, 71, 71, + 2623, 71, 2844, 2622, 2624, 71, 2619, 2620, 71, 71, + 71, 71, 71, 2638, 2625, 2629, 2633, 2626, 2627, 2628, + 2636, 71, 2630, 2631, 71, 2635, 2637, 71, 2647, 2632, + 2634, 2639, 71, 2640, 71, 2641, 2642, 71, 71, 2643, + 2644, 2844, 71, 2645, 2646, 71, 71, 2648, 71, 71, + 2652, 71, 71, 71, 2651, 2649, 2654, 71, 71, 2650, + 2653, 71, 71, 71, 2659, 71, 2655, 2660, 71, 2661, + 71, 2658, 71, 2656, 71, 71, 2666, 2663, 2668, 2657, + + 2662, 2667, 71, 2664, 71, 71, 2665, 71, 71, 71, + 71, 2675, 71, 2672, 2673, 71, 71, 2677, 71, 2712, + 2669, 2676, 2670, 2678, 71, 71, 2671, 2679, 71, 2674, + 2680, 71, 2681, 71, 2682, 71, 2683, 71, 2684, 71, + 71, 2686, 71, 2688, 71, 2687, 71, 71, 71, 2685, + 71, 71, 2692, 2694, 71, 71, 71, 71, 71, 2696, + 2690, 2689, 2691, 2693, 71, 2698, 71, 71, 2701, 2700, + 71, 71, 71, 2695, 71, 2703, 2699, 71, 71, 71, + 71, 2702, 2708, 2697, 2709, 71, 71, 71, 2706, 71, + 2704, 71, 71, 2707, 71, 2705, 2711, 71, 71, 2717, + + 2718, 71, 2720, 2710, 71, 2714, 2713, 2719, 2716, 71, + 71, 71, 2715, 71, 71, 71, 71, 2721, 71, 71, + 2731, 71, 71, 2733, 71, 71, 2724, 71, 2722, 2723, + 2726, 2732, 2729, 71, 2734, 2727, 2728, 71, 2725, 2730, + 2735, 71, 2736, 71, 2737, 71, 71, 2738, 2739, 71, + 71, 2740, 2744, 71, 2741, 71, 2747, 71, 71, 71, + 2749, 71, 2742, 71, 71, 2743, 71, 2745, 2752, 71, + 71, 2753, 71, 71, 2754, 2746, 2756, 2757, 2748, 2750, + 71, 2751, 71, 71, 71, 2761, 71, 2758, 71, 71, + 71, 2755, 71, 2759, 71, 71, 2764, 71, 71, 2766, + + 71, 71, 71, 2760, 2763, 71, 2771, 2772, 2762, 2765, + 2768, 2769, 71, 71, 2767, 2775, 71, 71, 2776, 2770, + 2777, 71, 2778, 2773, 71, 71, 71, 71, 2783, 2779, + 2780, 2774, 2781, 71, 71, 71, 2782, 71, 2784, 2785, + 71, 2786, 71, 71, 71, 2791, 71, 71, 71, 2788, + 71, 71, 71, 2794, 2787, 2795, 71, 71, 71, 71, + 2793, 71, 2789, 2790, 2798, 2792, 2796, 2799, 71, 2797, + 71, 2802, 71, 2803, 2801, 71, 2805, 2800, 71, 2806, + 71, 2808, 71, 2809, 71, 2804, 71, 71, 71, 2810, + 2813, 71, 71, 2811, 2807, 2817, 71, 2814, 2815, 2816, + + 71, 71, 71, 71, 71, 71, 2812, 71, 2818, 2820, + 2822, 71, 2824, 71, 71, 71, 71, 2828, 2825, 2829, + 71, 2819, 2821, 71, 2823, 71, 71, 2832, 2833, 71, + 71, 2835, 71, 2826, 2827, 2836, 71, 2834, 71, 71, + 71, 71, 2830, 71, 2831, 2837, 2838, 2844, 2839, 2842, + 71, 2843, 71, 2844, 2844, 2844, 2844, 2844, 2840, 2841, + 43, 43, 43, 43, 43, 43, 43, 48, 48, 48, + 48, 48, 48, 48, 53, 53, 53, 53, 53, 53, + 53, 59, 59, 59, 59, 59, 59, 59, 64, 64, + 64, 64, 64, 64, 64, 74, 74, 2844, 74, 74, + + 74, 74, 140, 140, 2844, 2844, 2844, 140, 140, 142, + 142, 2844, 2844, 142, 2844, 142, 144, 2844, 2844, 2844, + 2844, 2844, 144, 147, 147, 2844, 2844, 2844, 147, 147, + 149, 2844, 2844, 2844, 2844, 2844, 149, 151, 151, 2844, + 151, 151, 151, 151, 75, 75, 2844, 75, 75, 75, + 75, 13, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844 + } ; -static const flex_int16_t yy_chk[5552] = +static yyconst flex_int16_t yy_chk[5593] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1974,13 +1995,13 @@ static const flex_int16_t yy_chk[5552] = 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, 29, 8, 7, 9, 9, 9, 22, 22, 8, 10, - 10, 10, 15, 25, 9, 29, 15, 25, 2826, 31, + 10, 10, 15, 25, 9, 29, 15, 25, 2850, 31, 10, 11, 11, 11, 11, 11, 11, 19, 79, 19, 19, 30, 19, 11, 31, 79, 30, 25, 19, 19, 47, 47, 11, 12, 12, 12, 12, 12, 12, 21, 23, 23, 21, 21, 24, 12, 21, 81, 23, 24, - 34, 21, 23, 24, 12, 23, 24, 951, 24, 24, + 34, 21, 23, 24, 12, 23, 24, 957, 24, 24, 21, 26, 26, 27, 27, 90, 28, 81, 32, 32, 28, 34, 27, 28, 33, 33, 26, 32, 36, 33, 28, 35, 28, 32, 90, 42, 35, 32, 52, 84, @@ -2004,579 +2025,584 @@ static const flex_int16_t yy_chk[5552] = 119, 111, 121, 116, 118, 118, 122, 116, 120, 113, 112, 124, 120, 127, 127, 115, 125, 121, 126, 117, 119, 120, 125, 123, 124, 122, 123, 120, 128, 129, - 126, 130, 131, 132, 127, 134, 133, 123, 133, 135, - 136, 123, 137, 138, 135, 129, 128, 134, 138, 132, - 130, 139, 136, 131, 141, 141, 148, 148, 143, 133, - 137, 143, 147, 156, 145, 139, 145, 145, 150, 145, - 150, 150, 151, 150, 151, 151, 153, 151, 154, 153, - - 155, 156, 157, 154, 151, 158, 155, 161, 160, 162, - 164, 167, 165, 158, 163, 155, 160, 157, 168, 163, - 158, 165, 166, 168, 162, 174, 161, 170, 166, 166, - 164, 169, 169, 170, 172, 171, 167, 171, 172, 182, - 171, 173, 173, 172, 174, 175, 176, 177, 172, 178, - 175, 176, 179, 182, 172, 172, 180, 171, 179, 177, - 180, 181, 183, 184, 185, 186, 181, 187, 190, 178, - 186, 189, 187, 188, 188, 184, 189, 183, 184, 188, - 191, 179, 185, 192, 193, 193, 194, 196, 190, 192, - 199, 188, 194, 188, 195, 197, 191, 198, 194, 200, - - 195, 197, 202, 198, 201, 200, 204, 196, 202, 201, - 203, 199, 198, 204, 205, 206, 203, 207, 208, 209, - 210, 206, 211, 213, 208, 212, 215, 205, 210, 214, - 212, 216, 213, 217, 218, 211, 219, 207, 217, 220, - 219, 209, 215, 221, 214, 222, 224, 223, 225, 221, - 225, 216, 218, 223, 227, 226, 229, 231, 146, 228, - 227, 220, 226, 222, 222, 228, 224, 230, 234, 231, - 232, 232, 235, 230, 234, 229, 233, 233, 235, 236, - 237, 236, 238, 239, 243, 240, 241, 238, 242, 243, - 244, 245, 234, 246, 241, 239, 247, 245, 236, 246, - - 248, 247, 250, 237, 240, 248, 249, 251, 242, 252, - 253, 254, 249, 244, 255, 257, 256, 250, 257, 254, - 261, 251, 256, 258, 253, 258, 264, 252, 259, 259, - 260, 262, 262, 260, 263, 263, 265, 266, 261, 255, - 266, 267, 264, 268, 269, 267, 270, 271, 278, 273, - 269, 265, 268, 271, 272, 273, 272, 274, 275, 275, - 270, 274, 276, 277, 279, 280, 281, 276, 278, 277, - 282, 282, 283, 284, 286, 283, 285, 288, 274, 281, - 285, 290, 279, 287, 287, 289, 280, 293, 289, 295, - 291, 284, 286, 290, 292, 288, 291, 292, 295, 293, - - 294, 297, 298, 296, 301, 298, 297, 298, 299, 294, - 144, 299, 294, 300, 303, 303, 301, 294, 294, 294, - 294, 296, 302, 298, 302, 302, 300, 304, 305, 306, - 304, 307, 308, 309, 309, 311, 311, 310, 312, 315, - 307, 308, 310, 314, 306, 305, 313, 316, 305, 317, - 318, 313, 319, 312, 320, 314, 318, 321, 315, 320, - 322, 354, 325, 321, 317, 322, 323, 316, 332, 333, - 324, 323, 319, 324, 327, 324, 325, 323, 326, 328, - 334, 326, 329, 327, 354, 328, 335, 329, 332, 330, - 333, 338, 330, 340, 326, 334, 344, 326, 330, 326, - - 335, 337, 330, 343, 337, 338, 341, 345, 340, 343, - 330, 331, 331, 342, 331, 341, 346, 344, 342, 342, - 337, 348, 349, 351, 347, 352, 345, 331, 349, 350, - 331, 346, 331, 347, 331, 339, 353, 339, 339, 352, - 348, 355, 353, 351, 356, 357, 353, 339, 358, 339, - 339, 339, 359, 358, 339, 350, 360, 361, 361, 362, - 357, 355, 360, 363, 356, 365, 364, 359, 366, 367, - 370, 365, 368, 369, 369, 363, 369, 368, 371, 362, - 364, 372, 373, 375, 374, 367, 374, 375, 376, 378, - 370, 379, 376, 366, 371, 380, 373, 372, 377, 377, - - 381, 382, 142, 383, 374, 384, 379, 376, 378, 386, - 387, 380, 383, 386, 384, 382, 385, 389, 381, 387, - 388, 385, 390, 383, 392, 383, 388, 391, 390, 392, - 393, 391, 394, 394, 395, 396, 397, 399, 389, 401, - 396, 398, 398, 399, 400, 402, 403, 395, 400, 397, - 393, 403, 404, 405, 401, 406, 407, 404, 409, 408, - 410, 411, 405, 410, 414, 411, 402, 406, 412, 414, - 409, 413, 413, 415, 416, 416, 407, 408, 418, 418, - 412, 419, 420, 421, 422, 423, 426, 425, 140, 427, - 420, 429, 421, 428, 415, 430, 432, 423, 70, 428, - - 429, 430, 419, 427, 422, 425, 426, 425, 431, 433, - 432, 435, 434, 431, 438, 437, 436, 433, 434, 436, - 433, 437, 439, 440, 443, 441, 442, 439, 438, 443, - 442, 435, 444, 445, 446, 447, 450, 449, 445, 437, - 451, 452, 453, 64, 451, 440, 441, 444, 454, 458, - 446, 450, 454, 456, 447, 448, 448, 449, 453, 455, - 452, 448, 457, 448, 455, 458, 460, 457, 456, 448, - 459, 448, 460, 461, 448, 448, 463, 460, 465, 459, - 462, 448, 467, 462, 464, 464, 466, 466, 468, 461, - 469, 470, 471, 472, 474, 473, 463, 467, 472, 59, - - 468, 475, 476, 465, 473, 469, 478, 479, 476, 481, - 470, 479, 480, 474, 471, 478, 475, 482, 480, 483, - 484, 481, 485, 486, 487, 489, 488, 489, 487, 491, - 491, 54, 482, 493, 484, 490, 492, 485, 483, 488, - 494, 486, 492, 490, 495, 493, 494, 496, 497, 498, - 496, 500, 499, 502, 500, 503, 495, 499, 501, 504, - 503, 503, 497, 53, 498, 505, 505, 501, 511, 502, - 506, 506, 504, 507, 501, 508, 508, 501, 510, 507, - 509, 509, 512, 513, 510, 512, 514, 515, 513, 511, - 516, 517, 518, 516, 519, 515, 517, 520, 521, 522, - - 523, 520, 524, 522, 521, 514, 525, 524, 526, 528, - 530, 527, 532, 519, 526, 518, 527, 529, 523, 533, - 529, 531, 531, 528, 533, 529, 525, 534, 530, 529, - 532, 535, 534, 536, 537, 538, 539, 540, 541, 539, - 537, 540, 543, 541, 538, 535, 542, 543, 536, 542, - 544, 545, 546, 547, 548, 549, 549, 551, 547, 550, - 554, 552, 553, 540, 555, 546, 544, 556, 550, 545, - 555, 553, 554, 556, 548, 557, 551, 552, 557, 558, - 559, 560, 558, 561, 562, 559, 563, 564, 48, 565, - 562, 563, 565, 564, 568, 566, 567, 561, 569, 560, - - 566, 567, 567, 570, 571, 572, 573, 568, 574, 575, - 571, 569, 575, 574, 576, 573, 577, 580, 580, 581, - 576, 578, 570, 570, 572, 579, 578, 575, 577, 583, - 579, 579, 582, 584, 582, 584, 585, 586, 587, 588, - 589, 590, 591, 43, 581, 590, 592, 593, 583, 594, - 595, 591, 596, 597, 585, 586, 587, 598, 588, 599, - 589, 592, 593, 598, 596, 600, 601, 594, 597, 595, - 602, 603, 604, 599, 605, 603, 606, 600, 607, 608, - 609, 609, 610, 611, 612, 601, 610, 614, 615, 602, - 604, 613, 605, 608, 606, 612, 613, 607, 616, 617, - - 618, 619, 611, 614, 620, 618, 617, 615, 619, 620, - 621, 616, 622, 623, 624, 621, 626, 625, 630, 628, - 623, 627, 630, 624, 628, 626, 629, 631, 632, 629, - 622, 625, 633, 627, 634, 635, 641, 632, 636, 636, - 639, 631, 637, 637, 638, 638, 642, 633, 634, 639, - 643, 637, 642, 644, 645, 641, 635, 644, 646, 647, - 649, 648, 650, 651, 652, 653, 645, 648, 649, 650, - 643, 656, 663, 659, 14, 654, 664, 647, 663, 662, - 654, 651, 668, 646, 654, 653, 656, 654, 662, 652, - 659, 665, 664, 668, 654, 665, 669, 654, 666, 666, - - 667, 667, 670, 671, 672, 677, 674, 13, 675, 676, - 672, 674, 678, 680, 669, 678, 670, 679, 679, 682, - 680, 681, 681, 671, 673, 673, 673, 676, 673, 675, - 677, 673, 683, 683, 682, 684, 673, 688, 685, 686, - 684, 685, 673, 673, 686, 687, 689, 687, 690, 688, - 691, 693, 690, 692, 694, 694, 695, 697, 697, 693, - 696, 698, 700, 699, 701, 689, 702, 702, 705, 701, - 691, 695, 692, 705, 696, 699, 703, 706, 714, 698, - 707, 703, 703, 706, 700, 708, 707, 709, 710, 711, - 708, 710, 712, 709, 713, 711, 714, 716, 715, 717, - - 712, 719, 713, 715, 716, 718, 718, 720, 721, 722, - 719, 724, 725, 730, 721, 720, 727, 726, 717, 729, - 724, 725, 726, 728, 729, 727, 728, 730, 722, 731, - 732, 732, 733, 734, 735, 736, 739, 737, 739, 741, - 737, 740, 740, 735, 742, 743, 746, 733, 737, 742, - 744, 745, 734, 747, 731, 748, 750, 749, 751, 736, - 741, 749, 755, 752, 748, 756, 743, 753, 746, 752, - 744, 745, 754, 747, 750, 758, 753, 751, 759, 756, - 757, 755, 761, 759, 754, 762, 757, 760, 760, 758, - 763, 764, 765, 766, 762, 767, 770, 769, 768, 771, - - 772, 767, 761, 769, 772, 771, 773, 774, 776, 0, - 763, 764, 768, 766, 765, 775, 770, 777, 777, 774, - 775, 779, 778, 780, 779, 773, 781, 774, 778, 776, - 782, 783, 784, 784, 785, 786, 782, 787, 787, 781, - 786, 780, 788, 789, 790, 790, 791, 789, 793, 792, - 796, 783, 785, 793, 794, 799, 797, 788, 800, 802, - 802, 803, 804, 805, 805, 803, 808, 806, 791, 792, - 797, 969, 807, 794, 796, 799, 807, 804, 969, 800, - 801, 808, 810, 801, 809, 801, 811, 810, 812, 801, - 813, 801, 806, 812, 812, 814, 801, 815, 809, 814, - - 811, 801, 816, 817, 813, 818, 819, 816, 817, 820, - 821, 827, 815, 825, 822, 823, 821, 816, 825, 818, - 822, 823, 826, 820, 824, 824, 828, 819, 826, 829, - 831, 832, 833, 827, 835, 835, 832, 0, 834, 836, - 839, 838, 831, 837, 836, 828, 833, 829, 830, 830, - 834, 837, 840, 846, 830, 838, 830, 841, 841, 839, - 842, 849, 830, 844, 842, 847, 849, 830, 830, 844, - 845, 840, 846, 845, 830, 848, 850, 851, 847, 852, - 853, 848, 855, 854, 856, 857, 851, 858, 852, 854, - 857, 855, 859, 860, 864, 850, 853, 861, 865, 862, - - 864, 863, 867, 856, 865, 869, 859, 858, 862, 861, - 863, 870, 872, 860, 871, 874, 873, 875, 867, 869, - 876, 0, 875, 877, 883, 876, 872, 878, 877, 880, - 874, 870, 881, 871, 873, 880, 878, 879, 879, 886, - 883, 884, 886, 887, 888, 881, 884, 884, 885, 885, - 889, 893, 885, 890, 891, 892, 894, 887, 896, 899, - 895, 892, 894, 895, 888, 897, 890, 898, 889, 891, - 897, 893, 898, 900, 902, 899, 901, 904, 900, 896, - 905, 901, 906, 904, 907, 909, 902, 910, 906, 912, - 907, 908, 908, 913, 909, 911, 905, 914, 911, 915, - - 916, 919, 915, 917, 918, 910, 919, 912, 924, 917, - 918, 920, 913, 916, 921, 922, 920, 914, 925, 921, - 928, 922, 926, 927, 927, 929, 924, 930, 926, 928, - 930, 931, 933, 932, 931, 934, 935, 937, 925, 936, - 940, 938, 935, 929, 932, 936, 938, 934, 939, 939, - 933, 941, 937, 943, 942, 944, 946, 943, 945, 940, - 947, 949, 950, 950, 952, 941, 942, 945, 953, 954, - 956, 955, 958, 944, 985, 946, 955, 985, 952, 956, - 949, 954, 959, 953, 960, 947, 957, 957, 959, 961, - 960, 962, 958, 962, 961, 963, 964, 965, 966, 967, - - 963, 968, 970, 966, 971, 973, 973, 974, 975, 976, - 964, 965, 977, 978, 967, 981, 981, 970, 977, 986, - 968, 974, 979, 971, 976, 982, 975, 979, 983, 984, - 982, 987, 989, 978, 988, 983, 979, 986, 979, 988, - 987, 979, 990, 984, 991, 992, 997, 990, 994, 994, - 1001, 989, 995, 996, 998, 991, 999, 995, 996, 998, - 999, 1000, 1002, 1003, 992, 1001, 997, 1004, 1005, 1006, - 1000, 1008, 1007, 1009, 1010, 1011, 1006, 1002, 1012, 1004, - 1013, 1011, 1003, 1005, 1007, 1014, 1015, 1018, 1019, 1020, - 1008, 1017, 1010, 1012, 1009, 1015, 1019, 1017, 1021, 1022, - - 1013, 1018, 1023, 1021, 1024, 1014, 1025, 1023, 1023, 1020, - 1030, 1022, 1026, 1027, 1027, 1029, 1031, 1032, 1032, 1030, - 1025, 1034, 1031, 1024, 1033, 1026, 1028, 1035, 1029, 1033, - 1034, 1028, 1036, 1035, 1028, 1028, 1037, 1036, 1041, 1028, - 1044, 1037, 1038, 1038, 1042, 1028, 1039, 1039, 1040, 1028, - 1043, 1040, 1045, 1040, 1046, 1047, 0, 1045, 1041, 1043, - 1044, 1048, 1042, 1049, 1054, 1050, 1054, 1048, 1046, 1049, - 1050, 1051, 1052, 1047, 1055, 1051, 1053, 1053, 1057, 1058, - 1059, 1052, 1057, 1062, 1060, 1055, 1052, 1064, 1052, 0, - 1052, 1061, 1052, 1060, 1058, 1063, 1061, 1061, 1059, 1065, - - 1063, 1064, 1066, 1067, 1068, 1062, 1069, 1072, 1065, 1070, - 1071, 1073, 1068, 1074, 1070, 1077, 1072, 1079, 1075, 1079, - 1069, 1066, 1067, 1075, 1071, 1076, 1076, 1078, 1078, 1073, - 1077, 1081, 1082, 1083, 1081, 1084, 1084, 1082, 1074, 1085, - 1086, 1086, 1087, 1087, 1088, 1089, 1090, 1091, 1091, 1088, - 1092, 1093, 1083, 1094, 1093, 1095, 1096, 1100, 0, 1085, - 1095, 1097, 1100, 1097, 1101, 1096, 1089, 1090, 1099, 1101, - 1092, 1099, 1102, 1094, 1103, 1106, 1104, 1105, 1105, 1103, - 1102, 1104, 1107, 1108, 1109, 1111, 1112, 1115, 1107, 1113, - 1108, 1111, 1112, 1106, 1113, 1114, 1115, 1109, 1116, 1117, - - 1119, 1114, 1118, 1118, 1121, 1122, 1123, 1124, 1125, 1127, - 1117, 1128, 1123, 1124, 1125, 1127, 1129, 1116, 1130, 1131, - 1119, 1132, 1133, 1133, 1121, 1128, 1134, 1135, 1122, 1136, - 1130, 1128, 1137, 1131, 1138, 1138, 1129, 1137, 1139, 1132, - 1140, 1142, 1145, 1143, 1144, 1140, 1134, 1136, 1143, 1143, - 1146, 1145, 1135, 1147, 1148, 1149, 1157, 1151, 1146, 1151, - 1142, 1139, 1144, 1150, 1152, 1155, 1153, 1147, 1150, 1148, - 1149, 1150, 1153, 1149, 1156, 1154, 1155, 1158, 1152, 1154, - 1159, 1160, 1157, 1161, 1162, 1159, 1164, 1165, 1161, 1166, - 1167, 1167, 1168, 1156, 1169, 1158, 1168, 1170, 1172, 1160, - - 1164, 1173, 1171, 1174, 1162, 1165, 1175, 1166, 1171, 1176, - 1172, 1177, 1169, 1178, 1180, 1179, 1170, 1174, 1178, 1180, - 1173, 1175, 1179, 1181, 1176, 1182, 1183, 1183, 1184, 1185, - 1177, 1186, 1187, 1188, 1182, 1185, 1189, 1187, 1196, 1188, - 1198, 1181, 1189, 1184, 1190, 1190, 1191, 1191, 1193, 1193, - 1194, 1195, 1186, 1197, 1194, 1198, 1196, 1199, 1200, 1200, - 1195, 1201, 1202, 1203, 1199, 1204, 1205, 1197, 1203, 1206, - 1202, 1207, 1208, 1215, 1206, 1206, 1207, 1207, 1210, 1204, - 1211, 1201, 1209, 1209, 1212, 1205, 1213, 1214, 1216, 1218, - 1217, 1215, 1208, 1212, 1216, 1217, 1219, 1210, 1220, 1211, - - 1221, 1223, 1219, 1222, 1224, 1213, 1221, 1214, 1225, 1222, - 1226, 1227, 1228, 1229, 1232, 1218, 0, 1220, 1230, 1230, - 1223, 1231, 1236, 1224, 1231, 1227, 1232, 1225, 1229, 1226, - 1233, 1233, 1234, 1228, 1235, 1236, 1237, 1234, 1235, 1238, - 1239, 1242, 1239, 1241, 1243, 1237, 1239, 1244, 1241, 1245, - 1245, 1250, 1238, 1246, 1251, 1247, 1242, 1248, 1246, 1239, - 1247, 1248, 1249, 1244, 1243, 1252, 1249, 1253, 1254, 1254, - 1256, 1250, 1251, 1253, 1258, 1259, 1260, 1260, 1261, 1271, - 1259, 1263, 1263, 1265, 1261, 1252, 1265, 1267, 1256, 1266, - 1266, 1268, 1272, 1270, 1274, 1258, 1270, 1273, 1273, 1271, - - 1275, 1272, 1278, 1267, 1279, 1276, 1280, 1268, 1282, 1274, - 1276, 1277, 1277, 1281, 1281, 1284, 1285, 1285, 1283, 1279, - 1278, 1275, 1282, 1283, 1286, 1287, 1288, 1288, 1286, 1289, - 1284, 1280, 1290, 1291, 1292, 1293, 1296, 1291, 1295, 1295, - 1293, 1297, 1298, 1290, 1299, 1287, 1300, 1301, 1301, 1303, - 1304, 1289, 1302, 1292, 1296, 1297, 1305, 1302, 1299, 1306, - 1307, 1298, 1298, 1311, 1306, 1305, 1308, 1309, 1308, 1303, - 1304, 1300, 1309, 1310, 1314, 1312, 1315, 1315, 1316, 1310, - 1307, 1312, 1319, 1311, 1317, 1320, 1323, 1319, 1314, 1324, - 1317, 1321, 1321, 1322, 1322, 1325, 1326, 1316, 1329, 1326, - - 1323, 1327, 1327, 1328, 1333, 1330, 1331, 1324, 1330, 1320, - 1325, 1330, 1331, 1333, 1332, 1328, 1334, 1335, 1329, 1332, - 1337, 1334, 1336, 1330, 1338, 1336, 1337, 1339, 1339, 1338, - 1340, 1340, 1341, 1343, 1342, 1344, 1345, 1346, 1341, 1342, - 1347, 1348, 1335, 1347, 1349, 1351, 1343, 1348, 1352, 1350, - 1349, 1351, 1356, 1344, 1350, 1345, 1353, 1346, 1354, 1354, - 1355, 1353, 1357, 1358, 1359, 1355, 1360, 1361, 1362, 1363, - 1356, 1352, 1364, 1365, 1366, 1363, 1367, 1375, 1359, 1361, - 1360, 1362, 1357, 1358, 1369, 1369, 1370, 1373, 1366, 1371, - 1372, 1372, 1364, 1365, 1371, 1374, 1376, 1367, 1377, 1380, - - 1378, 1375, 1373, 1379, 1381, 1385, 1370, 1377, 1380, 1374, - 1379, 1380, 1383, 1386, 1376, 1378, 1386, 1387, 1387, 1389, - 1381, 1388, 1388, 1390, 1391, 1391, 1390, 1383, 1392, 1393, - 1385, 1389, 1383, 1394, 1395, 1396, 1397, 1398, 1394, 1395, - 1399, 1392, 1401, 1402, 1400, 1404, 1398, 1405, 1393, 1402, - 1406, 1401, 1397, 1400, 1396, 1407, 1400, 1403, 1403, 1399, - 1405, 1408, 1409, 1411, 1412, 1404, 1413, 1413, 1406, 1407, - 1414, 1415, 1418, 1416, 1409, 1417, 1417, 1408, 1416, 1419, - 1415, 1418, 1412, 1420, 1418, 1421, 1414, 1422, 1411, 1425, - 1417, 1424, 1422, 1422, 1426, 1425, 1428, 1419, 1427, 1427, - - 1433, 1429, 1428, 1421, 1420, 1424, 1429, 1430, 1431, 1434, - 1435, 1436, 1426, 1430, 1431, 1441, 1435, 1439, 1437, 1442, - 1433, 1437, 1443, 1434, 1436, 1439, 1444, 1437, 1445, 1446, - 1443, 1447, 1448, 1449, 1441, 1444, 1450, 1451, 1442, 1449, - 1452, 1445, 1446, 1453, 1455, 1447, 1448, 1454, 1456, 1450, - 1455, 1457, 1459, 1459, 1460, 1461, 1462, 1451, 1452, 1461, - 1454, 1462, 1453, 1463, 1456, 1464, 1465, 1466, 1463, 1457, - 1464, 1468, 1469, 1469, 1460, 1465, 1470, 1471, 1472, 1473, - 1473, 1475, 1474, 1478, 1479, 1511, 1468, 1476, 1475, 1471, - 1466, 1477, 1480, 1481, 1482, 1470, 1474, 1472, 1480, 1476, - - 1483, 1511, 1478, 1477, 1479, 1481, 1483, 1484, 1484, 1489, - 1485, 1488, 1482, 1485, 1486, 1486, 1488, 1490, 1489, 1491, - 1491, 1492, 1493, 1490, 1493, 1494, 1495, 1496, 1494, 1497, - 1498, 1499, 1500, 1492, 1503, 1504, 1499, 1502, 1501, 1503, - 1505, 1500, 1509, 1506, 1504, 1508, 1495, 1497, 1498, 1496, - 1501, 1508, 1502, 1507, 1507, 1510, 1512, 1504, 1506, 1513, - 1505, 1513, 1518, 1509, 1514, 1515, 1515, 1516, 1516, 1517, - 1517, 1519, 1519, 1521, 1510, 1522, 1512, 1524, 1514, 1529, - 1514, 1524, 1518, 1520, 1520, 1523, 1523, 1525, 1526, 1528, - 1531, 1526, 1530, 1525, 1521, 1528, 1522, 1529, 1530, 1532, - - 1533, 1533, 1532, 1534, 1534, 1535, 1536, 1537, 1538, 1540, - 1539, 1535, 1543, 1545, 1549, 1531, 1539, 1542, 1536, 1536, - 1536, 1546, 1542, 1542, 1545, 1536, 1543, 1537, 1538, 1540, - 1544, 1547, 1544, 1548, 1549, 1550, 1546, 1547, 1551, 1551, - 1552, 1554, 1548, 1553, 1553, 1555, 1556, 1556, 1557, 1557, - 1558, 1561, 1561, 1562, 1564, 1565, 1550, 1568, 1566, 1567, - 1567, 1554, 1562, 1564, 1566, 1569, 1552, 1555, 1570, 1572, - 1558, 1574, 1571, 1573, 1573, 1570, 1565, 1575, 1568, 1577, - 1569, 1571, 1578, 1579, 1577, 1580, 1583, 1583, 1578, 1585, - 1581, 1586, 1580, 1575, 1582, 1572, 1581, 1574, 1585, 1584, - - 1582, 1587, 1588, 1579, 1584, 1589, 1590, 1591, 1589, 1592, - 1592, 1586, 1593, 1595, 1588, 1594, 1598, 1596, 1593, 1599, - 1587, 1596, 1602, 1603, 1590, 1600, 1604, 1603, 1595, 0, - 1605, 1610, 1604, 1591, 1608, 1594, 1598, 1596, 1599, 1605, - 1600, 1602, 1606, 1606, 1607, 1608, 1609, 1609, 1607, 1611, - 1608, 1612, 1610, 1613, 1614, 1615, 1612, 1616, 1620, 1617, - 1621, 1615, 1620, 1611, 1617, 1618, 1618, 1619, 1619, 1622, - 1622, 1621, 1616, 1613, 1614, 1624, 1621, 1623, 1623, 1625, - 1624, 1624, 1626, 1627, 1628, 1625, 1629, 1631, 1626, 1632, - 1633, 1634, 1629, 1632, 1635, 1636, 1628, 1637, 1638, 1631, - - 1635, 1640, 1633, 1637, 1641, 1644, 1642, 1648, 1644, 1627, - 1638, 1642, 0, 1640, 1645, 1645, 1634, 1636, 1646, 1646, - 1647, 1647, 1649, 1641, 1650, 1653, 1651, 1648, 1649, 1652, - 1650, 1651, 1655, 1657, 1653, 1652, 1657, 1655, 1658, 1659, - 1659, 1661, 1662, 1663, 1664, 1664, 1665, 1666, 1663, 1669, - 1658, 1667, 1666, 1661, 1662, 1665, 1667, 1668, 1668, 1670, - 1671, 1672, 1673, 1676, 1679, 1674, 1673, 1675, 1670, 1669, - 1674, 1678, 1678, 1675, 1684, 1680, 1686, 1676, 1671, 1682, - 1672, 1683, 1679, 1678, 1680, 1681, 1681, 1685, 1682, 1686, - 1689, 1689, 1685, 1683, 1691, 1684, 1692, 1691, 1693, 1696, - - 1695, 1697, 1698, 1699, 1699, 1705, 1700, 1697, 1700, 1701, - 1701, 1704, 1692, 1696, 1693, 1695, 1702, 1707, 1704, 1698, - 1706, 1706, 1708, 1709, 1702, 1705, 1707, 1710, 1711, 1712, - 1713, 1714, 1716, 1719, 1717, 1709, 1720, 1714, 1723, 1710, - 1711, 1718, 1718, 1708, 1721, 1713, 1717, 1721, 1722, 1725, - 1714, 1719, 1716, 1722, 1725, 1712, 1720, 1726, 1723, 1726, - 1727, 1728, 1729, 1731, 1733, 1734, 1728, 1736, 1735, 1729, - 1735, 1739, 1731, 1733, 1738, 1741, 1738, 1734, 1727, 1740, - 1740, 1743, 1742, 1743, 1744, 1739, 1736, 1742, 1745, 1744, - 1746, 1747, 1748, 1745, 1749, 1751, 1750, 1753, 1748, 1749, - - 1754, 1741, 1757, 1751, 1755, 1755, 1756, 1756, 1746, 1750, - 1758, 1747, 1759, 0, 1754, 1760, 1753, 1757, 1759, 1761, - 1760, 1761, 1764, 1762, 1763, 1763, 1765, 1765, 1766, 1766, - 1758, 1762, 1767, 1768, 1764, 1769, 1770, 1769, 1771, 1762, - 1772, 1767, 1768, 1771, 1771, 1768, 1773, 1775, 1776, 1772, - 1777, 1779, 1780, 1776, 1784, 1777, 1782, 1770, 1773, 1775, - 1781, 1781, 1783, 1785, 1779, 1799, 1786, 1788, 1790, 1794, - 1784, 1789, 1780, 1790, 1782, 1794, 1797, 1785, 1796, 1788, - 1783, 1786, 1791, 1789, 1796, 1798, 1800, 1791, 1794, 1802, - 1799, 1801, 1801, 1803, 1803, 1800, 1804, 1805, 1802, 1797, - - 1798, 1805, 1806, 1807, 1808, 1809, 1810, 1806, 1813, 1808, - 1808, 1809, 1810, 1812, 1811, 1804, 1807, 1811, 1816, 1816, - 1818, 1812, 1817, 1817, 1819, 1819, 1820, 1820, 1813, 1818, - 1821, 1822, 1823, 1831, 1824, 1825, 1825, 1817, 1823, 1824, - 1826, 1826, 1821, 1830, 1834, 1827, 1828, 1830, 1817, 1822, - 1827, 1832, 1828, 1831, 1835, 1832, 1836, 1837, 1838, 1835, - 1839, 1840, 1842, 1838, 1841, 1841, 1842, 1843, 1844, 1834, - 1845, 1846, 1837, 1844, 1847, 1848, 1849, 1840, 1839, 1836, - 1848, 1850, 1843, 1846, 1851, 1851, 1853, 1854, 1855, 1849, - 1856, 1857, 1858, 1847, 1853, 1859, 1845, 1860, 1861, 1850, - - 1864, 1864, 1863, 2126, 1867, 1865, 1854, 1855, 1865, 1860, - 1866, 1858, 1868, 1856, 2126, 1857, 1859, 1863, 1867, 1861, - 1869, 1869, 1872, 1866, 1875, 1868, 1870, 1870, 1871, 1871, - 1873, 1874, 1874, 1875, 1876, 1876, 1875, 1872, 1880, 1877, - 1879, 1881, 1882, 1873, 1877, 1879, 1883, 1883, 1884, 1884, - 1885, 1886, 1886, 1887, 1882, 1888, 1888, 1889, 1880, 1890, - 1890, 1881, 1891, 1891, 1892, 1893, 1894, 1895, 1897, 1885, - 1899, 1887, 1889, 1897, 1893, 1898, 1898, 1901, 1892, 1902, - 1894, 1900, 1900, 1906, 1903, 1902, 1895, 1903, 1907, 1899, - 1904, 1904, 1905, 1905, 1908, 1901, 1909, 1909, 1911, 1912, - - 1913, 1914, 1906, 1907, 1916, 1914, 1904, 1915, 1915, 1917, - 1918, 1920, 1920, 1908, 1921, 1913, 1923, 1924, 1911, 1922, - 1925, 1925, 1912, 1916, 1917, 1918, 1922, 1926, 1928, 1927, - 1923, 1927, 1930, 1931, 1921, 1932, 1926, 1933, 1931, 1934, - 1932, 1936, 1935, 1924, 1930, 1938, 1936, 1941, 1928, 1939, - 1938, 1940, 1934, 1941, 1939, 1942, 1944, 1945, 1943, 1946, - 1947, 1944, 1933, 1935, 1943, 1948, 1940, 1951, 1949, 1947, - 1950, 1953, 1946, 1955, 1948, 1953, 1942, 1949, 1952, 1950, - 1957, 1951, 1945, 1961, 1952, 1958, 1958, 1966, 1959, 1957, - 1960, 1960, 1963, 1955, 1959, 1964, 1965, 1965, 1967, 1960, - - 1969, 1970, 1966, 1961, 1971, 1961, 1972, 1967, 1963, 1975, - 1974, 1964, 1969, 1974, 1975, 1976, 1977, 1970, 1972, 1971, - 1978, 1978, 1979, 1979, 1981, 1981, 1982, 1983, 1977, 1982, - 1984, 1985, 1983, 1986, 1986, 1976, 1984, 1985, 1987, 1988, - 1988, 1989, 1990, 1991, 1992, 1992, 1994, 1999, 1995, 0, - 1994, 1995, 1987, 1989, 1996, 1996, 1990, 1998, 1997, 2002, - 2000, 2005, 1991, 1997, 2000, 2004, 1998, 1999, 2001, 2001, - 2004, 2006, 2002, 2007, 2008, 2009, 2013, 2010, 2008, 2011, - 2012, 2005, 2010, 2015, 2016, 2011, 2012, 2007, 2022, 2016, - 2017, 2006, 2018, 2025, 2013, 2009, 2017, 2023, 2023, 2015, - - 2018, 2019, 2022, 2019, 2024, 2026, 2026, 2024, 2028, 2029, - 2030, 2032, 2028, 2031, 2031, 2029, 2035, 2035, 2037, 2025, - 2032, 2039, 2030, 2042, 2043, 2044, 2045, 2052, 2042, 2053, - 2044, 2045, 2046, 2046, 2050, 2039, 2037, 2048, 2048, 2054, - 2050, 2051, 2051, 2052, 2054, 2056, 2057, 2058, 2058, 2061, - 2043, 2053, 2060, 2062, 2063, 2061, 2065, 2065, 2057, 2066, - 0, 2060, 2067, 2076, 2056, 2069, 2069, 2070, 2070, 2063, - 2071, 2062, 2072, 2074, 2073, 2071, 2073, 2072, 2066, 2075, - 2067, 2077, 2083, 2076, 2078, 2078, 2077, 2074, 2079, 2079, - 2080, 2080, 2082, 2075, 2081, 2081, 2084, 2084, 2085, 2085, - - 2083, 2086, 2087, 2088, 2082, 2089, 2090, 2090, 2091, 2091, - 2092, 2092, 2093, 2086, 2087, 2094, 2095, 2096, 2098, 2101, - 2097, 2089, 2094, 2088, 2093, 2097, 2099, 2099, 2095, 2102, - 2100, 2103, 2104, 2105, 2106, 2106, 2108, 2096, 2098, 2100, - 2109, 2107, 2111, 2112, 2103, 2101, 2113, 2105, 2115, 2102, - 2107, 2108, 0, 2116, 2114, 2109, 2104, 2114, 2116, 2117, - 2111, 2125, 2115, 2127, 2117, 2112, 2118, 2118, 2129, 2113, - 2119, 2119, 2120, 2120, 2122, 2122, 2124, 2124, 2130, 2125, - 2131, 2132, 2127, 2133, 2134, 2135, 2136, 2136, 2129, 2138, - 2138, 2139, 2133, 2141, 2141, 2148, 2130, 2140, 2143, 2144, - - 2144, 2132, 2131, 2135, 2134, 2145, 2140, 2143, 2146, 2147, - 2148, 2149, 2150, 2139, 2152, 2151, 2147, 2153, 2153, 2154, - 2154, 2155, 2156, 2145, 2157, 2158, 2146, 2155, 2160, 2149, - 2150, 2151, 2159, 2152, 2161, 2172, 2162, 2159, 2168, 2157, - 2156, 2162, 2171, 2163, 2158, 2163, 2164, 2164, 2160, 2165, - 2170, 2165, 2166, 2166, 2161, 2172, 2174, 2168, 2173, 2170, - 2175, 2171, 2178, 2173, 2179, 2180, 2180, 2179, 2181, 2182, - 2183, 2183, 2191, 2184, 2186, 2189, 2174, 2184, 2192, 2175, - 2187, 2195, 2178, 2181, 2187, 2188, 2188, 2182, 2189, 2186, - 2193, 2193, 2191, 2195, 2196, 2196, 2197, 2199, 2192, 2198, - - 2198, 2200, 2199, 2201, 2201, 2206, 2206, 2207, 2208, 2209, - 2210, 2211, 2213, 2200, 2218, 2197, 2212, 2212, 2217, 2210, - 2211, 2208, 2209, 2217, 2220, 2219, 2221, 2213, 2218, 2207, - 2219, 2222, 2220, 2224, 2227, 2225, 2226, 2228, 2228, 2222, - 2225, 2226, 2229, 2229, 2230, 2221, 2232, 2231, 2224, 2227, - 2233, 2230, 2231, 2234, 2237, 2235, 2236, 2236, 2238, 2234, - 2235, 2239, 2239, 2238, 2232, 2240, 2240, 2243, 2233, 2237, - 2244, 2244, 2245, 2246, 0, 2245, 2247, 2248, 2246, 2246, - 2243, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2250, 2249, - 2251, 2254, 2255, 2256, 2261, 2252, 2258, 2255, 2265, 2254, - - 2259, 2258, 2253, 2259, 2263, 2256, 2261, 2264, 2266, 2263, - 2267, 2268, 2264, 2269, 2269, 2270, 2265, 2273, 2274, 2267, - 2268, 2266, 2275, 2277, 2270, 2276, 2276, 2281, 2278, 2279, - 2280, 2280, 2283, 2285, 2288, 2286, 2273, 2278, 2274, 2286, - 2288, 2275, 2277, 0, 2279, 2289, 2281, 2283, 2287, 2287, - 2290, 2289, 2292, 2285, 2291, 2291, 2290, 2293, 2295, 2296, - 2292, 2298, 2293, 2299, 2300, 2298, 2310, 2295, 2302, 2302, - 2303, 2303, 2296, 2304, 2304, 2306, 2306, 2299, 2311, 2300, - 2308, 2308, 2313, 2311, 2311, 2318, 2310, 2314, 2314, 2315, - 2315, 2316, 2316, 2317, 2320, 2324, 2317, 2326, 2318, 2321, - - 2321, 2335, 2313, 2322, 2322, 2323, 2323, 2325, 2325, 2327, - 2324, 2328, 2320, 2329, 2329, 2326, 2330, 2328, 2334, 2333, - 2330, 2335, 2336, 2327, 2333, 2333, 2337, 2338, 2339, 2346, - 2340, 2349, 2337, 2338, 2340, 2341, 2341, 2346, 2344, 2354, - 2351, 2334, 2336, 2344, 2347, 2350, 2352, 2347, 2350, 2353, - 2355, 2352, 2357, 2339, 2356, 2356, 2349, 2351, 2351, 2354, - 2358, 2360, 2361, 2361, 2355, 2362, 2362, 2353, 2358, 2359, - 2366, 2357, 2363, 2363, 2359, 2359, 2364, 2364, 2365, 2365, - 2360, 2368, 2367, 2369, 2370, 2371, 2366, 2367, 2372, 2374, - 2374, 2375, 2376, 2370, 2375, 2378, 2378, 2379, 2380, 2380, - - 2387, 2368, 2381, 2383, 2379, 2371, 2384, 2381, 2372, 2369, - 2376, 2385, 2383, 2388, 2388, 2384, 2390, 2389, 2387, 2391, - 2385, 2389, 2392, 2393, 2394, 2390, 2400, 2392, 2392, 2399, - 2399, 2402, 2406, 2394, 2391, 2403, 2393, 2407, 2408, 2410, - 2402, 2412, 0, 2414, 2400, 2416, 2407, 2403, 2414, 2415, - 2415, 2410, 2419, 2419, 2416, 2418, 2419, 2406, 2408, 2425, - 2418, 2424, 2412, 2421, 2421, 2422, 2422, 2423, 2423, 2426, - 2424, 2427, 2429, 2432, 2432, 2430, 2427, 2431, 2429, 2425, - 2430, 2433, 2431, 2434, 2435, 2436, 2437, 2438, 2426, 2435, - 2439, 2439, 2437, 2442, 2441, 2443, 2445, 2445, 2447, 2433, - - 2450, 2448, 2449, 2436, 2434, 2451, 2449, 2452, 2442, 2450, - 2453, 2447, 2438, 2441, 2448, 2443, 2455, 2454, 2453, 2456, - 2456, 2451, 2454, 2462, 2457, 2465, 2452, 2459, 2459, 2460, - 2460, 2464, 2464, 2466, 2467, 2468, 2470, 2470, 2471, 2472, - 2468, 2465, 2455, 2457, 2462, 2473, 2475, 2475, 2478, 2466, - 2467, 2476, 2479, 2478, 2480, 2480, 2481, 2481, 2471, 2482, - 2483, 2483, 2472, 2484, 2473, 2476, 2485, 0, 2486, 2487, - 2488, 2495, 2484, 2496, 2479, 2489, 2489, 2491, 2491, 2482, - 2483, 2487, 2490, 2495, 2505, 2490, 2485, 2486, 2497, 2501, - 2488, 2498, 2498, 2496, 2497, 2499, 2500, 2507, 2499, 2503, - - 2504, 2511, 2500, 2505, 2503, 2504, 2506, 2501, 2508, 2508, - 2510, 2510, 2506, 2512, 2507, 2507, 2514, 2514, 2515, 2515, - 2511, 2516, 2512, 2517, 2518, 2527, 2516, 2519, 2519, 2518, - 2520, 2520, 2521, 2521, 2522, 2524, 2524, 2517, 2529, 2522, - 2530, 2531, 2532, 2532, 2527, 2534, 2534, 2535, 2536, 2537, - 2538, 2538, 2539, 2546, 2540, 2543, 2543, 0, 2537, 2540, - 2529, 2535, 2530, 2531, 2545, 2545, 2547, 2546, 2536, 2548, - 2550, 2539, 2547, 2549, 2549, 2550, 2552, 2548, 2553, 2554, - 2555, 2556, 2558, 2559, 2554, 2560, 2561, 2556, 2563, 2562, - 2558, 2564, 2555, 2565, 2566, 2569, 2552, 2570, 2553, 2566, - - 2573, 2573, 2559, 2680, 2563, 2560, 2561, 2562, 2564, 2564, - 2570, 2574, 2574, 2575, 2565, 2569, 2680, 2575, 2579, 2579, - 2581, 2581, 2582, 2582, 2585, 2582, 2583, 2583, 2585, 2583, - 2584, 2584, 2588, 2584, 2587, 2587, 2591, 2589, 2592, 2592, - 2595, 2591, 2596, 2597, 2599, 2600, 2596, 2595, 2601, 2601, - 2588, 2589, 2602, 2602, 2600, 2603, 2603, 2604, 2597, 2605, - 2607, 2606, 2599, 2608, 2605, 2607, 2607, 2609, 2610, 2608, - 2606, 2612, 2604, 2606, 2611, 2613, 2612, 2614, 2615, 2615, - 2613, 2616, 2630, 2610, 2619, 2619, 2616, 2622, 2622, 2623, - 2623, 2630, 2609, 2624, 2624, 2611, 2614, 2625, 2625, 2626, - - 2626, 2627, 2627, 2628, 2628, 2631, 2631, 2632, 2634, 2634, - 2635, 2636, 2637, 2637, 2638, 2639, 2639, 2642, 2643, 2644, - 2646, 2643, 2649, 2636, 2652, 2635, 2650, 2632, 2649, 2638, - 2645, 2645, 2651, 2648, 2653, 2642, 2648, 2651, 2646, 2654, - 2650, 2656, 2669, 2652, 2665, 2644, 2670, 2665, 2667, 2667, - 2670, 2671, 2653, 2672, 2674, 2654, 2656, 2675, 2676, 2677, - 2678, 2677, 2681, 2676, 2682, 2669, 2684, 2672, 2675, 2679, - 2679, 2671, 2683, 2686, 2685, 2678, 2687, 2674, 2689, 2690, - 2690, 2681, 2682, 2697, 2691, 2692, 2692, 2696, 2683, 2685, - 2699, 2684, 2689, 2691, 2686, 2699, 2687, 2693, 2693, 2694, - - 2694, 2695, 2695, 2697, 2698, 2700, 2696, 2698, 2701, 2702, - 2700, 2703, 2704, 2707, 2705, 2706, 2706, 2703, 2711, 2717, - 2709, 2714, 2714, 2716, 2702, 0, 2704, 2715, 2715, 2721, - 2720, 2716, 2707, 2701, 2705, 2709, 2711, 2718, 2717, 2719, - 2722, 2725, 2721, 2718, 2720, 2719, 2723, 2723, 2726, 2727, - 2729, 2730, 2731, 2727, 2732, 2733, 2730, 2734, 2735, 2722, - 2736, 2725, 2726, 2735, 2738, 2736, 2739, 2732, 2733, 2741, - 2729, 2731, 2740, 2740, 2741, 2742, 2734, 2743, 2743, 2744, - 2747, 2742, 2738, 2745, 2744, 2739, 2746, 2748, 2745, 2749, - 2753, 2746, 2755, 2748, 2749, 2750, 2750, 2752, 2754, 2747, - - 2756, 2752, 2757, 2758, 2759, 2754, 2760, 2760, 2757, 2753, - 2764, 2755, 2762, 2762, 2763, 2764, 2765, 2759, 2766, 2756, - 2767, 2770, 2758, 2763, 2768, 2768, 2763, 2769, 2772, 2773, - 2773, 2774, 2769, 2767, 2770, 2765, 2778, 2766, 2775, 2775, - 2776, 2776, 2777, 2778, 2779, 2780, 2780, 2777, 2781, 2782, - 2774, 2782, 2784, 2781, 2772, 2783, 2783, 2785, 2786, 2784, - 2787, 2788, 2791, 2779, 2785, 2787, 2790, 2790, 2793, 2794, - 2795, 2796, 2800, 2793, 2794, 2797, 2797, 2786, 2799, 2799, - 2788, 2791, 2801, 2802, 2802, 2803, 2803, 2804, 2814, 2795, - 2796, 2800, 2806, 2806, 2804, 2807, 2807, 2808, 2810, 2815, - - 2813, 2801, 0, 2810, 2808, 2813, 0, 2814, 2816, 2816, - 2817, 2817, 0, 0, 0, 0, 0, 0, 2815, 2821, - 2821, 2821, 2821, 2821, 2821, 2821, 2822, 2822, 2822, 2822, - 2822, 2822, 2822, 2823, 2823, 2823, 2823, 2823, 2823, 2823, - 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2825, 2825, 2825, - 2825, 2825, 2825, 2825, 2827, 2827, 0, 2827, 2827, 2827, - 2827, 2828, 2828, 0, 0, 0, 2828, 2828, 2829, 2829, - 0, 0, 2829, 0, 2829, 2830, 0, 0, 0, 0, - 0, 2830, 2831, 2831, 0, 0, 0, 2831, 2831, 2832, - 0, 0, 0, 0, 0, 2832, 2833, 2833, 0, 2833, - - 2833, 2833, 2833, 2834, 2834, 0, 2834, 2834, 2834, 2834, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, - 2820 + 126, 130, 131, 132, 127, 135, 133, 123, 133, 134, + 135, 123, 136, 137, 139, 129, 128, 133, 147, 132, + 130, 134, 138, 131, 136, 141, 141, 138, 139, 133, + 143, 137, 145, 143, 145, 145, 154, 145, 148, 148, + 150, 154, 150, 150, 151, 150, 151, 151, 153, 151, + + 156, 153, 155, 160, 157, 158, 151, 161, 155, 162, + 163, 160, 164, 158, 165, 163, 167, 155, 156, 157, + 158, 166, 191, 165, 162, 168, 161, 166, 166, 170, + 168, 178, 164, 169, 169, 170, 172, 171, 191, 171, + 172, 167, 171, 173, 173, 172, 174, 175, 176, 177, + 172, 178, 175, 176, 179, 182, 172, 172, 180, 171, + 179, 177, 180, 181, 183, 174, 184, 185, 181, 182, + 186, 187, 189, 190, 192, 186, 187, 189, 184, 183, + 192, 184, 196, 179, 194, 185, 188, 188, 193, 193, + 194, 195, 188, 190, 197, 198, 194, 195, 199, 200, + + 197, 198, 196, 201, 188, 200, 188, 202, 201, 203, + 198, 204, 205, 202, 206, 203, 207, 208, 204, 199, + 206, 209, 210, 208, 211, 205, 212, 214, 215, 213, + 210, 212, 216, 218, 217, 220, 207, 211, 213, 217, + 221, 219, 214, 209, 215, 219, 221, 222, 223, 224, + 146, 218, 216, 225, 223, 225, 226, 220, 227, 229, + 231, 228, 230, 226, 227, 222, 222, 228, 230, 224, + 232, 235, 231, 233, 233, 234, 234, 235, 229, 236, + 237, 238, 237, 239, 232, 236, 240, 241, 239, 242, + 243, 244, 245, 256, 246, 235, 244, 242, 240, 237, + + 246, 247, 251, 248, 238, 250, 241, 247, 248, 249, + 243, 250, 252, 253, 249, 245, 254, 251, 256, 255, + 258, 262, 257, 258, 260, 260, 252, 255, 257, 265, + 254, 253, 259, 261, 259, 266, 261, 263, 263, 262, + 264, 264, 269, 267, 268, 265, 267, 270, 268, 271, + 266, 269, 272, 270, 273, 274, 273, 277, 272, 279, + 275, 274, 277, 271, 275, 276, 276, 278, 280, 281, + 282, 283, 283, 278, 284, 285, 286, 284, 287, 279, + 286, 275, 289, 282, 288, 288, 280, 291, 290, 292, + 281, 290, 294, 285, 293, 292, 287, 293, 296, 291, + + 289, 297, 301, 298, 294, 295, 299, 296, 298, 299, + 300, 299, 144, 300, 295, 301, 302, 295, 303, 297, + 303, 303, 295, 295, 295, 295, 306, 299, 302, 304, + 304, 305, 307, 308, 305, 309, 310, 310, 312, 312, + 311, 313, 308, 306, 309, 311, 306, 307, 314, 315, + 316, 317, 318, 314, 319, 320, 313, 321, 322, 326, + 319, 315, 321, 323, 322, 324, 329, 318, 323, 316, + 324, 317, 329, 326, 325, 320, 324, 325, 327, 325, + 328, 327, 330, 331, 142, 335, 331, 330, 334, 328, + 333, 377, 331, 337, 327, 377, 331, 327, 336, 327, + + 335, 340, 342, 343, 331, 332, 332, 337, 332, 334, + 333, 339, 343, 336, 339, 340, 345, 342, 346, 140, + 348, 332, 345, 347, 332, 350, 332, 349, 332, 352, + 339, 341, 344, 341, 341, 348, 349, 344, 344, 346, + 353, 356, 347, 341, 350, 341, 341, 341, 351, 354, + 341, 355, 357, 358, 351, 352, 359, 355, 364, 361, + 353, 355, 360, 354, 356, 363, 363, 360, 365, 362, + 366, 359, 357, 358, 361, 362, 367, 368, 364, 369, + 365, 370, 367, 372, 366, 373, 370, 371, 371, 374, + 371, 376, 375, 376, 378, 369, 379, 379, 378, 380, + + 381, 373, 368, 372, 382, 374, 375, 383, 384, 387, + 385, 376, 386, 378, 387, 381, 391, 389, 380, 385, + 382, 386, 384, 388, 395, 383, 389, 388, 390, 392, + 385, 70, 385, 394, 390, 392, 393, 391, 394, 397, + 393, 396, 396, 398, 395, 399, 400, 400, 398, 401, + 402, 403, 397, 404, 402, 401, 405, 406, 399, 407, + 408, 405, 406, 409, 410, 411, 403, 412, 407, 413, + 412, 416, 408, 413, 404, 414, 416, 411, 415, 415, + 417, 421, 410, 409, 418, 418, 422, 414, 420, 420, + 423, 424, 425, 429, 422, 427, 428, 430, 437, 423, + + 431, 417, 421, 430, 425, 433, 432, 429, 434, 431, + 433, 424, 432, 427, 436, 427, 428, 435, 437, 440, + 436, 438, 434, 439, 438, 435, 441, 442, 435, 439, + 443, 441, 444, 440, 445, 446, 444, 447, 448, 445, + 449, 452, 447, 451, 453, 454, 455, 439, 453, 442, + 446, 443, 458, 456, 448, 460, 452, 456, 64, 449, + 450, 450, 455, 451, 454, 457, 450, 458, 450, 461, + 457, 460, 459, 463, 450, 465, 450, 459, 461, 450, + 450, 462, 464, 466, 468, 464, 450, 462, 471, 463, + 467, 467, 462, 469, 469, 470, 472, 473, 465, 474, + + 471, 475, 478, 466, 476, 477, 475, 521, 479, 468, + 470, 472, 486, 476, 479, 482, 473, 478, 481, 482, + 483, 474, 484, 485, 477, 487, 483, 481, 488, 489, + 521, 486, 490, 491, 484, 492, 490, 492, 485, 487, + 493, 494, 494, 488, 495, 496, 491, 489, 493, 497, + 495, 498, 500, 499, 501, 497, 499, 496, 503, 502, + 505, 503, 504, 498, 502, 515, 500, 506, 515, 501, + 507, 504, 506, 506, 508, 508, 505, 514, 504, 509, + 509, 504, 510, 507, 511, 511, 512, 512, 510, 513, + 517, 516, 518, 522, 519, 513, 516, 519, 514, 520, + + 518, 523, 524, 525, 520, 523, 526, 525, 524, 517, + 527, 528, 522, 529, 531, 527, 530, 532, 533, 529, + 532, 530, 534, 534, 526, 532, 535, 536, 531, 532, + 537, 528, 536, 538, 539, 537, 533, 540, 542, 541, + 544, 542, 543, 540, 535, 544, 543, 538, 541, 539, + 545, 546, 549, 545, 547, 548, 546, 550, 551, 552, + 552, 554, 550, 553, 59, 549, 555, 556, 543, 557, + 547, 558, 553, 548, 563, 564, 556, 558, 551, 559, + 554, 557, 555, 560, 561, 559, 560, 561, 562, 564, + 565, 567, 563, 562, 566, 568, 565, 567, 568, 566, + + 569, 570, 571, 572, 573, 569, 570, 570, 574, 575, + 576, 54, 577, 580, 574, 571, 572, 577, 578, 576, + 579, 578, 581, 573, 573, 580, 579, 581, 575, 582, + 583, 583, 584, 586, 582, 582, 578, 585, 587, 585, + 587, 588, 589, 590, 591, 592, 593, 594, 598, 595, + 593, 596, 586, 597, 600, 604, 594, 584, 599, 588, + 589, 590, 601, 591, 595, 592, 596, 598, 601, 600, + 599, 597, 602, 603, 604, 605, 606, 607, 608, 609, + 606, 610, 612, 612, 611, 603, 602, 613, 614, 616, + 615, 613, 618, 619, 605, 607, 608, 609, 611, 617, + + 610, 615, 620, 616, 617, 622, 621, 614, 618, 623, + 622, 626, 619, 621, 624, 620, 623, 625, 627, 624, + 629, 628, 625, 630, 631, 627, 632, 635, 637, 626, + 628, 632, 630, 634, 629, 633, 631, 634, 633, 636, + 638, 635, 639, 637, 640, 640, 641, 641, 636, 642, + 642, 643, 645, 646, 638, 641, 647, 648, 649, 646, + 643, 648, 650, 639, 651, 653, 652, 654, 655, 656, + 649, 645, 652, 653, 654, 657, 647, 660, 684, 658, + 663, 666, 651, 667, 658, 684, 655, 650, 658, 667, + 666, 658, 660, 668, 656, 657, 669, 663, 658, 672, + + 669, 658, 670, 670, 671, 671, 673, 674, 675, 668, + 672, 676, 681, 678, 679, 688, 680, 676, 678, 682, + 688, 674, 682, 723, 673, 683, 683, 686, 675, 677, + 677, 677, 723, 677, 680, 679, 677, 681, 685, 685, + 690, 677, 686, 687, 687, 690, 689, 677, 677, 689, + 691, 692, 691, 693, 694, 695, 697, 696, 694, 698, + 698, 703, 699, 692, 697, 700, 701, 701, 702, 704, + 706, 706, 693, 703, 720, 695, 696, 699, 705, 700, + 709, 720, 707, 705, 710, 709, 702, 707, 707, 711, + 710, 704, 712, 713, 715, 711, 716, 712, 714, 713, + + 715, 714, 717, 718, 716, 721, 719, 722, 722, 724, + 717, 719, 725, 726, 728, 730, 729, 724, 725, 731, + 730, 718, 733, 728, 721, 729, 732, 733, 731, 732, + 734, 735, 726, 736, 736, 737, 738, 739, 740, 743, + 741, 743, 745, 741, 734, 747, 739, 744, 744, 746, + 737, 741, 748, 749, 746, 738, 735, 750, 751, 752, + 753, 755, 740, 745, 753, 754, 747, 757, 752, 756, + 758, 759, 748, 749, 760, 756, 757, 762, 751, 750, + 755, 761, 758, 754, 763, 764, 764, 761, 760, 763, + 759, 762, 765, 766, 767, 768, 769, 770, 771, 772, + + 773, 774, 766, 775, 771, 776, 773, 778, 781, 775, + 779, 776, 765, 772, 767, 768, 777, 770, 769, 780, + 777, 774, 779, 785, 780, 783, 778, 782, 782, 781, + 779, 783, 784, 786, 787, 784, 788, 789, 789, 790, + 787, 785, 791, 792, 792, 793, 786, 791, 794, 795, + 795, 796, 794, 798, 797, 801, 788, 790, 798, 799, + 793, 802, 804, 805, 807, 807, 808, 811, 809, 53, + 808, 810, 810, 796, 797, 802, 812, 814, 799, 801, + 812, 815, 804, 809, 805, 806, 815, 813, 806, 816, + 806, 814, 811, 817, 806, 818, 806, 820, 817, 817, + + 819, 806, 813, 816, 819, 821, 806, 823, 822, 818, + 821, 824, 820, 822, 825, 832, 826, 827, 828, 833, + 821, 823, 826, 827, 828, 829, 829, 831, 825, 830, + 834, 836, 824, 831, 830, 837, 841, 832, 833, 838, + 837, 841, 839, 836, 840, 840, 843, 844, 834, 835, + 835, 842, 845, 838, 839, 835, 48, 835, 849, 842, + 843, 846, 846, 835, 849, 851, 844, 852, 835, 835, + 847, 845, 853, 850, 847, 835, 850, 854, 853, 855, + 852, 856, 854, 857, 851, 858, 860, 859, 861, 862, + 856, 863, 857, 859, 862, 860, 864, 865, 855, 867, + + 866, 858, 872, 869, 868, 874, 875, 861, 867, 869, + 864, 863, 866, 868, 870, 876, 877, 865, 872, 874, + 870, 878, 879, 880, 881, 888, 875, 882, 880, 881, + 877, 883, 882, 886, 876, 884, 884, 879, 885, 878, + 883, 888, 889, 892, 885, 893, 886, 889, 889, 890, + 890, 891, 894, 890, 891, 895, 896, 892, 897, 898, + 899, 901, 902, 43, 897, 893, 899, 902, 895, 900, + 894, 896, 900, 903, 904, 905, 906, 907, 903, 898, + 905, 906, 901, 910, 915, 909, 911, 912, 914, 907, + 904, 909, 911, 912, 913, 913, 917, 914, 916, 910, + + 918, 916, 915, 919, 920, 921, 922, 920, 924, 923, + 929, 925, 922, 924, 917, 923, 925, 926, 921, 918, + 927, 930, 926, 919, 931, 933, 927, 934, 929, 937, + 931, 932, 932, 935, 933, 936, 935, 938, 936, 939, + 937, 930, 940, 941, 942, 934, 946, 943, 944, 941, + 942, 939, 947, 944, 950, 938, 945, 945, 948, 949, + 951, 940, 943, 949, 952, 946, 947, 953, 955, 951, + 948, 958, 950, 956, 956, 959, 960, 961, 963, 963, + 962, 964, 961, 952, 968, 958, 968, 955, 960, 962, + 959, 965, 953, 966, 970, 967, 971, 965, 969, 966, + + 967, 964, 972, 969, 973, 974, 975, 972, 970, 977, + 971, 976, 982, 975, 979, 979, 980, 981, 984, 973, + 985, 987, 987, 983, 974, 985, 976, 982, 977, 983, + 980, 990, 988, 989, 985, 981, 985, 988, 984, 985, + 989, 991, 992, 993, 991, 990, 994, 995, 996, 998, + 997, 994, 993, 996, 1000, 1000, 1003, 1001, 1002, 1004, + 992, 997, 1001, 1002, 1004, 1005, 995, 1007, 998, 1005, + 1006, 1008, 1009, 1010, 1011, 1013, 1003, 1012, 1014, 1006, + 1015, 1016, 1007, 1018, 1012, 1010, 1008, 1013, 1017, 1011, + 1019, 1009, 1020, 1021, 1017, 1024, 1025, 1014, 1018, 1016, + + 1023, 1015, 1021, 1026, 1025, 1028, 1023, 1030, 1027, 1024, + 1019, 1031, 1020, 1027, 1029, 1032, 14, 1028, 1035, 1029, + 1029, 1033, 1033, 1026, 1036, 1031, 1030, 1039, 1032, 1034, + 1037, 1035, 1039, 1036, 1034, 1040, 1037, 1034, 1034, 1038, + 1038, 1041, 1034, 1047, 1040, 1042, 1043, 1041, 1034, 1048, + 1042, 1043, 1034, 1044, 1044, 1045, 1045, 1046, 1050, 1049, + 1046, 1051, 1046, 1047, 1053, 1052, 1051, 1048, 1049, 1054, + 1055, 1060, 1056, 1060, 1058, 1054, 1055, 1056, 1050, 1052, + 1057, 1064, 1053, 1058, 1057, 1059, 1059, 1061, 1058, 1063, + 1058, 1065, 1058, 1063, 1058, 1066, 1064, 1067, 1061, 1068, + + 1069, 1070, 1067, 1067, 1066, 1069, 1072, 1071, 1073, 1065, + 1074, 1078, 1075, 1080, 1076, 1070, 1071, 1077, 1074, 1076, + 1078, 1068, 1079, 1081, 1083, 1072, 1075, 1073, 1081, 1082, + 1082, 1077, 1084, 1084, 1085, 1089, 1085, 1088, 1080, 1083, + 1079, 1087, 1088, 1091, 1087, 1090, 1090, 1092, 1092, 1093, + 1093, 1094, 1095, 1096, 1089, 1098, 1094, 1097, 1097, 1099, + 1100, 1101, 1099, 1091, 1111, 1111, 1101, 1102, 1103, 1105, + 1103, 1108, 1105, 1095, 1096, 1098, 1102, 1106, 1107, 1108, + 1100, 1109, 1106, 1107, 1110, 1112, 1109, 1113, 1114, 1110, + 1112, 1115, 1120, 1116, 1114, 1118, 1119, 1120, 1115, 1122, + + 1123, 1118, 1119, 1121, 1124, 1113, 1116, 1126, 1122, 1121, + 1125, 1125, 1128, 1129, 1130, 1124, 1131, 1132, 1134, 1123, + 1130, 1135, 1131, 1132, 1134, 1136, 1137, 1126, 1138, 1139, + 1140, 1140, 1128, 1141, 1142, 1135, 1129, 1143, 1137, 1144, + 1146, 1135, 1138, 1149, 1144, 1136, 1147, 1139, 1145, 1145, + 1151, 1147, 1150, 1141, 13, 1143, 1152, 1150, 1150, 1142, + 1154, 1153, 1149, 1146, 1155, 1152, 1156, 1157, 1151, 1153, + 1163, 1158, 1157, 1158, 1154, 1157, 1159, 1160, 1161, 1155, + 1162, 1156, 1161, 1160, 1156, 1164, 1165, 1166, 1167, 1163, + 1159, 1162, 1166, 1168, 1169, 1171, 1179, 1172, 1168, 1173, + + 1174, 1174, 1176, 1175, 1165, 1177, 1167, 1175, 1179, 1171, + 1178, 1164, 1180, 1181, 1169, 1172, 1178, 1173, 1182, 1183, + 1176, 1184, 1186, 1185, 1177, 1187, 1188, 1181, 1185, 1186, + 1187, 1180, 1189, 1182, 1183, 1190, 1190, 1191, 1193, 1192, + 1184, 1189, 1194, 1195, 1188, 1192, 0, 1194, 1196, 1195, + 1197, 1197, 1191, 1202, 1196, 1198, 1198, 1200, 1200, 1193, + 1201, 1203, 1202, 1204, 1201, 1205, 1206, 1207, 1207, 1208, + 1209, 1210, 1211, 1206, 1212, 1215, 1210, 1204, 1209, 1203, + 1205, 1217, 1213, 1216, 1216, 1214, 1211, 1213, 1213, 1208, + 1214, 1214, 1218, 1212, 1219, 1215, 1220, 1221, 1222, 1223, + + 1217, 1224, 1225, 1219, 1226, 1223, 1224, 1227, 1228, 1234, + 1226, 1218, 1229, 1230, 1228, 1220, 1222, 1221, 1229, 1231, + 1232, 1233, 1235, 1234, 1237, 1237, 1227, 1236, 1225, 1239, + 1238, 1241, 1230, 1238, 1240, 1240, 1241, 1243, 1231, 1232, + 1233, 1239, 1236, 1235, 1242, 1244, 1245, 1246, 1242, 1246, + 1243, 1248, 1249, 1246, 1244, 1250, 1248, 1251, 1253, 1245, + 1252, 1252, 1257, 1253, 1254, 1258, 1246, 1249, 1255, 1254, + 1256, 1259, 1255, 1251, 1256, 1250, 1261, 1261, 1260, 1263, + 1265, 1266, 1257, 1258, 1260, 1278, 1266, 1267, 1267, 1268, + 1274, 1259, 1270, 1270, 1275, 1268, 1272, 1263, 1281, 1272, + + 1279, 1265, 1273, 1273, 1277, 1278, 1274, 1277, 1282, 1279, + 1275, 1280, 1280, 1281, 1283, 1284, 1284, 1285, 1286, 1283, + 1287, 1288, 1288, 1289, 1290, 1291, 1292, 1293, 1293, 1282, + 1291, 1295, 1294, 1286, 1297, 1285, 1294, 1289, 1296, 1296, + 1299, 1292, 1290, 1298, 1299, 1287, 1300, 1301, 1303, 1303, + 1304, 1295, 1301, 1305, 1298, 1306, 1297, 1307, 1308, 1309, + 1309, 1310, 1311, 1313, 1312, 1300, 1310, 1305, 1304, 1315, + 1319, 1307, 1313, 1314, 1306, 1306, 1317, 1316, 1314, 1316, + 1318, 1317, 1311, 1308, 1312, 1320, 1318, 1322, 1324, 1315, + 1319, 1320, 1323, 1323, 1325, 1328, 1331, 1327, 1329, 1329, + + 1325, 1322, 1327, 1330, 1330, 1332, 1333, 1324, 1334, 1337, + 1331, 1334, 1335, 1335, 1336, 1340, 1343, 0, 1339, 1328, + 1340, 1333, 1338, 1332, 1339, 1338, 1336, 1341, 1338, 1337, + 1342, 1344, 1345, 1349, 1344, 1342, 1341, 1346, 1345, 1349, + 1338, 1343, 1346, 1347, 1347, 1348, 1348, 1350, 1351, 1352, + 1353, 1354, 1350, 1355, 1356, 1360, 1355, 1357, 1364, 1358, + 1356, 1351, 1359, 1357, 1358, 1361, 1365, 1352, 1359, 1353, + 1361, 1354, 1362, 1362, 1363, 1366, 1364, 1367, 1360, 1363, + 1368, 1369, 1371, 1370, 1372, 1373, 1365, 1374, 1371, 1375, + 1383, 1367, 1378, 1369, 1368, 1366, 1370, 1377, 1377, 1380, + + 1380, 1374, 1379, 1381, 1372, 1373, 1382, 1379, 1384, 1386, + 1375, 1389, 1378, 1385, 1383, 1391, 1387, 1393, 1381, 1388, + 1382, 1470, 1385, 1387, 1386, 1470, 1384, 1389, 1388, 1394, + 1391, 1388, 1394, 1395, 1395, 1391, 1396, 1396, 1397, 1400, + 1398, 1401, 1393, 1398, 1399, 1399, 1402, 1404, 1403, 1405, + 1397, 1402, 1400, 1403, 1406, 1407, 1410, 1412, 1408, 1409, + 1401, 1414, 1410, 1406, 1415, 1405, 1404, 1408, 1409, 1413, + 1408, 1411, 1411, 1416, 1407, 1417, 1419, 1412, 1415, 1414, + 1420, 1422, 1413, 1421, 1421, 1423, 1424, 1417, 1427, 1416, + 1426, 1424, 1425, 1425, 1423, 1428, 1429, 1422, 1420, 1426, + + 0, 1419, 1426, 1430, 1432, 1433, 1427, 1425, 1430, 1430, + 1434, 1433, 1435, 1435, 1429, 1436, 1428, 1437, 1432, 1438, + 1439, 1436, 1437, 1441, 1442, 1438, 1439, 1443, 1434, 1444, + 1449, 1445, 1450, 1443, 1445, 1459, 1447, 1451, 1442, 1452, + 1445, 1453, 1444, 1441, 1447, 1451, 1454, 1455, 1452, 1449, + 1456, 1450, 1457, 1458, 1453, 1459, 1460, 1461, 1457, 1454, + 1462, 1455, 1463, 1464, 1456, 1465, 1458, 1475, 1463, 1466, + 1468, 1468, 1469, 1462, 1460, 1471, 1461, 1472, 1473, 1474, + 1471, 1465, 1472, 1473, 1477, 1464, 1479, 1466, 1474, 1480, + 1475, 1481, 1469, 1478, 1478, 1482, 1482, 1483, 1487, 1477, + + 1484, 1480, 1485, 1486, 1488, 1479, 1489, 1484, 1490, 1491, + 1481, 1483, 1489, 1492, 1485, 1486, 1502, 1487, 1502, 1492, + 1490, 1493, 1493, 1494, 1488, 1497, 1494, 1491, 1495, 1495, + 1497, 1498, 1499, 1500, 1500, 1501, 1503, 1504, 1499, 1503, + 1498, 1505, 1506, 1507, 1508, 1509, 1510, 1501, 1512, 1508, + 1511, 1514, 1515, 1512, 1509, 1513, 1517, 1504, 1510, 1518, + 1506, 1507, 1517, 1505, 1513, 1511, 1519, 1515, 1516, 1516, + 1520, 1514, 1521, 1522, 1523, 1522, 1527, 1513, 1524, 1524, + 1518, 1525, 1525, 1526, 1526, 1519, 1520, 1530, 1523, 1531, + 1523, 1533, 1521, 1528, 1528, 1533, 1527, 1529, 1529, 1532, + + 1532, 1534, 1535, 1537, 1538, 1535, 1539, 1534, 1530, 1537, + 1531, 1540, 1539, 1541, 1542, 1542, 1541, 1543, 1543, 1544, + 1545, 1546, 1538, 1547, 1548, 1544, 1549, 1553, 1557, 1553, + 1548, 1552, 1545, 1545, 1545, 1555, 1540, 1557, 1554, 1545, + 1558, 1546, 1551, 1547, 1559, 1552, 1549, 1551, 1551, 1554, + 1555, 1556, 1560, 1560, 1561, 1562, 1562, 1556, 1563, 1564, + 1558, 1565, 1565, 1566, 1566, 1559, 1567, 1570, 1570, 1574, + 1571, 1575, 1577, 1573, 1576, 1576, 1578, 1575, 1563, 1571, + 1561, 1564, 1573, 1581, 1583, 1579, 1567, 1580, 1582, 1582, + 1574, 1578, 1579, 1577, 1586, 1584, 1580, 1587, 1588, 1586, + + 1589, 1595, 1590, 1587, 1592, 1592, 1591, 1589, 1590, 1581, + 1583, 1584, 1591, 1594, 1593, 1596, 1597, 1598, 1588, 1593, + 1598, 1595, 1594, 1599, 1600, 1601, 1601, 1602, 1597, 1603, + 1604, 1605, 1607, 1602, 1596, 1605, 1608, 1611, 1609, 1612, + 1613, 1599, 1619, 1612, 1654, 1604, 1613, 1654, 1614, 1603, + 1600, 1605, 1607, 1609, 1617, 1608, 1611, 1614, 1615, 1615, + 1616, 1618, 1618, 1619, 1616, 1617, 1620, 1621, 1622, 1623, + 1617, 1624, 1621, 1626, 1636, 1625, 1667, 1624, 1626, 1667, + 1620, 1627, 1627, 1628, 1628, 1630, 0, 1629, 1622, 1623, + 1625, 1629, 1631, 1631, 1632, 1632, 1630, 1633, 1634, 1635, + + 1636, 1630, 1633, 1633, 1634, 1635, 1637, 1638, 1639, 1641, + 1643, 1637, 1642, 1644, 1639, 1646, 1642, 1645, 1647, 1638, + 1648, 1641, 1643, 1645, 1647, 1651, 1652, 1650, 1655, 1655, + 1658, 1652, 1648, 1656, 1656, 1657, 1657, 1646, 1644, 1650, + 1659, 1660, 1668, 1661, 1651, 1662, 1659, 1660, 1661, 1663, + 1658, 1662, 1665, 1671, 1668, 1669, 1669, 1665, 1663, 1672, + 1675, 1673, 1674, 1674, 1679, 1671, 1673, 1676, 1677, 1675, + 1680, 1672, 1676, 1677, 1678, 1678, 1681, 1682, 1683, 1680, + 1684, 1685, 1683, 1686, 1679, 1684, 1689, 1685, 1688, 1688, + 1690, 1691, 1691, 1692, 1681, 1693, 1682, 1686, 1694, 1690, + + 1688, 1695, 1692, 1696, 1689, 1702, 1695, 1693, 1699, 1699, + 1701, 1703, 1706, 1701, 1705, 1708, 1696, 1707, 1710, 1694, + 1710, 1702, 1715, 1707, 1709, 1709, 1706, 1703, 1712, 1705, + 1711, 1711, 1708, 1714, 1716, 1716, 1712, 1717, 1718, 1719, + 1714, 1720, 1715, 1721, 1722, 1723, 1717, 1729, 1724, 1726, + 1727, 1719, 1730, 1720, 1724, 1721, 1728, 1728, 1731, 1718, + 1723, 1731, 1727, 1732, 1733, 1729, 1735, 1724, 1732, 1726, + 1722, 1735, 1730, 1736, 1737, 1736, 1738, 1741, 1739, 1743, + 1746, 1738, 1744, 1749, 1733, 1739, 1741, 1745, 1743, 1745, + 1751, 1748, 1737, 1748, 1744, 1750, 1750, 1749, 1752, 1746, + + 1753, 1754, 1753, 1752, 1755, 1756, 1754, 1757, 1758, 1755, + 1759, 1760, 1761, 1763, 1758, 1759, 1751, 1764, 1765, 1765, + 1761, 1766, 1766, 1756, 1760, 1767, 1768, 1757, 1769, 1772, + 1770, 1764, 1763, 0, 1769, 1770, 1771, 1772, 1771, 1774, + 1767, 1773, 1773, 1775, 1775, 1772, 1768, 1776, 1776, 1777, + 1778, 1774, 1779, 1780, 1779, 1781, 1782, 1783, 1777, 1778, + 1781, 1781, 1778, 1785, 1789, 1782, 1786, 1787, 1790, 1783, + 1794, 1786, 1787, 1792, 1780, 1785, 1793, 1789, 1791, 1791, + 1798, 1795, 1796, 1804, 1799, 1800, 1794, 1807, 1790, 1804, + 1800, 1792, 1798, 1801, 1793, 1795, 1799, 1796, 1801, 1806, + + 1808, 1809, 1804, 1810, 1811, 1806, 1812, 1812, 1813, 1818, + 1807, 1814, 1814, 1811, 1815, 1808, 1816, 1813, 1817, 1809, + 1816, 1819, 1818, 1817, 1820, 1821, 1819, 1819, 1810, 1822, + 1820, 1821, 1822, 1815, 1823, 1824, 1827, 1827, 1828, 1828, + 1829, 0, 1823, 1830, 1830, 1831, 1831, 1832, 1833, 1829, + 1834, 1842, 1835, 1828, 1841, 1824, 1834, 1835, 1841, 1832, + 1836, 1836, 1837, 1837, 1828, 1838, 1833, 1839, 1843, 1845, + 1838, 1842, 1843, 1839, 1846, 1847, 1848, 1849, 1850, 1846, + 1854, 1851, 1849, 1852, 1852, 1853, 1856, 1855, 1857, 1853, + 1858, 1848, 1855, 1860, 1845, 1854, 1850, 1851, 1847, 1859, + + 1857, 1861, 1862, 1862, 1859, 1864, 1860, 1865, 1866, 1858, + 1867, 1868, 1856, 1864, 0, 1869, 1870, 1871, 1872, 1861, + 1893, 1874, 1875, 1875, 1878, 1876, 1865, 1866, 1876, 1871, + 1877, 1879, 1893, 1867, 1869, 1868, 1874, 1870, 1878, 1872, + 1880, 1880, 1883, 1877, 1879, 1881, 1881, 1882, 1882, 1884, + 1885, 1885, 1886, 1887, 1887, 1888, 1891, 1883, 1890, 1892, + 1888, 1886, 1884, 1890, 1886, 1894, 1894, 1895, 1895, 1896, + 1897, 1897, 1898, 1899, 1899, 1903, 1891, 1900, 1904, 1892, + 1901, 1901, 1902, 1902, 1905, 1906, 1908, 1904, 1896, 1903, + 1898, 1908, 1900, 1909, 1909, 1910, 1911, 1911, 1905, 1912, + + 1913, 1917, 1914, 1918, 1906, 1914, 1913, 1915, 1915, 1916, + 1916, 1919, 1920, 1920, 1910, 1922, 1923, 1912, 1918, 1924, + 1917, 1925, 1927, 1915, 0, 1925, 1926, 1926, 1928, 1929, + 1919, 1931, 1931, 1932, 1924, 1922, 1934, 1935, 1933, 1923, + 1937, 1927, 1939, 1928, 1929, 1933, 1936, 1936, 1941, 1937, + 1934, 1942, 1938, 1932, 1938, 1944, 1942, 1945, 1946, 1943, + 1941, 1947, 1939, 1935, 1943, 1952, 1947, 1949, 1950, 1951, + 1945, 1952, 1949, 1950, 1953, 1954, 1956, 1955, 1957, 1946, + 1944, 1954, 1955, 1958, 1951, 1959, 1962, 1960, 1961, 1967, + 0, 1957, 1958, 1963, 1959, 1953, 1960, 1961, 1964, 1963, + + 1962, 1956, 1965, 1969, 1964, 1971, 1965, 1970, 1970, 1967, + 1973, 1971, 1969, 1972, 1972, 1975, 1979, 1976, 1977, 1977, + 1978, 1982, 1972, 1983, 1981, 1979, 1986, 1984, 1988, 1986, + 1973, 1975, 1973, 1976, 1989, 1978, 1981, 1982, 1983, 1984, + 1987, 1990, 1990, 1991, 1991, 1987, 1989, 1995, 1988, 1993, + 1993, 1994, 1995, 1996, 1994, 1997, 1998, 1998, 1999, 1996, + 2002, 1997, 2000, 2000, 2001, 2003, 2004, 2004, 2007, 2006, + 2009, 2007, 1999, 2006, 2002, 2009, 2001, 2008, 2008, 2010, + 2011, 2012, 2013, 2013, 2003, 2012, 2014, 2016, 2010, 2017, + 2018, 2019, 2016, 2020, 2021, 2025, 2022, 2020, 2023, 2014, + + 2011, 2022, 2024, 2027, 2023, 2019, 2028, 2030, 2024, 2017, + 2018, 2028, 2029, 2025, 2021, 2030, 2034, 2037, 2029, 2027, + 2031, 0, 2031, 2035, 2035, 2036, 2038, 2038, 2036, 2040, + 2034, 2041, 2042, 2040, 2043, 2043, 2044, 2041, 2047, 2047, + 2049, 2051, 2054, 2037, 2042, 2044, 2055, 2054, 2056, 2057, + 2058, 2058, 2064, 2056, 2057, 2051, 2060, 2060, 2049, 2062, + 2063, 2063, 2065, 2068, 2066, 2062, 2069, 2072, 2064, 2066, + 2070, 2070, 2055, 2073, 2074, 2075, 2072, 2078, 2069, 2073, + 2077, 2077, 2068, 2079, 2065, 2081, 2081, 2082, 2082, 2083, + 2075, 2086, 2074, 2084, 2083, 2085, 2078, 2085, 2084, 2087, + + 2088, 2079, 2089, 2090, 2090, 2086, 2094, 2089, 2091, 2091, + 2092, 2092, 2095, 2087, 2093, 2093, 2096, 2096, 2094, 2098, + 2088, 2097, 2097, 2099, 2100, 2101, 2102, 2102, 2103, 2103, + 2095, 2098, 2104, 2104, 2105, 2099, 2106, 2107, 2108, 2110, + 2109, 2101, 2111, 2106, 2100, 2109, 2105, 2112, 2112, 2107, + 2114, 2113, 2115, 2116, 2117, 2118, 2119, 2119, 2108, 2110, + 2113, 2120, 2111, 2124, 2121, 2122, 2116, 2125, 2126, 2118, + 2120, 2127, 2115, 2128, 2127, 0, 2114, 2129, 2117, 2121, + 2122, 2124, 2129, 2130, 2131, 2131, 2138, 2128, 2130, 2125, + 2139, 2126, 2132, 2132, 2133, 2133, 2135, 2135, 2137, 2137, + + 2140, 2139, 2142, 2143, 2138, 2144, 2145, 2146, 2147, 2149, + 2149, 2148, 2151, 2151, 2152, 2153, 2146, 2154, 2154, 2140, + 2158, 2143, 2142, 2156, 2153, 2159, 2145, 2144, 2147, 2148, + 2157, 2157, 2156, 2160, 2161, 2162, 2152, 2163, 2158, 2165, + 2160, 2164, 2168, 2159, 2166, 2166, 2167, 2167, 2168, 2161, + 2169, 2170, 2171, 2162, 2172, 2163, 2173, 2164, 2165, 2172, + 2174, 2176, 2175, 2176, 2177, 2177, 2170, 2175, 2169, 2181, + 2178, 2171, 2178, 2179, 2179, 2183, 2173, 2184, 2185, 2187, + 2174, 2186, 2188, 2191, 2183, 2194, 2186, 2192, 2181, 2195, + 2192, 2193, 2193, 2196, 2196, 2199, 2184, 2204, 2185, 2187, + + 2194, 2188, 2197, 2191, 2200, 2202, 2197, 2195, 2200, 2205, + 2199, 2201, 2201, 2206, 2206, 2208, 2210, 2204, 2202, 2209, + 2209, 2211, 2211, 2212, 2213, 2214, 2214, 2208, 2212, 2205, + 2219, 2219, 2220, 2221, 2222, 2210, 2213, 2225, 2225, 2223, + 2224, 2226, 2234, 2231, 2233, 2230, 2221, 2222, 2223, 2224, + 2230, 2235, 2233, 2232, 2220, 2236, 2226, 2231, 2232, 2238, + 2235, 2234, 2239, 2236, 2240, 2241, 2246, 2239, 2244, 2240, + 2242, 2242, 2243, 2243, 2238, 2244, 2245, 2247, 2249, 2248, + 2241, 2245, 2251, 2249, 2246, 2248, 2250, 2250, 2252, 2253, + 2253, 2254, 2254, 2252, 2257, 2247, 2260, 2251, 2258, 2258, + + 2259, 2260, 2260, 2259, 2261, 2262, 2263, 2257, 2265, 2261, + 2262, 2264, 2263, 2265, 2266, 2264, 2267, 2268, 2270, 2269, + 2279, 2272, 2275, 2266, 2269, 2268, 2272, 2288, 2277, 2273, + 2270, 2267, 2273, 2277, 2275, 2278, 2280, 2281, 2279, 2282, + 2278, 2283, 2283, 2284, 2287, 2289, 2281, 2288, 2282, 2280, + 2290, 2290, 2284, 2291, 2293, 2295, 2292, 2294, 2294, 2299, + 2297, 0, 2300, 2287, 2289, 2292, 2300, 2301, 2301, 2293, + 2302, 2303, 2291, 2310, 2295, 2297, 2302, 2303, 2304, 2299, + 2305, 2305, 2306, 2307, 2304, 2309, 2310, 2312, 2307, 2313, + 2306, 2312, 2314, 2324, 2309, 2316, 2316, 2317, 2317, 2318, + + 2318, 2320, 2320, 2313, 2322, 2322, 2325, 2314, 2327, 2328, + 2328, 2325, 2325, 2324, 2329, 2329, 2330, 2330, 2331, 2332, + 2334, 2331, 2335, 2335, 2336, 2336, 2337, 2337, 2327, 2338, + 2339, 2339, 2332, 2340, 2341, 2342, 2343, 2345, 2334, 2344, + 2344, 2345, 2343, 2349, 2338, 2348, 2340, 2350, 2351, 2342, + 2348, 2348, 2341, 2352, 2353, 2354, 2364, 2355, 2368, 2352, + 2353, 2355, 2356, 2356, 2359, 2361, 2349, 2350, 2351, 2359, + 2366, 2362, 2365, 2361, 2362, 2365, 2368, 2367, 2369, 2370, + 2354, 2364, 2367, 2371, 2371, 2372, 2373, 2366, 2366, 2375, + 2374, 2376, 2376, 2370, 2373, 2374, 2374, 2381, 2369, 2377, + + 2377, 2378, 2378, 2383, 2372, 2379, 2379, 2382, 2375, 2380, + 2380, 2384, 2382, 2381, 2386, 2385, 2387, 2389, 2389, 2390, + 2391, 2394, 2390, 2383, 2385, 2393, 2393, 2396, 2394, 2395, + 2395, 2398, 2396, 2399, 2386, 2400, 2387, 2384, 2391, 2402, + 2398, 2405, 2399, 2404, 2400, 2403, 2403, 2404, 2406, 2407, + 2405, 2408, 2409, 2415, 2407, 2407, 2417, 2402, 2414, 2414, + 2418, 2409, 2421, 2406, 2408, 2417, 2422, 2425, 2423, 2427, + 2442, 2415, 2418, 2429, 0, 2422, 2430, 2432, 2429, 2425, + 2434, 2430, 2431, 2431, 2441, 2434, 2432, 2421, 2423, 2442, + 2427, 2435, 2435, 2437, 2437, 2435, 2438, 2438, 2439, 2439, + + 2440, 2443, 2445, 2449, 2441, 2446, 2443, 2447, 2445, 2440, + 2446, 2450, 2447, 2448, 2448, 2451, 2452, 2453, 2454, 2457, + 2451, 2449, 2458, 2453, 2455, 2455, 2459, 2461, 2461, 2463, + 2471, 2464, 2450, 2467, 2452, 2465, 2466, 2458, 2457, 2465, + 2468, 2473, 2463, 2454, 2464, 2466, 2459, 2469, 2470, 2467, + 2472, 2472, 2478, 2470, 2481, 2469, 2471, 2475, 2475, 2468, + 2473, 2476, 2476, 2480, 2480, 2482, 2483, 2484, 2486, 2486, + 2481, 2487, 2484, 2478, 2488, 2489, 2491, 2491, 2492, 2494, + 2495, 2482, 2483, 2498, 2494, 2496, 2496, 2497, 2497, 2499, + 2499, 2487, 2492, 2501, 2489, 2500, 2503, 2488, 2504, 2502, + + 2505, 2513, 2495, 2498, 2500, 2502, 2506, 2506, 2507, 2499, + 2504, 2507, 2512, 2501, 2518, 2503, 2508, 2508, 2522, 2514, + 2505, 2513, 2515, 2515, 2512, 2514, 2516, 2517, 2523, 2516, + 2520, 2521, 2518, 2517, 2523, 2520, 2521, 2522, 2524, 2525, + 2525, 2527, 2527, 2528, 2529, 2531, 2531, 2532, 2532, 2533, + 2534, 2546, 2535, 2529, 2533, 2524, 2524, 2535, 2536, 2536, + 2537, 2537, 2528, 2539, 2534, 2538, 2538, 2544, 2539, 2541, + 2541, 2547, 2548, 2546, 2549, 2549, 2551, 2551, 2552, 2553, + 2554, 2555, 2555, 2556, 2563, 2557, 2544, 2560, 2560, 2554, + 2557, 2564, 2552, 2547, 2548, 2562, 2562, 2564, 2563, 2553, + + 2565, 2566, 2556, 2567, 2567, 2568, 2570, 2571, 2572, 2566, + 2568, 2573, 2565, 2572, 2574, 2577, 2576, 2578, 2579, 2581, + 2574, 2580, 0, 2573, 2576, 2582, 2570, 2571, 2583, 2593, + 2587, 2584, 2588, 2593, 2577, 2581, 2584, 2578, 2579, 2580, + 2591, 2591, 2582, 2582, 2603, 2588, 2592, 2592, 2603, 2583, + 2587, 2597, 2597, 2599, 2599, 2600, 2600, 2606, 2600, 2601, + 2601, 0, 2601, 2602, 2602, 2607, 2602, 2605, 2605, 2609, + 2610, 2610, 2614, 2613, 2609, 2606, 2614, 2615, 2616, 2607, + 2613, 2618, 2619, 2620, 2620, 2623, 2615, 2621, 2621, 2622, + 2622, 2619, 2624, 2616, 2625, 2628, 2626, 2624, 2627, 2618, + + 2623, 2626, 2626, 2625, 2627, 2630, 2625, 2629, 2631, 2632, + 2633, 2634, 2634, 2631, 2632, 2691, 2635, 2638, 2638, 2691, + 2628, 2635, 2629, 2641, 2641, 2651, 2630, 2642, 2642, 2633, + 2643, 2643, 2644, 2644, 2645, 2645, 2646, 2646, 2647, 2647, + 2649, 2650, 2650, 2653, 2653, 2651, 2654, 2655, 2658, 2649, + 2656, 2657, 2657, 2659, 2659, 2662, 2663, 2664, 2666, 2663, + 2655, 2654, 2656, 2658, 2665, 2665, 2668, 2670, 2669, 2668, + 2671, 2672, 2674, 2662, 2669, 2671, 2666, 2673, 2676, 2685, + 2689, 2670, 2685, 2664, 2687, 2687, 2692, 2690, 2674, 2695, + 2672, 2693, 2699, 2676, 2697, 2673, 2690, 2696, 2698, 2697, + + 2698, 2700, 2700, 2689, 2701, 2693, 2692, 2699, 2696, 2702, + 2704, 2703, 2695, 2705, 2707, 2706, 2708, 2701, 2710, 2711, + 2712, 2712, 2713, 2714, 2714, 2718, 2704, 2719, 2702, 2703, + 2706, 2713, 2710, 2715, 2715, 2707, 2708, 2723, 2705, 2711, + 2716, 2716, 2717, 2717, 2718, 2720, 2721, 2719, 2720, 2722, + 2724, 2721, 2725, 2726, 2722, 2727, 2728, 2728, 2725, 2729, + 2730, 2730, 2723, 2734, 2732, 2724, 2739, 2726, 2737, 2737, + 2738, 2738, 2740, 2743, 2739, 2727, 2741, 2742, 2729, 2732, + 2744, 2734, 2741, 2742, 2745, 2746, 2746, 2743, 2748, 2753, + 2750, 2740, 2751, 2744, 2754, 2755, 2751, 2756, 2757, 2754, + + 2758, 2759, 2760, 2745, 2750, 2762, 2759, 2760, 2748, 2753, + 2756, 2757, 2763, 2765, 2755, 2764, 2764, 2771, 2765, 2758, + 2766, 2767, 2767, 2762, 2768, 2769, 2766, 2770, 2772, 2768, + 2769, 2763, 2770, 2773, 2772, 2777, 2771, 2776, 2773, 2774, + 2774, 2776, 2778, 2779, 2780, 2781, 2782, 2783, 2789, 2778, + 2796, 2781, 2784, 2784, 2777, 2786, 2786, 2787, 2790, 2788, + 2783, 2791, 2779, 2780, 2788, 2782, 2787, 2789, 2793, 2787, + 2792, 2792, 2794, 2793, 2791, 2798, 2796, 2790, 2797, 2797, + 2799, 2799, 2800, 2800, 2801, 2794, 2802, 2803, 2808, 2801, + 2804, 2804, 2805, 2802, 2798, 2808, 2806, 2805, 2806, 2807, + + 2807, 2809, 2810, 2812, 2811, 2815, 2803, 2817, 2809, 2811, + 2814, 2814, 2817, 2818, 2819, 2820, 2821, 2821, 2818, 2823, + 2823, 2810, 2812, 2824, 2815, 2825, 2826, 2826, 2827, 2827, + 2828, 2830, 2830, 2819, 2820, 2831, 2831, 2828, 2832, 2838, + 2839, 2834, 2824, 2837, 2825, 2832, 2834, 0, 2837, 2840, + 2840, 2841, 2841, 0, 0, 0, 0, 0, 2838, 2839, + 2845, 2845, 2845, 2845, 2845, 2845, 2845, 2846, 2846, 2846, + 2846, 2846, 2846, 2846, 2847, 2847, 2847, 2847, 2847, 2847, + 2847, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2849, 2849, + 2849, 2849, 2849, 2849, 2849, 2851, 2851, 0, 2851, 2851, + + 2851, 2851, 2852, 2852, 0, 0, 0, 2852, 2852, 2853, + 2853, 0, 0, 2853, 0, 2853, 2854, 0, 0, 0, + 0, 0, 2854, 2855, 2855, 0, 0, 0, 2855, 2855, + 2856, 0, 0, 0, 0, 0, 2856, 2857, 2857, 0, + 2857, 2857, 2857, 2857, 2858, 2858, 0, 2858, 2858, 2858, + 2858, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, + 2844, 2844 + } ; static yy_state_type yy_last_accepting_state; @@ -2701,7 +2727,7 @@ static void config_start_include(const char* filename) config_include_stack = s; cfg_parser->filename = nm; cfg_parser->line = 1; - yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE)); + yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE)); } static void config_start_include_glob(const char* filename) @@ -2772,12 +2798,11 @@ static void config_end_include(void) #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \ yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \ } #endif -#line 2779 "" #define YY_NO_INPUT 1 #line 186 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -2786,9 +2811,8 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 2788 "" -#line 2790 "" +#line 2814 "" #define INITIAL 0 #define quotedstring 1 @@ -2809,36 +2833,36 @@ static void config_end_include(void) #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals ( void ); +static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy ( void ); +int yylex_destroy (void ); -int yyget_debug ( void ); +int yyget_debug (void ); -void yyset_debug ( int debug_flag ); +void yyset_debug (int debug_flag ); -YY_EXTRA_TYPE yyget_extra ( void ); +YY_EXTRA_TYPE yyget_extra (void ); -void yyset_extra ( YY_EXTRA_TYPE user_defined ); +void yyset_extra (YY_EXTRA_TYPE user_defined ); -FILE *yyget_in ( void ); +FILE *yyget_in (void ); -void yyset_in ( FILE * _in_str ); +void yyset_in (FILE * _in_str ); -FILE *yyget_out ( void ); +FILE *yyget_out (void ); -void yyset_out ( FILE * _out_str ); +void yyset_out (FILE * _out_str ); - int yyget_leng ( void ); + int yyget_leng (void ); -char *yyget_text ( void ); +char *yyget_text (void ); -int yyget_lineno ( void ); +int yyget_lineno (void ); -void yyset_lineno ( int _line_number ); +void yyset_lineno (int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -2846,9 +2870,9 @@ void yyset_lineno ( int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap ( void ); +extern "C" int yywrap (void ); #else -extern int yywrap ( void ); +extern int yywrap (void ); #endif #endif @@ -2857,18 +2881,19 @@ extern int yywrap ( void ); #endif #ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); +static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); +static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT + #ifdef __cplusplus -static int yyinput ( void ); +static int yyinput (void ); #else -static int input ( void ); +static int input (void ); #endif #endif @@ -3001,23 +3026,23 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); + yy_create_buffer(yyin,YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 206 "./util/configlexer.lex" -#line 3012 "" +#line 3037 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { (yy_more_len) = 0; if ( (yy_more_flag) ) { - (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr)); + (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); (yy_more_flag) = 0; } yy_cp = (yy_c_buf_p); @@ -3043,13 +3068,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 >= 2821 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 2845 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 5511 ); + while ( yy_base[yy_current_state] != 5552 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4060,198 +4085,198 @@ YY_RULE_SETUP case 197: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 198: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 199: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 200: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 201: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 202: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 203: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 204: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 205: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 206: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 207: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 208: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 209: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 210: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 211: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 212: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 213: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 214: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 215: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 216: YY_RULE_SETUP -#line 427 "./util/configlexer.lex" +#line 426 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 217: YY_RULE_SETUP -#line 429 "./util/configlexer.lex" +#line 428 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 218: YY_RULE_SETUP -#line 431 "./util/configlexer.lex" +#line 430 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 219: YY_RULE_SETUP -#line 433 "./util/configlexer.lex" +#line 432 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 220: YY_RULE_SETUP -#line 435 "./util/configlexer.lex" +#line 434 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 221: YY_RULE_SETUP -#line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 436 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 222: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 223: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 224: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 225: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 226: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 227: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 228: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 229: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 230: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 231: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 232: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 233: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 234: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 235: YY_RULE_SETUP @@ -4266,180 +4291,185 @@ YY_RULE_SETUP case 237: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 238: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 239: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 240: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 241: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 242: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 243: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 244: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 245: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 246: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 247: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 248: YY_RULE_SETUP -#line 465 "./util/configlexer.lex" +#line 464 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 249: YY_RULE_SETUP -#line 467 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 466 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 250: YY_RULE_SETUP #line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 251: YY_RULE_SETUP #line 469 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 252: YY_RULE_SETUP #line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 253: YY_RULE_SETUP #line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 254: YY_RULE_SETUP #line 472 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 255: YY_RULE_SETUP #line 473 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 256: YY_RULE_SETUP #line 474 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 257: YY_RULE_SETUP #line 475 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 258: YY_RULE_SETUP #line 476 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 259: YY_RULE_SETUP #line 477 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 260: YY_RULE_SETUP #line 478 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 261: YY_RULE_SETUP #line 479 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 262: YY_RULE_SETUP #line 480 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 263: YY_RULE_SETUP #line 481 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 264: YY_RULE_SETUP #line 482 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 265: -/* rule 265 can match eol */ YY_RULE_SETUP #line 483 "./util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 266: +/* rule 266 can match eol */ +YY_RULE_SETUP +#line 484 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 266: +case 267: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" +#line 487 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 487 "./util/configlexer.lex" +#line 488 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 267: +case 268: YY_RULE_SETUP -#line 492 "./util/configlexer.lex" +#line 493 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 268: -/* rule 268 can match eol */ +case 269: +/* rule 269 can match eol */ YY_RULE_SETUP -#line 493 "./util/configlexer.lex" +#line 494 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 269: +case 270: YY_RULE_SETUP -#line 495 "./util/configlexer.lex" +#line 496 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4452,34 +4482,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 270: +case 271: YY_RULE_SETUP -#line 507 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 508 "./util/configlexer.lex" +#line 509 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 271: +case 272: YY_RULE_SETUP -#line 513 "./util/configlexer.lex" +#line 514 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 272: -/* rule 272 can match eol */ +case 273: +/* rule 273 can match eol */ YY_RULE_SETUP -#line 514 "./util/configlexer.lex" +#line 515 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 273: +case 274: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" +#line 517 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4492,38 +4522,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 274: +case 275: YY_RULE_SETUP -#line 528 "./util/configlexer.lex" +#line 529 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 530 "./util/configlexer.lex" +#line 531 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 275: -YY_RULE_SETUP -#line 534 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 276: -/* rule 276 can match eol */ YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 277: +/* rule 277 can match eol */ YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 278: YY_RULE_SETUP #line 537 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 279: +YY_RULE_SETUP +#line 538 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4531,27 +4561,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 542 "./util/configlexer.lex" +#line 543 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 279: +case 280: YY_RULE_SETUP -#line 546 "./util/configlexer.lex" +#line 547 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 280: -/* rule 280 can match eol */ +case 281: +/* rule 281 can match eol */ YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 281: +case 282: YY_RULE_SETUP -#line 549 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4561,7 +4591,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 555 "./util/configlexer.lex" +#line 556 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4573,33 +4603,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 282: +case 283: YY_RULE_SETUP -#line 566 "./util/configlexer.lex" +#line 567 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 283: +case 284: YY_RULE_SETUP -#line 570 "./util/configlexer.lex" +#line 571 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 284: +case 285: YY_RULE_SETUP -#line 574 "./util/configlexer.lex" +#line 575 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 285: +case 286: YY_RULE_SETUP -#line 578 "./util/configlexer.lex" +#line 579 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4601 "" +#line 4631 "" case YY_END_OF_BUFFER: { @@ -4675,7 +4705,7 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -4742,7 +4772,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - int number_to_move, i; + yy_size_t number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -4771,7 +4801,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -4807,8 +4837,7 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); + yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -4840,7 +4869,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); + yyrestart(yyin ); } else @@ -4854,15 +4883,12 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( - (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - /* "- 2" to take care of EOB's */ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -4894,10 +4920,10 @@ 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 >= 2821 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 2845 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; } return yy_current_state; @@ -4922,11 +4948,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 >= 2821 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 2845 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2820); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 2844); return yy_is_jam ? 0 : yy_current_state; } @@ -4959,7 +4985,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -4976,13 +5002,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart( yyin ); + yyrestart(yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -5020,11 +5046,11 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); + yy_create_buffer(yyin,YY_BUF_SIZE ); } - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -5052,7 +5078,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -5080,7 +5106,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -5089,13 +5115,13 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); + b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer( b, file ); + yy_init_buffer(b,file ); return b; } @@ -5114,9 +5140,9 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree( (void *) b->yy_ch_buf ); + yyfree((void *) b->yy_ch_buf ); - yyfree( (void *) b ); + yyfree((void *) b ); } /* Initializes or reinitializes a buffer. @@ -5128,7 +5154,7 @@ static void yy_load_buffer_state (void) { int oerrno = errno; - yy_flush_buffer( b ); + yy_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -5171,7 +5197,7 @@ static void yy_load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -5202,7 +5228,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -5221,7 +5247,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -5231,7 +5257,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -5245,9 +5271,9 @@ static void yyensure_buffer_stack (void) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -5276,7 +5302,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -5288,7 +5314,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); @@ -5302,7 +5328,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer( b ); + yy_switch_to_buffer(b ); return b; } @@ -5315,10 +5341,10 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (const char * yystr ) +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { - return yy_scan_bytes( yystr, (int) strlen(yystr) ); + return yy_scan_bytes(yystr,(int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -5328,16 +5354,16 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc( n ); + n = (yy_size_t) _yybytes_len + 2; + buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -5346,7 +5372,7 @@ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer( buf, n ); + b = yy_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -5362,9 +5388,9 @@ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) #define YY_EXIT_FAILURE 2 #endif -static void yynoreturn yy_fatal_error (const char* msg ) +static void yynoreturn yy_fatal_error (yyconst char* msg ) { - fprintf( stderr, "%s\n", msg ); + (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -5375,7 +5401,7 @@ static void yynoreturn yy_fatal_error (const char* msg ) do \ { \ /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ + yy_size_t yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -5392,7 +5418,7 @@ static void yynoreturn yy_fatal_error (const char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -5499,7 +5525,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -5520,7 +5546,7 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n ) +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { int i; @@ -5530,7 +5556,7 @@ static void yy_flex_strncpy (char* s1, const char * s2, int n ) #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s ) +static int yy_flex_strlen (yyconst char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -5565,6 +5591,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 578 "./util/configlexer.lex" +#line 579 "./util/configlexer.lex" + diff --git a/util/configlexer.lex b/util/configlexer.lex index 2f0c7376c..2f3bbd368 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -404,6 +404,7 @@ python{COLON} { YDVAR(0, VAR_PYTHON) } domain-insecure{COLON} { YDVAR(1, VAR_DOMAIN_INSECURE) } minimal-responses{COLON} { YDVAR(1, VAR_MINIMAL_RESPONSES) } rrset-roundrobin{COLON} { YDVAR(1, VAR_RRSET_ROUNDROBIN) } +unknown-server-time-limit{COLON} { YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } max-udp-size{COLON} { YDVAR(1, VAR_MAX_UDP_SIZE) } dns64-prefix{COLON} { YDVAR(1, VAR_DNS64_PREFIX) } dns64-synthall{COLON} { YDVAR(1, VAR_DNS64_SYNTHALL) } diff --git a/util/configparser.c b/util/configparser.c index b2d3a72dd..9b2052434 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -383,7 +383,8 @@ extern int yydebug; VAR_FORWARD_NO_CACHE = 512, VAR_STUB_NO_CACHE = 513, VAR_LOG_SERVFAIL = 514, - VAR_DENY_ANY = 515 + VAR_DENY_ANY = 515, + VAR_UNKNOWN_SERVER_TIME_LIMIT = 516 }; #endif /* Tokens. */ @@ -645,6 +646,7 @@ extern int yydebug; #define VAR_STUB_NO_CACHE 513 #define VAR_LOG_SERVFAIL 514 #define VAR_DENY_ANY 515 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 516 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -655,7 +657,7 @@ union YYSTYPE char* str; -#line 659 "util/configparser.c" /* yacc.c:355 */ +#line 661 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -672,7 +674,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 676 "util/configparser.c" /* yacc.c:358 */ +#line 678 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -914,21 +916,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 524 +#define YYLAST 526 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 261 +#define YYNTOKENS 262 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 280 +#define YYNNTS 281 /* YYNRULES -- Number of rules. */ -#define YYNRULES 537 +#define YYNRULES 539 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 805 +#define YYNSTATES 808 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 515 +#define YYMAXUTOK 516 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -988,67 +990,67 @@ static const yytype_uint16 yytranslate[] = 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, - 255, 256, 257, 258, 259, 260 + 255, 256, 257, 258, 259, 260, 261 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 169, 169, 169, 170, 170, 171, 171, 172, 172, - 172, 173, 173, 174, 178, 183, 184, 185, 185, 185, - 186, 186, 187, 187, 188, 188, 189, 189, 189, 190, - 190, 191, 191, 191, 192, 192, 192, 193, 193, 194, - 194, 195, 195, 196, 196, 197, 197, 198, 198, 199, - 199, 200, 200, 201, 201, 201, 202, 202, 202, 203, - 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, - 208, 208, 208, 209, 209, 210, 210, 211, 211, 211, - 212, 212, 213, 213, 214, 214, 215, 215, 215, 216, - 216, 217, 217, 218, 218, 219, 219, 220, 220, 221, - 221, 221, 222, 222, 223, 223, 223, 224, 224, 224, - 225, 225, 225, 226, 226, 226, 226, 227, 228, 228, - 228, 229, 229, 229, 230, 230, 231, 231, 232, 232, - 232, 233, 233, 234, 234, 234, 235, 235, 236, 236, - 237, 238, 238, 239, 239, 240, 240, 241, 242, 242, - 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, - 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, - 252, 253, 253, 253, 254, 254, 254, 255, 255, 255, - 256, 256, 257, 258, 258, 259, 259, 260, 260, 261, - 261, 262, 262, 262, 263, 263, 263, 264, 264, 264, - 266, 278, 279, 280, 280, 280, 280, 280, 281, 281, - 283, 295, 296, 297, 297, 297, 297, 298, 298, 300, - 314, 315, 316, 316, 316, 316, 317, 317, 317, 319, - 335, 336, 337, 337, 337, 337, 338, 338, 338, 339, - 341, 350, 359, 370, 379, 388, 397, 408, 417, 428, - 441, 456, 467, 484, 501, 518, 535, 550, 565, 578, - 593, 602, 611, 620, 629, 638, 647, 656, 665, 674, - 683, 692, 701, 710, 723, 732, 745, 754, 763, 772, - 779, 786, 795, 802, 811, 819, 828, 837, 851, 860, - 869, 878, 887, 896, 903, 910, 936, 944, 951, 958, - 965, 972, 980, 988, 996, 1003, 1014, 1025, 1032, 1041, - 1050, 1059, 1066, 1073, 1081, 1089, 1099, 1109, 1119, 1132, - 1143, 1151, 1164, 1173, 1182, 1191, 1201, 1211, 1219, 1232, - 1241, 1249, 1258, 1266, 1279, 1288, 1295, 1305, 1315, 1325, - 1335, 1345, 1355, 1365, 1375, 1382, 1389, 1396, 1405, 1414, - 1423, 1432, 1439, 1449, 1467, 1474, 1492, 1505, 1518, 1527, - 1536, 1545, 1554, 1564, 1574, 1585, 1594, 1603, 1612, 1621, - 1634, 1647, 1656, 1663, 1672, 1681, 1690, 1699, 1707, 1720, - 1728, 1757, 1764, 1779, 1789, 1799, 1806, 1813, 1822, 1830, - 1844, 1863, 1882, 1894, 1906, 1918, 1929, 1948, 1958, 1967, - 1975, 1983, 1996, 2009, 2022, 2035, 2044, 2053, 2059, 2068, - 2077, 2087, 2097, 2110, 2123, 2134, 2147, 2158, 2171, 2181, - 2188, 2195, 2204, 2213, 2223, 2233, 2243, 2250, 2257, 2266, - 2275, 2285, 2295, 2302, 2309, 2316, 2324, 2334, 2344, 2354, - 2364, 2394, 2404, 2412, 2421, 2436, 2445, 2450, 2451, 2452, - 2452, 2452, 2453, 2453, 2453, 2454, 2454, 2456, 2466, 2475, - 2482, 2489, 2496, 2503, 2510, 2517, 2522, 2523, 2524, 2524, - 2525, 2525, 2526, 2526, 2527, 2528, 2529, 2530, 2531, 2532, - 2534, 2542, 2549, 2557, 2565, 2572, 2579, 2588, 2597, 2606, - 2615, 2624, 2633, 2638, 2639, 2640, 2642, 2648, 2658, 2665, - 2674, 2682, 2688, 2689, 2691, 2691, 2691, 2692, 2692, 2693, - 2694, 2695, 2696, 2697, 2699, 2709, 2719, 2726, 2735, 2742, - 2751, 2759, 2772, 2780, 2793, 2798, 2799, 2800, 2800, 2801, - 2801, 2801, 2803, 2817, 2832, 2844, 2859, 2872 + 0, 170, 170, 170, 171, 171, 172, 172, 173, 173, + 173, 174, 174, 175, 179, 184, 185, 186, 186, 186, + 187, 187, 188, 188, 189, 189, 190, 190, 190, 191, + 191, 192, 192, 192, 193, 193, 193, 194, 194, 195, + 195, 196, 196, 197, 197, 198, 198, 199, 199, 200, + 200, 201, 201, 202, 202, 202, 203, 203, 203, 204, + 204, 204, 205, 205, 206, 206, 207, 207, 208, 208, + 209, 209, 209, 210, 210, 211, 211, 212, 212, 212, + 213, 213, 214, 214, 215, 215, 216, 216, 216, 217, + 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, + 222, 222, 223, 223, 224, 224, 224, 225, 225, 225, + 226, 226, 226, 227, 227, 227, 227, 228, 229, 229, + 229, 230, 230, 230, 231, 231, 232, 232, 233, 233, + 233, 234, 234, 235, 235, 235, 236, 236, 237, 237, + 238, 239, 239, 240, 240, 241, 241, 242, 243, 243, + 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, + 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, + 253, 254, 254, 254, 255, 255, 255, 256, 256, 256, + 257, 257, 258, 259, 259, 260, 260, 261, 261, 262, + 262, 263, 263, 263, 264, 264, 264, 265, 265, 265, + 266, 268, 280, 281, 282, 282, 282, 282, 282, 283, + 283, 285, 297, 298, 299, 299, 299, 299, 300, 300, + 302, 316, 317, 318, 318, 318, 318, 319, 319, 319, + 321, 337, 338, 339, 339, 339, 339, 340, 340, 340, + 341, 343, 352, 361, 372, 381, 390, 399, 410, 419, + 430, 443, 458, 469, 486, 503, 520, 537, 552, 567, + 580, 595, 604, 613, 622, 631, 640, 649, 658, 667, + 676, 685, 694, 703, 712, 725, 734, 747, 756, 765, + 774, 781, 788, 797, 804, 813, 821, 830, 839, 853, + 862, 871, 880, 889, 898, 905, 912, 938, 946, 953, + 960, 967, 974, 982, 990, 998, 1005, 1016, 1027, 1034, + 1043, 1052, 1061, 1068, 1075, 1083, 1091, 1101, 1111, 1121, + 1134, 1145, 1153, 1166, 1175, 1184, 1193, 1203, 1213, 1221, + 1234, 1243, 1251, 1260, 1268, 1281, 1290, 1297, 1307, 1317, + 1327, 1337, 1347, 1357, 1367, 1377, 1384, 1391, 1398, 1407, + 1416, 1425, 1434, 1441, 1451, 1469, 1476, 1494, 1507, 1520, + 1529, 1538, 1547, 1556, 1566, 1576, 1587, 1596, 1605, 1614, + 1623, 1636, 1649, 1658, 1665, 1674, 1683, 1692, 1701, 1709, + 1722, 1730, 1759, 1766, 1781, 1791, 1801, 1808, 1815, 1822, + 1831, 1839, 1853, 1872, 1891, 1903, 1915, 1927, 1938, 1957, + 1967, 1976, 1984, 1992, 2005, 2018, 2031, 2044, 2053, 2062, + 2068, 2077, 2086, 2096, 2106, 2119, 2132, 2143, 2156, 2167, + 2180, 2190, 2197, 2204, 2213, 2222, 2232, 2242, 2252, 2259, + 2266, 2275, 2284, 2294, 2304, 2311, 2318, 2325, 2333, 2343, + 2353, 2363, 2373, 2403, 2413, 2421, 2430, 2445, 2454, 2459, + 2460, 2461, 2461, 2461, 2462, 2462, 2462, 2463, 2463, 2465, + 2475, 2484, 2491, 2498, 2505, 2512, 2519, 2526, 2531, 2532, + 2533, 2533, 2534, 2534, 2535, 2535, 2536, 2537, 2538, 2539, + 2540, 2541, 2543, 2551, 2558, 2566, 2574, 2581, 2588, 2597, + 2606, 2615, 2624, 2633, 2642, 2647, 2648, 2649, 2651, 2657, + 2667, 2674, 2683, 2691, 2697, 2698, 2700, 2700, 2700, 2701, + 2701, 2702, 2703, 2704, 2705, 2706, 2708, 2718, 2728, 2735, + 2744, 2751, 2760, 2768, 2781, 2789, 2802, 2807, 2808, 2809, + 2809, 2810, 2810, 2810, 2812, 2826, 2841, 2853, 2868, 2881 }; #endif @@ -1152,15 +1154,16 @@ static const char *const yytname[] = "VAR_TLS_ADDITIONAL_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL", "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", - "VAR_STUB_NO_CACHE", "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "$accept", - "toplevelvars", "toplevelvar", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", "viewstart", - "contents_view", "content_view", "authstart", "contents_auth", - "content_auth", "server_num_threads", "server_verbosity", - "server_statistics_interval", "server_statistics_cumulative", - "server_extended_statistics", "server_shm_enable", "server_shm_key", - "server_port", "server_send_client_subnet", "server_client_subnet_zone", + "VAR_STUB_NO_CACHE", "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", + "VAR_UNKNOWN_SERVER_TIME_LIMIT", "$accept", "toplevelvars", + "toplevelvar", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "viewstart", "contents_view", + "content_view", "authstart", "contents_auth", "content_auth", + "server_num_threads", "server_verbosity", "server_statistics_interval", + "server_statistics_cumulative", "server_extended_statistics", + "server_shm_enable", "server_shm_key", "server_port", + "server_send_client_subnet", "server_client_subnet_zone", "server_client_subnet_always_forward", "server_client_subnet_opcode", "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6", @@ -1219,26 +1222,26 @@ static const char *const yytname[] = "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", - "server_dns64_synthall", "server_dns64_ignore_aaaa", "server_define_tag", - "server_local_zone_tag", "server_access_control_tag", - "server_access_control_tag_action", "server_access_control_tag_data", - "server_local_zone_override", "server_access_control_view", - "server_response_ip_tag", "server_ip_ratelimit", "server_ratelimit", - "server_ip_ratelimit_size", "server_ratelimit_size", - "server_ip_ratelimit_slabs", "server_ratelimit_slabs", - "server_ratelimit_for_domain", "server_ratelimit_below_domain", - "server_ip_ratelimit_factor", "server_ratelimit_factor", - "server_low_rtt", "server_fast_server_num", "server_fast_server_permil", - "server_qname_minimisation", "server_qname_minimisation_strict", - "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus", - "server_ipsecmod_hook", "server_ipsecmod_max_ttl", - "server_ipsecmod_whitelist", "server_ipsecmod_strict", "stub_name", - "stub_host", "stub_addr", "stub_first", "stub_no_cache", - "stub_ssl_upstream", "stub_prime", "forward_name", "forward_host", - "forward_addr", "forward_first", "forward_no_cache", - "forward_ssl_upstream", "auth_name", "auth_zonefile", "auth_master", - "auth_url", "auth_allow_notify", "auth_for_downstream", + "server_rrset_roundrobin", "server_unknown_server_time_limit", + "server_max_udp_size", "server_dns64_prefix", "server_dns64_synthall", + "server_dns64_ignore_aaaa", "server_define_tag", "server_local_zone_tag", + "server_access_control_tag", "server_access_control_tag_action", + "server_access_control_tag_data", "server_local_zone_override", + "server_access_control_view", "server_response_ip_tag", + "server_ip_ratelimit", "server_ratelimit", "server_ip_ratelimit_size", + "server_ratelimit_size", "server_ip_ratelimit_slabs", + "server_ratelimit_slabs", "server_ratelimit_for_domain", + "server_ratelimit_below_domain", "server_ip_ratelimit_factor", + "server_ratelimit_factor", "server_low_rtt", "server_fast_server_num", + "server_fast_server_permil", "server_qname_minimisation", + "server_qname_minimisation_strict", "server_ipsecmod_enabled", + "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", + "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", + "server_ipsecmod_strict", "stub_name", "stub_host", "stub_addr", + "stub_first", "stub_no_cache", "stub_ssl_upstream", "stub_prime", + "forward_name", "forward_host", "forward_addr", "forward_first", + "forward_no_cache", "forward_ssl_upstream", "auth_name", "auth_zonefile", + "auth_master", "auth_url", "auth_allow_notify", "auth_for_downstream", "auth_for_upstream", "auth_fallback_enabled", "view_name", "view_local_zone", "view_response_ip", "view_response_ip_data", "view_local_data", "view_local_data_ptr", "view_first", "rcstart", @@ -1300,7 +1303,7 @@ static const yytype_uint16 yytoknum[] = 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515 + 515, 516 }; # endif @@ -1325,21 +1328,21 @@ static const yytype_int16 yypact[] = 78, 79, 80, 84, 88, 89, 114, 115, 116, 118, 129, 130, 132, 133, 134, 136, 141, 182, 196, 197, 199, 200, 201, 203, 204, 205, 206, 214, 215, 218, - 220, 221, 222, 223, 225, 235, 236, 239, 240, 242, - 243, 244, 245, 247, 248, 249, 250, 251, 265, 266, - 267, 268, 269, 270, 272, 278, 279, 280, 281, 282, - 294, 295, 297, 298, 299, 300, 301, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 342, 343, 344, 346, 347, - 348, 349, 351, 352, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, - 422, 423, 424, 425, 426, 427, 428, -154, -154, -154, + 220, 221, 222, 223, 225, 235, 236, 240, 242, 243, + 244, 245, 247, 248, 249, 250, 251, 265, 266, 267, + 268, 269, 270, 272, 278, 279, 280, 281, 282, 294, + 295, 297, 298, 299, 300, 301, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 342, 343, 344, 346, 347, 348, + 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, @@ -1358,47 +1361,47 @@ static const yytype_int16 yypact[] = -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, 429, 430, 431, 432, 433, 434, 435, -154, -154, - -154, -154, -154, -154, -154, -154, 436, 438, 439, 440, - 441, 442, -154, -154, -154, -154, -154, -154, -154, 443, - 444, 446, 447, 448, 449, 450, -154, -154, -154, -154, - -154, -154, -154, -154, 451, 452, 453, 454, 455, 456, - 457, 458, -154, -154, -154, -154, -154, -154, -154, -154, - -154, 459, 460, 461, 462, 463, 464, 465, 466, -154, - -154, -154, -154, -154, -154, -154, -154, -154, 467, 468, + -154, -154, -154, 431, 432, 433, 434, 435, 436, 438, + -154, -154, -154, -154, -154, -154, -154, -154, 439, 440, + 441, 442, 443, 444, -154, -154, -154, -154, -154, -154, + -154, 446, 447, 448, 449, 450, 451, 452, -154, -154, + -154, -154, -154, -154, -154, -154, 453, 454, 455, 456, + 457, 458, 459, 460, -154, -154, -154, -154, -154, -154, + -154, -154, -154, 461, 462, 463, 464, 465, 466, 467, + 468, -154, -154, -154, -154, -154, -154, -154, -154, -154, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, 481, -154, -154, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, 492, + 493, 494, 495, 496, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, 479, -154, -154, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, 490, 491, 492, - 493, 494, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, 497, + 498, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, 495, 496, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, 499, 500, 501, -154, + -154, -154, -154, -154, -154, -154, -154, -154, 502, 503, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, 504, + 505, 506, 507, 508, 509, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, 497, 498, 499, -154, -154, -154, - -154, -154, -154, -154, -154, -154, 500, 501, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, 502, 503, 504, - 505, 506, 507, -154, -154, -154, -154, -154, -154, -154, + 510, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, 511, -154, + -154, 512, 513, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, 508, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, 509, -154, -154, 510, 511, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, 512, 513, 514, -154, -154, -154, - -154, -154, -154, -154, -154 + -154, -154, -154, -154, -154, -154, -154, 514, 515, 516, + -154, -154, -154, -154, -154, -154, -154, -154 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1406,9 +1409,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 14, 200, 210, 446, 492, 465, 219, - 501, 524, 229, 3, 16, 202, 212, 221, 231, 448, - 467, 494, 503, 526, 4, 5, 6, 10, 13, 8, + 2, 0, 1, 14, 201, 211, 448, 494, 467, 220, + 503, 526, 230, 3, 16, 203, 213, 222, 232, 450, + 469, 496, 505, 528, 4, 5, 6, 10, 13, 8, 9, 7, 11, 12, 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, @@ -1427,66 +1430,66 @@ 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, 15, 17, 18, - 80, 83, 92, 177, 178, 19, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 31, 71, 20, 84, - 85, 42, 64, 79, 21, 22, 24, 25, 23, 26, - 27, 28, 29, 30, 115, 189, 116, 118, 119, 120, - 191, 196, 192, 173, 81, 70, 96, 113, 114, 198, - 117, 32, 33, 34, 35, 36, 72, 86, 87, 102, - 58, 68, 59, 181, 182, 97, 52, 53, 180, 54, - 55, 106, 110, 124, 133, 158, 107, 65, 37, 38, - 39, 94, 125, 126, 127, 40, 41, 43, 44, 46, - 47, 45, 131, 48, 49, 50, 56, 75, 111, 89, - 132, 82, 154, 90, 91, 108, 109, 199, 95, 51, - 73, 76, 57, 60, 98, 99, 74, 155, 100, 61, - 62, 63, 190, 112, 168, 169, 170, 171, 179, 101, - 69, 103, 104, 105, 156, 66, 67, 88, 77, 78, - 93, 121, 122, 123, 128, 129, 130, 159, 160, 162, - 164, 165, 163, 166, 174, 134, 135, 138, 139, 136, - 137, 140, 141, 143, 142, 193, 195, 194, 157, 167, - 183, 185, 184, 186, 187, 188, 161, 172, 175, 176, - 197, 0, 0, 0, 0, 0, 0, 0, 201, 203, - 204, 205, 207, 208, 209, 206, 0, 0, 0, 0, - 0, 0, 211, 213, 214, 215, 216, 217, 218, 0, - 0, 0, 0, 0, 0, 0, 220, 222, 223, 226, - 227, 224, 228, 225, 0, 0, 0, 0, 0, 0, - 0, 0, 230, 232, 233, 234, 235, 239, 236, 237, - 238, 0, 0, 0, 0, 0, 0, 0, 0, 447, - 449, 451, 450, 456, 452, 453, 454, 455, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 17, + 18, 80, 83, 92, 177, 178, 19, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 31, 71, 20, + 84, 85, 42, 64, 79, 21, 22, 24, 25, 23, + 26, 27, 28, 29, 30, 115, 189, 116, 118, 119, + 120, 191, 196, 192, 173, 81, 70, 96, 113, 114, + 198, 117, 32, 33, 34, 35, 36, 72, 86, 87, + 102, 58, 68, 59, 181, 182, 97, 52, 53, 180, + 54, 55, 106, 110, 124, 133, 158, 107, 65, 37, + 38, 39, 94, 125, 126, 127, 40, 41, 43, 44, + 46, 47, 45, 131, 48, 49, 50, 56, 75, 111, + 89, 132, 82, 154, 90, 91, 108, 109, 199, 95, + 51, 73, 76, 57, 60, 98, 99, 74, 155, 100, + 61, 62, 63, 190, 112, 168, 169, 170, 171, 179, + 101, 69, 103, 104, 105, 156, 66, 67, 88, 77, + 78, 93, 121, 122, 200, 123, 128, 129, 130, 159, + 160, 162, 164, 165, 163, 166, 174, 134, 135, 138, + 139, 136, 137, 140, 141, 143, 142, 193, 195, 194, + 157, 167, 183, 185, 184, 186, 187, 188, 161, 172, + 175, 176, 197, 0, 0, 0, 0, 0, 0, 0, + 202, 204, 205, 206, 208, 209, 210, 207, 0, 0, + 0, 0, 0, 0, 212, 214, 215, 216, 217, 218, + 219, 0, 0, 0, 0, 0, 0, 0, 221, 223, + 224, 227, 228, 225, 229, 226, 0, 0, 0, 0, + 0, 0, 0, 0, 231, 233, 234, 235, 236, 240, + 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, + 0, 449, 451, 453, 452, 458, 454, 455, 456, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 466, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 0, 493, 495, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 502, 504, 505, 506, - 508, 509, 507, 510, 511, 512, 513, 0, 0, 0, - 0, 0, 525, 527, 528, 529, 530, 531, 241, 240, - 247, 260, 258, 266, 267, 270, 268, 269, 271, 272, - 273, 274, 275, 293, 294, 295, 296, 297, 320, 321, - 322, 327, 328, 263, 329, 330, 333, 331, 332, 335, - 336, 337, 351, 308, 309, 311, 312, 338, 354, 302, - 304, 355, 361, 362, 363, 264, 319, 377, 378, 303, - 372, 287, 259, 298, 352, 358, 339, 0, 0, 381, - 265, 242, 286, 343, 243, 261, 262, 299, 300, 379, - 341, 345, 346, 244, 382, 323, 350, 288, 307, 356, - 357, 360, 371, 301, 375, 373, 374, 313, 318, 347, - 348, 314, 315, 340, 365, 289, 290, 292, 276, 278, - 279, 280, 281, 282, 383, 384, 385, 324, 325, 326, - 334, 386, 387, 388, 0, 0, 0, 342, 316, 497, - 397, 401, 399, 398, 402, 400, 0, 0, 405, 406, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 344, 359, 376, 410, 411, 317, 389, 0, 0, 0, - 0, 0, 0, 366, 367, 368, 369, 370, 498, 310, - 305, 364, 285, 245, 246, 306, 412, 414, 413, 415, - 416, 417, 277, 284, 407, 409, 408, 283, 0, 291, - 349, 418, 419, 420, 424, 423, 421, 422, 425, 426, - 427, 428, 430, 429, 439, 0, 443, 444, 0, 0, - 445, 431, 437, 432, 433, 434, 436, 438, 435, 457, - 459, 458, 461, 462, 463, 464, 460, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 496, - 514, 515, 516, 519, 517, 518, 520, 521, 522, 523, - 532, 533, 534, 535, 536, 353, 380, 396, 499, 500, - 403, 404, 390, 391, 0, 0, 0, 395, 537, 440, - 441, 442, 394, 392, 393 + 0, 0, 468, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 0, 495, 497, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 504, 506, + 507, 508, 510, 511, 509, 512, 513, 514, 515, 0, + 0, 0, 0, 0, 527, 529, 530, 531, 532, 533, + 242, 241, 248, 261, 259, 267, 268, 271, 269, 270, + 272, 273, 274, 275, 276, 294, 295, 296, 297, 298, + 321, 322, 323, 328, 329, 264, 330, 331, 334, 332, + 333, 336, 337, 338, 352, 309, 310, 312, 313, 339, + 355, 303, 305, 356, 362, 363, 364, 265, 320, 378, + 379, 304, 373, 288, 260, 299, 353, 359, 340, 0, + 0, 382, 266, 243, 287, 344, 244, 262, 263, 300, + 301, 380, 342, 346, 347, 245, 383, 324, 351, 289, + 308, 357, 358, 361, 372, 302, 376, 374, 375, 314, + 319, 348, 349, 315, 316, 341, 366, 290, 291, 293, + 277, 279, 280, 281, 282, 283, 384, 385, 387, 325, + 326, 327, 335, 388, 389, 390, 0, 0, 0, 343, + 317, 499, 399, 403, 401, 400, 404, 402, 0, 0, + 407, 408, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 345, 360, 377, 412, 413, 318, 391, 0, + 0, 0, 0, 0, 0, 367, 368, 369, 370, 371, + 500, 311, 306, 365, 286, 246, 247, 307, 414, 416, + 415, 417, 418, 419, 278, 285, 409, 411, 410, 284, + 0, 292, 350, 386, 420, 421, 422, 426, 425, 423, + 424, 427, 428, 429, 430, 432, 431, 441, 0, 445, + 446, 0, 0, 447, 433, 439, 434, 435, 436, 438, + 440, 437, 459, 461, 460, 463, 464, 465, 466, 462, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 498, 516, 517, 518, 521, 519, 520, 522, + 523, 524, 525, 534, 535, 536, 537, 538, 354, 381, + 398, 501, 502, 405, 406, 392, 393, 0, 0, 0, + 397, 539, 442, 443, 444, 396, 394, 395 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1519,40 +1522,42 @@ static const yytype_int16 yypgoto[] = -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, -154 + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 13, 14, 24, 217, 15, 25, 408, 16, - 26, 422, 17, 27, 436, 18, 28, 452, 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, 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, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 409, 410, 411, 412, - 413, 414, 415, 423, 424, 425, 426, 427, 428, 453, - 454, 455, 456, 457, 458, 459, 460, 437, 438, 439, - 440, 441, 442, 443, 19, 29, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 20, 30, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 21, 31, 504, 505, 396, 397, 398, 399, 22, 32, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 23, 33, 532, 533, 534, 535, 536, 537, 400 + -1, 1, 13, 14, 24, 218, 15, 25, 410, 16, + 26, 424, 17, 27, 438, 18, 28, 454, 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, 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, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 411, 412, 413, + 414, 415, 416, 417, 425, 426, 427, 428, 429, 430, + 455, 456, 457, 458, 459, 460, 461, 462, 439, 440, + 441, 442, 443, 444, 445, 19, 29, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 20, 30, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 21, 31, 506, 507, 398, 399, 400, 401, 22, + 32, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 23, 33, 534, 535, 536, 537, 538, 539, + 402 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1563,56 +1568,56 @@ static const yytype_uint16 yytable[] = 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 503, 538, 539, 540, 65, 66, 67, 541, 542, - 543, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 64, 505, 540, 541, 542, 65, 66, 67, 543, 544, + 545, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 444, 527, 528, 529, 530, 531, 544, 545, - 546, 109, 110, 111, 547, 112, 113, 114, 548, 549, + 107, 108, 446, 529, 530, 531, 532, 533, 546, 547, + 548, 109, 110, 111, 549, 112, 113, 114, 550, 551, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 550, 551, 552, 139, 553, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 554, - 555, 416, 556, 557, 558, 401, 559, 402, 403, 417, - 418, 560, 150, 151, 152, 153, 154, 155, 156, 157, + 135, 136, 137, 138, 552, 553, 554, 139, 555, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 556, + 557, 418, 558, 559, 560, 403, 561, 404, 405, 419, + 420, 562, 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, - 429, 188, 561, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 562, 563, 404, 564, - 565, 566, 2, 567, 568, 569, 570, 202, 203, 204, - 205, 206, 207, 3, 571, 572, 430, 431, 573, 208, - 574, 575, 576, 577, 419, 578, 420, 209, 210, 405, - 211, 212, 406, 213, 214, 579, 580, 215, 216, 581, - 582, 432, 583, 584, 585, 586, 4, 587, 588, 589, - 590, 591, 5, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 592, 593, 594, 595, 596, - 597, 445, 598, 446, 447, 448, 449, 450, 599, 600, - 601, 602, 603, 451, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 604, 605, 6, 606, 607, 608, - 609, 610, 433, 434, 461, 462, 463, 464, 465, 466, - 467, 468, 7, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 435, 639, 640, 641, 421, 642, 643, 644, 645, - 407, 646, 647, 8, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 9, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 10, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 11, 729, 730, - 731, 732, 733, 734, 735, 12, 736, 737, 738, 739, - 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, - 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 804 + 431, 188, 563, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 564, 565, 406, 566, + 567, 568, 2, 569, 570, 571, 572, 202, 203, 204, + 205, 206, 207, 3, 573, 574, 432, 433, 575, 208, + 576, 577, 578, 579, 421, 580, 422, 209, 210, 407, + 211, 212, 408, 213, 214, 581, 582, 215, 216, 217, + 583, 434, 584, 585, 586, 587, 4, 588, 589, 590, + 591, 592, 5, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 593, 594, 595, 596, 597, + 598, 447, 599, 448, 449, 450, 451, 452, 600, 601, + 602, 603, 604, 453, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 605, 606, 6, 607, 608, 609, + 610, 611, 435, 436, 463, 464, 465, 466, 467, 468, + 469, 470, 7, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 437, 640, 641, 642, 423, 643, 644, 645, 646, + 409, 647, 648, 8, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 9, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 10, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 11, 730, 731, + 732, 733, 734, 735, 736, 12, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, + 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, + 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, + 801, 802, 803, 804, 805, 806, 807 }; static const yytype_uint16 yycheck[] = @@ -1641,7 +1646,7 @@ static const yytype_uint16 yycheck[] = 10, 10, 0, 10, 10, 10, 10, 229, 230, 231, 232, 233, 234, 11, 10, 10, 79, 80, 10, 241, 10, 10, 10, 10, 136, 10, 138, 249, 250, 137, - 252, 253, 140, 255, 256, 10, 10, 259, 260, 10, + 252, 253, 140, 255, 256, 10, 10, 259, 260, 261, 10, 104, 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, 50, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 10, 10, 10, 10, 10, @@ -1669,17 +1674,17 @@ static const yytype_uint16 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, 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, 262, 0, 11, 44, 50, 94, 110, 151, 202, - 218, 235, 243, 263, 264, 267, 270, 273, 276, 485, - 496, 511, 519, 532, 265, 268, 271, 274, 277, 486, - 497, 512, 520, 533, 12, 13, 14, 15, 16, 17, + 0, 263, 0, 11, 44, 50, 94, 110, 151, 202, + 218, 235, 243, 264, 265, 268, 271, 274, 277, 487, + 498, 513, 521, 534, 266, 269, 272, 275, 278, 488, + 499, 514, 522, 535, 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, 37, 38, 39, 40, 41, 42, 47, 48, 49, 53, 54, @@ -1697,7 +1702,7 @@ static const yytype_uint16 yystos[] = 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 229, 230, 231, 232, 233, 234, 241, 249, - 250, 252, 253, 255, 256, 259, 260, 266, 279, 280, + 250, 252, 253, 255, 256, 259, 260, 261, 267, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, @@ -1715,21 +1720,21 @@ static const yytype_uint16 yystos[] = 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, 515, 516, 517, 518, - 540, 43, 45, 46, 106, 137, 140, 258, 269, 457, - 458, 459, 460, 461, 462, 463, 43, 51, 52, 136, - 138, 257, 272, 464, 465, 466, 467, 468, 469, 43, - 79, 80, 104, 165, 166, 204, 275, 478, 479, 480, - 481, 482, 483, 484, 43, 242, 244, 245, 246, 247, - 248, 254, 278, 470, 471, 472, 473, 474, 475, 476, - 477, 95, 96, 97, 98, 99, 100, 101, 102, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 111, 513, 514, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 236, 237, 238, - 239, 240, 534, 535, 536, 537, 538, 539, 10, 10, + 451, 452, 453, 454, 455, 456, 457, 458, 517, 518, + 519, 520, 542, 43, 45, 46, 106, 137, 140, 258, + 270, 459, 460, 461, 462, 463, 464, 465, 43, 51, + 52, 136, 138, 257, 273, 466, 467, 468, 469, 470, + 471, 43, 79, 80, 104, 165, 166, 204, 276, 480, + 481, 482, 483, 484, 485, 486, 43, 242, 244, 245, + 246, 247, 248, 254, 279, 472, 473, 474, 475, 476, + 477, 478, 479, 95, 96, 97, 98, 99, 100, 101, + 102, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 111, 515, 516, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 236, + 237, 238, 239, 240, 536, 537, 538, 539, 540, 541, 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, @@ -1756,36 +1761,36 @@ 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 261, 262, 262, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 264, 265, 265, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 267, 268, 268, 269, 269, 269, 269, 269, 269, 269, - 270, 271, 271, 272, 272, 272, 272, 272, 272, 273, - 274, 274, 275, 275, 275, 275, 275, 275, 275, 276, - 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, + 0, 262, 263, 263, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 265, 266, 266, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 268, 269, 269, 270, 270, 270, 270, 270, 270, + 270, 271, 272, 272, 273, 273, 273, 273, 273, 273, + 274, 275, 275, 276, 276, 276, 276, 276, 276, 276, + 277, 278, 278, 279, 279, 279, 279, 279, 279, 279, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, @@ -1806,16 +1811,16 @@ static const yytype_uint16 yyr1[] = 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 486, 487, - 487, 487, 487, 487, 487, 487, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 497, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 520, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 533, 534, 534, 534, - 534, 534, 535, 536, 537, 538, 539, 540 + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 488, 489, 489, 489, 489, 489, 489, 489, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 499, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 522, 523, 523, 523, 523, + 523, 523, 523, 523, 523, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 535, 536, + 536, 536, 536, 536, 537, 538, 539, 540, 541, 542 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1841,11 +1846,11 @@ 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, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1856,25 +1861,25 @@ 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, 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, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 4, 4, 4, 3, 3, 2, 2, 2, - 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, + 2, 2, 2, 2, 2, 3, 3, 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, 3, 3, 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, + 2, 2, 3, 3, 3, 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, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 2, 2, 2, 3, - 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 3 + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 2, 2, + 2, 3, 3, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 3 }; @@ -2551,15 +2556,15 @@ yyreduce: switch (yyn) { case 14: -#line 179 "./util/configparser.y" /* yacc.c:1646 */ +#line 180 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2559 "util/configparser.c" /* yacc.c:1646 */ +#line 2564 "util/configparser.c" /* yacc.c:1646 */ break; - case 200: -#line 267 "./util/configparser.y" /* yacc.c:1646 */ + case 201: +#line 269 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2570,11 +2575,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2574 "util/configparser.c" /* yacc.c:1646 */ +#line 2579 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 284 "./util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 286 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2585,11 +2590,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2589 "util/configparser.c" /* yacc.c:1646 */ +#line 2594 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 301 "./util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 303 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2602,11 +2607,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2606 "util/configparser.c" /* yacc.c:1646 */ +#line 2611 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 320 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 322 "./util/configparser.y" /* yacc.c:1646 */ { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2621,11 +2626,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2625 "util/configparser.c" /* yacc.c:1646 */ +#line 2630 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 342 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 344 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2633,11 +2638,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2637 "util/configparser.c" /* yacc.c:1646 */ +#line 2642 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 351 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 353 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2645,11 +2650,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2649 "util/configparser.c" /* yacc.c:1646 */ +#line 2654 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 360 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 362 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2659,11 +2664,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2663 "util/configparser.c" /* yacc.c:1646 */ +#line 2668 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 371 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 373 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2671,11 +2676,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2675 "util/configparser.c" /* yacc.c:1646 */ +#line 2680 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 380 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 382 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2683,11 +2688,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2687 "util/configparser.c" /* yacc.c:1646 */ +#line 2692 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 389 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 391 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2695,11 +2700,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2699 "util/configparser.c" /* yacc.c:1646 */ +#line 2704 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 398 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 400 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2709,11 +2714,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2713 "util/configparser.c" /* yacc.c:1646 */ +#line 2718 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 409 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 411 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2721,11 +2726,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2725 "util/configparser.c" /* yacc.c:1646 */ +#line 2730 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 418 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 420 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2735,11 +2740,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2739 "util/configparser.c" /* yacc.c:1646 */ +#line 2744 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 429 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 431 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2750,11 +2755,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2754 "util/configparser.c" /* yacc.c:1646 */ +#line 2759 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 442 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 444 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2768,11 +2773,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2772 "util/configparser.c" /* yacc.c:1646 */ +#line 2777 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 457 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 459 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2782,11 +2787,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2786 "util/configparser.c" /* yacc.c:1646 */ +#line 2791 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 468 "./util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 470 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2802,11 +2807,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2806 "util/configparser.c" /* yacc.c:1646 */ +#line 2811 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 485 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 487 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2822,11 +2827,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2826 "util/configparser.c" /* yacc.c:1646 */ +#line 2831 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 502 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 504 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2842,11 +2847,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2846 "util/configparser.c" /* yacc.c:1646 */ +#line 2851 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 519 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 521 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2862,11 +2867,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2866 "util/configparser.c" /* yacc.c:1646 */ +#line 2871 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 536 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 538 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -2880,11 +2885,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2884 "util/configparser.c" /* yacc.c:1646 */ +#line 2889 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 551 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 553 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -2898,11 +2903,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2902 "util/configparser.c" /* yacc.c:1646 */ +#line 2907 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 566 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 568 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2914,11 +2919,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2918 "util/configparser.c" /* yacc.c:1646 */ +#line 2923 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 579 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 581 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2932,11 +2937,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2936 "util/configparser.c" /* yacc.c:1646 */ +#line 2941 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 594 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 596 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2944,11 +2949,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2948 "util/configparser.c" /* yacc.c:1646 */ +#line 2953 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 603 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 605 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -2956,11 +2961,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2960 "util/configparser.c" /* yacc.c:1646 */ +#line 2965 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 612 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 614 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -2968,11 +2973,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2972 "util/configparser.c" /* yacc.c:1646 */ +#line 2977 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 621 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 623 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2980,11 +2985,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2984 "util/configparser.c" /* yacc.c:1646 */ +#line 2989 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 630 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 632 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2992,11 +2997,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2996 "util/configparser.c" /* yacc.c:1646 */ +#line 3001 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 639 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 641 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3004,11 +3009,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3008 "util/configparser.c" /* yacc.c:1646 */ +#line 3013 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 648 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 650 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3016,11 +3021,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3020 "util/configparser.c" /* yacc.c:1646 */ +#line 3025 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 657 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 659 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3028,11 +3033,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3032 "util/configparser.c" /* yacc.c:1646 */ +#line 3037 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 666 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 668 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3040,11 +3045,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3044 "util/configparser.c" /* yacc.c:1646 */ +#line 3049 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 675 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 677 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3052,11 +3057,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3056 "util/configparser.c" /* yacc.c:1646 */ +#line 3061 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 684 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 686 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3064,11 +3069,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3068 "util/configparser.c" /* yacc.c:1646 */ +#line 3073 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 693 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 695 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3076,11 +3081,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3080 "util/configparser.c" /* yacc.c:1646 */ +#line 3085 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 702 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 704 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3088,11 +3093,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3092 "util/configparser.c" /* yacc.c:1646 */ +#line 3097 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 711 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 713 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3104,11 +3109,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3108 "util/configparser.c" /* yacc.c:1646 */ +#line 3113 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 724 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 726 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3116,11 +3121,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3120 "util/configparser.c" /* yacc.c:1646 */ +#line 3125 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 733 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 735 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3132,11 +3137,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3136 "util/configparser.c" /* yacc.c:1646 */ +#line 3141 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 746 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 748 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3144,11 +3149,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3148 "util/configparser.c" /* yacc.c:1646 */ +#line 3153 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 755 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 757 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3156,11 +3161,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3160 "util/configparser.c" /* yacc.c:1646 */ +#line 3165 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 764 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 766 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3168,31 +3173,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3172 "util/configparser.c" /* yacc.c:1646 */ +#line 3177 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 773 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 775 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 3182 "util/configparser.c" /* yacc.c:1646 */ +#line 3187 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 780 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 782 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 3192 "util/configparser.c" /* yacc.c:1646 */ +#line 3197 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 787 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 789 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3200,21 +3205,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3204 "util/configparser.c" /* yacc.c:1646 */ +#line 3209 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 796 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 798 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3214 "util/configparser.c" /* yacc.c:1646 */ +#line 3219 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 803 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 805 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3222,22 +3227,22 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3226 "util/configparser.c" /* yacc.c:1646 */ +#line 3231 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 812 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 814 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3237 "util/configparser.c" /* yacc.c:1646 */ +#line 3242 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 820 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 822 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3245,11 +3250,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3249 "util/configparser.c" /* yacc.c:1646 */ +#line 3254 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 829 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 831 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3257,11 +3262,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3261 "util/configparser.c" /* yacc.c:1646 */ +#line 3266 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 838 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 840 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3274,11 +3279,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3278 "util/configparser.c" /* yacc.c:1646 */ +#line 3283 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 852 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 854 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3286,11 +3291,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3290 "util/configparser.c" /* yacc.c:1646 */ +#line 3295 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 861 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 863 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3298,11 +3303,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3302 "util/configparser.c" /* yacc.c:1646 */ +#line 3307 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 870 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 872 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3310,11 +3315,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3314 "util/configparser.c" /* yacc.c:1646 */ +#line 3319 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 879 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 881 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3322,11 +3327,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3326 "util/configparser.c" /* yacc.c:1646 */ +#line 3331 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 888 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 890 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3334,31 +3339,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3338 "util/configparser.c" /* yacc.c:1646 */ +#line 3343 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 897 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 899 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3348 "util/configparser.c" /* yacc.c:1646 */ +#line 3353 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 904 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 906 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3358 "util/configparser.c" /* yacc.c:1646 */ +#line 3363 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 911 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 913 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3383,105 +3388,105 @@ yyreduce: } } } -#line 3387 "util/configparser.c" /* yacc.c:1646 */ +#line 3392 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 937 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 939 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 3398 "util/configparser.c" /* yacc.c:1646 */ +#line 3403 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 945 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 947 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3408 "util/configparser.c" /* yacc.c:1646 */ +#line 3413 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 952 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 954 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3418 "util/configparser.c" /* yacc.c:1646 */ +#line 3423 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 959 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 961 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dlv_anchor_file); cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); } -#line 3428 "util/configparser.c" /* yacc.c:1646 */ +#line 3433 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 966 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 968 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3438 "util/configparser.c" /* yacc.c:1646 */ +#line 3443 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 973 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 975 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3449 "util/configparser.c" /* yacc.c:1646 */ +#line 3454 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 981 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 983 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3460 "util/configparser.c" /* yacc.c:1646 */ +#line 3465 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 989 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 991 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3471 "util/configparser.c" /* yacc.c:1646 */ +#line 3476 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 997 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 999 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3481 "util/configparser.c" /* yacc.c:1646 */ +#line 3486 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1004 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1006 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3491,11 +3496,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3495 "util/configparser.c" /* yacc.c:1646 */ +#line 3500 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1015 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1017 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3505,21 +3510,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3509 "util/configparser.c" /* yacc.c:1646 */ +#line 3514 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1026 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1028 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3519 "util/configparser.c" /* yacc.c:1646 */ +#line 3524 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1033 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1035 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3527,11 +3532,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3531 "util/configparser.c" /* yacc.c:1646 */ +#line 3536 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1042 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1044 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3539,11 +3544,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3543 "util/configparser.c" /* yacc.c:1646 */ +#line 3548 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1051 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1053 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3551,53 +3556,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3555 "util/configparser.c" /* yacc.c:1646 */ +#line 3560 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1060 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1062 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 3565 "util/configparser.c" /* yacc.c:1646 */ +#line 3570 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1067 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1069 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 3575 "util/configparser.c" /* yacc.c:1646 */ +#line 3580 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1074 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1076 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 3586 "util/configparser.c" /* yacc.c:1646 */ +#line 3591 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1082 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1084 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 3597 "util/configparser.c" /* yacc.c:1646 */ +#line 3602 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1090 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1092 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3606,11 +3611,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3610 "util/configparser.c" /* yacc.c:1646 */ +#line 3615 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1100 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1102 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3619,11 +3624,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3623 "util/configparser.c" /* yacc.c:1646 */ +#line 3628 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1110 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1112 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3632,11 +3637,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3636 "util/configparser.c" /* yacc.c:1646 */ +#line 3641 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1120 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1122 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3648,11 +3653,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3652 "util/configparser.c" /* yacc.c:1646 */ +#line 3657 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1133 "./util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1135 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3662,22 +3667,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3666 "util/configparser.c" /* yacc.c:1646 */ +#line 3671 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1144 "./util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1146 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3677 "util/configparser.c" /* yacc.c:1646 */ +#line 3682 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1152 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1154 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3689,11 +3694,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3693 "util/configparser.c" /* yacc.c:1646 */ +#line 3698 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1165 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1167 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3701,11 +3706,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3705 "util/configparser.c" /* yacc.c:1646 */ +#line 3710 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1174 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1176 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3713,11 +3718,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3717 "util/configparser.c" /* yacc.c:1646 */ +#line 3722 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1183 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1185 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3725,11 +3730,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3729 "util/configparser.c" /* yacc.c:1646 */ +#line 3734 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1192 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1194 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3738,11 +3743,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3742 "util/configparser.c" /* yacc.c:1646 */ +#line 3747 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1202 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1204 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3751,22 +3756,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3755 "util/configparser.c" /* yacc.c:1646 */ +#line 3760 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1212 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1214 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3766 "util/configparser.c" /* yacc.c:1646 */ +#line 3771 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1220 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1222 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3778,11 +3783,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3782 "util/configparser.c" /* yacc.c:1646 */ +#line 3787 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1233 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1235 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3790,22 +3795,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3794 "util/configparser.c" /* yacc.c:1646 */ +#line 3799 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1242 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1244 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3805 "util/configparser.c" /* yacc.c:1646 */ +#line 3810 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1250 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1252 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3813,22 +3818,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3817 "util/configparser.c" /* yacc.c:1646 */ +#line 3822 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1259 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1261 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3828 "util/configparser.c" /* yacc.c:1646 */ +#line 3833 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1267 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1269 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3840,11 +3845,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3844 "util/configparser.c" /* yacc.c:1646 */ +#line 3849 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1280 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1282 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3852,21 +3857,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3856 "util/configparser.c" /* yacc.c:1646 */ +#line 3861 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1289 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1291 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 3866 "util/configparser.c" /* yacc.c:1646 */ +#line 3871 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1296 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1298 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3875,11 +3880,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3879 "util/configparser.c" /* yacc.c:1646 */ +#line 3884 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1306 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1308 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3888,11 +3893,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3892 "util/configparser.c" /* yacc.c:1646 */ +#line 3897 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1316 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1318 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3901,11 +3906,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3905 "util/configparser.c" /* yacc.c:1646 */ +#line 3910 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1326 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1328 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3914,11 +3919,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3918 "util/configparser.c" /* yacc.c:1646 */ +#line 3923 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1336 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1338 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3927,11 +3932,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3931 "util/configparser.c" /* yacc.c:1646 */ +#line 3936 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1346 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1348 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3940,11 +3945,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3944 "util/configparser.c" /* yacc.c:1646 */ +#line 3949 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1356 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1358 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3953,11 +3958,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3957 "util/configparser.c" /* yacc.c:1646 */ +#line 3962 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1366 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1368 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3966,41 +3971,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3970 "util/configparser.c" /* yacc.c:1646 */ +#line 3975 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1376 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1378 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3980 "util/configparser.c" /* yacc.c:1646 */ +#line 3985 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1383 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1385 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3990 "util/configparser.c" /* yacc.c:1646 */ +#line 3995 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1390 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1392 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4000 "util/configparser.c" /* yacc.c:1646 */ +#line 4005 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1397 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1399 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4008,11 +4013,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4012 "util/configparser.c" /* yacc.c:1646 */ +#line 4017 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1406 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1408 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4020,11 +4025,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4024 "util/configparser.c" /* yacc.c:1646 */ +#line 4029 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1415 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1417 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4032,11 +4037,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4036 "util/configparser.c" /* yacc.c:1646 */ +#line 4041 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1424 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1426 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4044,21 +4049,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4048 "util/configparser.c" /* yacc.c:1646 */ +#line 4053 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1433 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1435 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4058 "util/configparser.c" /* yacc.c:1646 */ +#line 4063 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1440 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1442 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4067,11 +4072,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4071 "util/configparser.c" /* yacc.c:1646 */ +#line 4076 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1450 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1452 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -4088,21 +4093,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4092 "util/configparser.c" /* yacc.c:1646 */ +#line 4097 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1468 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1470 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 4102 "util/configparser.c" /* yacc.c:1646 */ +#line 4107 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1475 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1477 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4119,11 +4124,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4123 "util/configparser.c" /* yacc.c:1646 */ +#line 4128 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1493 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1495 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4135,11 +4140,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4139 "util/configparser.c" /* yacc.c:1646 */ +#line 4144 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1506 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1508 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4151,11 +4156,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4155 "util/configparser.c" /* yacc.c:1646 */ +#line 4160 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1519 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1521 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4163,11 +4168,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4167 "util/configparser.c" /* yacc.c:1646 */ +#line 4172 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1528 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1530 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4175,11 +4180,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4179 "util/configparser.c" /* yacc.c:1646 */ +#line 4184 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1537 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1539 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4187,11 +4192,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4191 "util/configparser.c" /* yacc.c:1646 */ +#line 4196 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1546 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1548 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4199,11 +4204,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4203 "util/configparser.c" /* yacc.c:1646 */ +#line 4208 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1555 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1557 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4212,11 +4217,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4216 "util/configparser.c" /* yacc.c:1646 */ +#line 4221 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1565 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1567 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4225,11 +4230,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4229 "util/configparser.c" /* yacc.c:1646 */ +#line 4234 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1575 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1577 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4239,11 +4244,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4243 "util/configparser.c" /* yacc.c:1646 */ +#line 4248 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1586 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1588 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4251,11 +4256,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4255 "util/configparser.c" /* yacc.c:1646 */ +#line 4260 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1595 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1597 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4263,11 +4268,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4267 "util/configparser.c" /* yacc.c:1646 */ +#line 4272 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1604 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1606 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4275,11 +4280,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4279 "util/configparser.c" /* yacc.c:1646 */ +#line 4284 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1613 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1615 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4287,11 +4292,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4291 "util/configparser.c" /* yacc.c:1646 */ +#line 4296 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1622 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1624 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4303,11 +4308,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4307 "util/configparser.c" /* yacc.c:1646 */ +#line 4312 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1635 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1637 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4319,11 +4324,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4323 "util/configparser.c" /* yacc.c:1646 */ +#line 4328 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1648 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 1650 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4331,21 +4336,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4335 "util/configparser.c" /* yacc.c:1646 */ +#line 4340 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 1657 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 1659 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 4345 "util/configparser.c" /* yacc.c:1646 */ +#line 4350 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 1664 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 1666 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4353,11 +4358,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4357 "util/configparser.c" /* yacc.c:1646 */ +#line 4362 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 1673 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 1675 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4365,11 +4370,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4369 "util/configparser.c" /* yacc.c:1646 */ +#line 4374 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 1682 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 1684 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4377,11 +4382,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4381 "util/configparser.c" /* yacc.c:1646 */ +#line 4386 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 1691 "./util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 1693 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4390,22 +4395,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4394 "util/configparser.c" /* yacc.c:1646 */ +#line 4399 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 1700 "./util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 1702 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4405 "util/configparser.c" /* yacc.c:1646 */ +#line 4410 "util/configparser.c" /* yacc.c:1646 */ break; - case 378: -#line 1708 "./util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 1710 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4417,22 +4422,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4421 "util/configparser.c" /* yacc.c:1646 */ +#line 4426 "util/configparser.c" /* yacc.c:1646 */ break; - case 379: -#line 1721 "./util/configparser.y" /* yacc.c:1646 */ + case 380: +#line 1723 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4432 "util/configparser.c" /* yacc.c:1646 */ +#line 4437 "util/configparser.c" /* yacc.c:1646 */ break; - case 380: -#line 1729 "./util/configparser.y" /* yacc.c:1646 */ + case 381: +#line 1731 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -4460,21 +4465,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4464 "util/configparser.c" /* yacc.c:1646 */ +#line 4469 "util/configparser.c" /* yacc.c:1646 */ break; - case 381: -#line 1758 "./util/configparser.y" /* yacc.c:1646 */ + case 382: +#line 1760 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 4474 "util/configparser.c" /* yacc.c:1646 */ +#line 4479 "util/configparser.c" /* yacc.c:1646 */ break; - case 382: -#line 1765 "./util/configparser.y" /* yacc.c:1646 */ + case 383: +#line 1767 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4488,11 +4493,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4492 "util/configparser.c" /* yacc.c:1646 */ +#line 4497 "util/configparser.c" /* yacc.c:1646 */ break; - case 383: -#line 1780 "./util/configparser.y" /* yacc.c:1646 */ + case 384: +#line 1782 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4501,11 +4506,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4505 "util/configparser.c" /* yacc.c:1646 */ +#line 4510 "util/configparser.c" /* yacc.c:1646 */ break; - case 384: -#line 1790 "./util/configparser.y" /* yacc.c:1646 */ + case 385: +#line 1792 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4514,31 +4519,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4518 "util/configparser.c" /* yacc.c:1646 */ +#line 4523 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 1800 "./util/configparser.y" /* yacc.c:1646 */ + case 386: +#line 1802 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); + cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 4533 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 387: +#line 1809 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4528 "util/configparser.c" /* yacc.c:1646 */ +#line 4543 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 1807 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 1816 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 4538 "util/configparser.c" /* yacc.c:1646 */ +#line 4553 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 1814 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 1823 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4546,22 +4561,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4550 "util/configparser.c" /* yacc.c:1646 */ +#line 4565 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 1823 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 1832 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 4561 "util/configparser.c" /* yacc.c:1646 */ +#line 4576 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 1831 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 1840 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4574,11 +4589,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4578 "util/configparser.c" /* yacc.c:1646 */ +#line 4593 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 1845 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 1854 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4596,11 +4611,11 @@ yyreduce: } } } -#line 4600 "util/configparser.c" /* yacc.c:1646 */ +#line 4615 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 1864 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 1873 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4618,11 +4633,11 @@ yyreduce: } } } -#line 4622 "util/configparser.c" /* yacc.c:1646 */ +#line 4637 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 1883 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 1892 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -4633,11 +4648,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4637 "util/configparser.c" /* yacc.c:1646 */ +#line 4652 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 1895 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 1904 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -4648,11 +4663,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4652 "util/configparser.c" /* yacc.c:1646 */ +#line 4667 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 1907 "./util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 1916 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -4663,11 +4678,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4667 "util/configparser.c" /* yacc.c:1646 */ +#line 4682 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 1919 "./util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 1928 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -4677,11 +4692,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4681 "util/configparser.c" /* yacc.c:1646 */ +#line 4696 "util/configparser.c" /* yacc.c:1646 */ break; - case 396: -#line 1930 "./util/configparser.y" /* yacc.c:1646 */ + case 398: +#line 1939 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4699,11 +4714,11 @@ yyreduce: } } } -#line 4703 "util/configparser.c" /* yacc.c:1646 */ +#line 4718 "util/configparser.c" /* yacc.c:1646 */ break; - case 397: -#line 1949 "./util/configparser.y" /* yacc.c:1646 */ + case 399: +#line 1958 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4711,11 +4726,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4715 "util/configparser.c" /* yacc.c:1646 */ +#line 4730 "util/configparser.c" /* yacc.c:1646 */ break; - case 398: -#line 1959 "./util/configparser.y" /* yacc.c:1646 */ + case 400: +#line 1968 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4723,33 +4738,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4727 "util/configparser.c" /* yacc.c:1646 */ +#line 4742 "util/configparser.c" /* yacc.c:1646 */ break; - case 399: -#line 1968 "./util/configparser.y" /* yacc.c:1646 */ + case 401: +#line 1977 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4738 "util/configparser.c" /* yacc.c:1646 */ +#line 4753 "util/configparser.c" /* yacc.c:1646 */ break; - case 400: -#line 1976 "./util/configparser.y" /* yacc.c:1646 */ + case 402: +#line 1985 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4749 "util/configparser.c" /* yacc.c:1646 */ +#line 4764 "util/configparser.c" /* yacc.c:1646 */ break; - case 401: -#line 1984 "./util/configparser.y" /* yacc.c:1646 */ + case 403: +#line 1993 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4761,11 +4776,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4765 "util/configparser.c" /* yacc.c:1646 */ +#line 4780 "util/configparser.c" /* yacc.c:1646 */ break; - case 402: -#line 1997 "./util/configparser.y" /* yacc.c:1646 */ + case 404: +#line 2006 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4777,11 +4792,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4781 "util/configparser.c" /* yacc.c:1646 */ +#line 4796 "util/configparser.c" /* yacc.c:1646 */ break; - case 403: -#line 2010 "./util/configparser.y" /* yacc.c:1646 */ + case 405: +#line 2019 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -4793,11 +4808,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4797 "util/configparser.c" /* yacc.c:1646 */ +#line 4812 "util/configparser.c" /* yacc.c:1646 */ break; - case 404: -#line 2023 "./util/configparser.y" /* yacc.c:1646 */ + case 406: +#line 2032 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -4809,11 +4824,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4813 "util/configparser.c" /* yacc.c:1646 */ +#line 4828 "util/configparser.c" /* yacc.c:1646 */ break; - case 405: -#line 2036 "./util/configparser.y" /* yacc.c:1646 */ + case 407: +#line 2045 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4821,11 +4836,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4825 "util/configparser.c" /* yacc.c:1646 */ +#line 4840 "util/configparser.c" /* yacc.c:1646 */ break; - case 406: -#line 2045 "./util/configparser.y" /* yacc.c:1646 */ + case 408: +#line 2054 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4833,20 +4848,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4837 "util/configparser.c" /* yacc.c:1646 */ +#line 4852 "util/configparser.c" /* yacc.c:1646 */ break; - case 407: -#line 2054 "./util/configparser.y" /* yacc.c:1646 */ + case 409: +#line 2063 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 4846 "util/configparser.c" /* yacc.c:1646 */ +#line 4861 "util/configparser.c" /* yacc.c:1646 */ break; - case 408: -#line 2060 "./util/configparser.y" /* yacc.c:1646 */ + case 410: +#line 2069 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -4854,11 +4869,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4858 "util/configparser.c" /* yacc.c:1646 */ +#line 4873 "util/configparser.c" /* yacc.c:1646 */ break; - case 409: -#line 2069 "./util/configparser.y" /* yacc.c:1646 */ + case 411: +#line 2078 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4866,11 +4881,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4870 "util/configparser.c" /* yacc.c:1646 */ +#line 4885 "util/configparser.c" /* yacc.c:1646 */ break; - case 410: -#line 2078 "./util/configparser.y" /* yacc.c:1646 */ + case 412: +#line 2087 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4879,11 +4894,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4883 "util/configparser.c" /* yacc.c:1646 */ +#line 4898 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2088 "./util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2097 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4892,11 +4907,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4896 "util/configparser.c" /* yacc.c:1646 */ +#line 4911 "util/configparser.c" /* yacc.c:1646 */ break; - case 412: -#line 2098 "./util/configparser.y" /* yacc.c:1646 */ + case 414: +#line 2107 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4908,11 +4923,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4912 "util/configparser.c" /* yacc.c:1646 */ +#line 4927 "util/configparser.c" /* yacc.c:1646 */ break; - case 413: -#line 2111 "./util/configparser.y" /* yacc.c:1646 */ + case 415: +#line 2120 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4924,11 +4939,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4928 "util/configparser.c" /* yacc.c:1646 */ +#line 4943 "util/configparser.c" /* yacc.c:1646 */ break; - case 414: -#line 2124 "./util/configparser.y" /* yacc.c:1646 */ + case 416: +#line 2133 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4938,11 +4953,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4942 "util/configparser.c" /* yacc.c:1646 */ +#line 4957 "util/configparser.c" /* yacc.c:1646 */ break; - case 415: -#line 2135 "./util/configparser.y" /* yacc.c:1646 */ + case 417: +#line 2144 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4954,11 +4969,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4958 "util/configparser.c" /* yacc.c:1646 */ +#line 4973 "util/configparser.c" /* yacc.c:1646 */ break; - case 416: -#line 2148 "./util/configparser.y" /* yacc.c:1646 */ + case 418: +#line 2157 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4968,11 +4983,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4972 "util/configparser.c" /* yacc.c:1646 */ +#line 4987 "util/configparser.c" /* yacc.c:1646 */ break; - case 417: -#line 2159 "./util/configparser.y" /* yacc.c:1646 */ + case 419: +#line 2168 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4984,11 +4999,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4988 "util/configparser.c" /* yacc.c:1646 */ +#line 5003 "util/configparser.c" /* yacc.c:1646 */ break; - case 418: -#line 2172 "./util/configparser.y" /* yacc.c:1646 */ + case 420: +#line 2181 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4997,31 +5012,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5001 "util/configparser.c" /* yacc.c:1646 */ +#line 5016 "util/configparser.c" /* yacc.c:1646 */ break; - case 419: -#line 2182 "./util/configparser.y" /* yacc.c:1646 */ + case 421: +#line 2191 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5011 "util/configparser.c" /* yacc.c:1646 */ +#line 5026 "util/configparser.c" /* yacc.c:1646 */ break; - case 420: -#line 2189 "./util/configparser.y" /* yacc.c:1646 */ + case 422: +#line 2198 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5021 "util/configparser.c" /* yacc.c:1646 */ +#line 5036 "util/configparser.c" /* yacc.c:1646 */ break; - case 421: -#line 2196 "./util/configparser.y" /* yacc.c:1646 */ + case 423: +#line 2205 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5029,11 +5044,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5033 "util/configparser.c" /* yacc.c:1646 */ +#line 5048 "util/configparser.c" /* yacc.c:1646 */ break; - case 422: -#line 2205 "./util/configparser.y" /* yacc.c:1646 */ + case 424: +#line 2214 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5041,11 +5056,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5045 "util/configparser.c" /* yacc.c:1646 */ +#line 5060 "util/configparser.c" /* yacc.c:1646 */ break; - case 423: -#line 2214 "./util/configparser.y" /* yacc.c:1646 */ + case 425: +#line 2223 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5054,11 +5069,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5058 "util/configparser.c" /* yacc.c:1646 */ +#line 5073 "util/configparser.c" /* yacc.c:1646 */ break; - case 424: -#line 2224 "./util/configparser.y" /* yacc.c:1646 */ + case 426: +#line 2233 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5067,11 +5082,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5071 "util/configparser.c" /* yacc.c:1646 */ +#line 5086 "util/configparser.c" /* yacc.c:1646 */ break; - case 425: -#line 2234 "./util/configparser.y" /* yacc.c:1646 */ + case 427: +#line 2243 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5080,31 +5095,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5084 "util/configparser.c" /* yacc.c:1646 */ +#line 5099 "util/configparser.c" /* yacc.c:1646 */ break; - case 426: -#line 2244 "./util/configparser.y" /* yacc.c:1646 */ + case 428: +#line 2253 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5094 "util/configparser.c" /* yacc.c:1646 */ +#line 5109 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2251 "./util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2260 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5104 "util/configparser.c" /* yacc.c:1646 */ +#line 5119 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2258 "./util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2267 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5112,11 +5127,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5116 "util/configparser.c" /* yacc.c:1646 */ +#line 5131 "util/configparser.c" /* yacc.c:1646 */ break; - case 429: -#line 2267 "./util/configparser.y" /* yacc.c:1646 */ + case 431: +#line 2276 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5124,11 +5139,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5128 "util/configparser.c" /* yacc.c:1646 */ +#line 5143 "util/configparser.c" /* yacc.c:1646 */ break; - case 430: -#line 2276 "./util/configparser.y" /* yacc.c:1646 */ + case 432: +#line 2285 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5137,11 +5152,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5141 "util/configparser.c" /* yacc.c:1646 */ +#line 5156 "util/configparser.c" /* yacc.c:1646 */ break; - case 431: -#line 2286 "./util/configparser.y" /* yacc.c:1646 */ + case 433: +#line 2295 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5150,52 +5165,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5154 "util/configparser.c" /* yacc.c:1646 */ +#line 5169 "util/configparser.c" /* yacc.c:1646 */ break; - case 432: -#line 2296 "./util/configparser.y" /* yacc.c:1646 */ + case 434: +#line 2305 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 5164 "util/configparser.c" /* yacc.c:1646 */ +#line 5179 "util/configparser.c" /* yacc.c:1646 */ break; - case 433: -#line 2303 "./util/configparser.y" /* yacc.c:1646 */ + case 435: +#line 2312 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5174 "util/configparser.c" /* yacc.c:1646 */ +#line 5189 "util/configparser.c" /* yacc.c:1646 */ break; - case 434: -#line 2310 "./util/configparser.y" /* yacc.c:1646 */ + case 436: +#line 2319 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5184 "util/configparser.c" /* yacc.c:1646 */ +#line 5199 "util/configparser.c" /* yacc.c:1646 */ break; - case 435: -#line 2317 "./util/configparser.y" /* yacc.c:1646 */ + case 437: +#line 2326 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5195 "util/configparser.c" /* yacc.c:1646 */ +#line 5210 "util/configparser.c" /* yacc.c:1646 */ break; - case 436: -#line 2325 "./util/configparser.y" /* yacc.c:1646 */ + case 438: +#line 2334 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5204,11 +5219,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5208 "util/configparser.c" /* yacc.c:1646 */ +#line 5223 "util/configparser.c" /* yacc.c:1646 */ break; - case 437: -#line 2335 "./util/configparser.y" /* yacc.c:1646 */ + case 439: +#line 2344 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5217,11 +5232,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5221 "util/configparser.c" /* yacc.c:1646 */ +#line 5236 "util/configparser.c" /* yacc.c:1646 */ break; - case 438: -#line 2345 "./util/configparser.y" /* yacc.c:1646 */ + case 440: +#line 2354 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5230,11 +5245,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5234 "util/configparser.c" /* yacc.c:1646 */ +#line 5249 "util/configparser.c" /* yacc.c:1646 */ break; - case 439: -#line 2355 "./util/configparser.y" /* yacc.c:1646 */ + case 441: +#line 2364 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5243,11 +5258,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5247 "util/configparser.c" /* yacc.c:1646 */ +#line 5262 "util/configparser.c" /* yacc.c:1646 */ break; - case 440: -#line 2365 "./util/configparser.y" /* yacc.c:1646 */ + case 442: +#line 2374 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5276,11 +5291,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5280 "util/configparser.c" /* yacc.c:1646 */ +#line 5295 "util/configparser.c" /* yacc.c:1646 */ break; - case 441: -#line 2395 "./util/configparser.y" /* yacc.c:1646 */ + case 443: +#line 2404 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5289,22 +5304,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5293 "util/configparser.c" /* yacc.c:1646 */ +#line 5308 "util/configparser.c" /* yacc.c:1646 */ break; - case 442: -#line 2405 "./util/configparser.y" /* yacc.c:1646 */ + case 444: +#line 2414 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5304 "util/configparser.c" /* yacc.c:1646 */ +#line 5319 "util/configparser.c" /* yacc.c:1646 */ break; - case 443: -#line 2413 "./util/configparser.y" /* yacc.c:1646 */ + case 445: +#line 2422 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { @@ -5312,11 +5327,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5316 "util/configparser.c" /* yacc.c:1646 */ +#line 5331 "util/configparser.c" /* yacc.c:1646 */ break; - case 444: -#line 2422 "./util/configparser.y" /* yacc.c:1646 */ + case 446: +#line 2431 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5330,11 +5345,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5334 "util/configparser.c" /* yacc.c:1646 */ +#line 5349 "util/configparser.c" /* yacc.c:1646 */ break; - case 445: -#line 2437 "./util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2446 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5342,19 +5357,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5346 "util/configparser.c" /* yacc.c:1646 */ +#line 5361 "util/configparser.c" /* yacc.c:1646 */ break; - case 446: -#line 2446 "./util/configparser.y" /* yacc.c:1646 */ + case 448: +#line 2455 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 5354 "util/configparser.c" /* yacc.c:1646 */ +#line 5369 "util/configparser.c" /* yacc.c:1646 */ break; - case 457: -#line 2457 "./util/configparser.y" /* yacc.c:1646 */ + case 459: +#line 2466 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5363,11 +5378,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5367 "util/configparser.c" /* yacc.c:1646 */ +#line 5382 "util/configparser.c" /* yacc.c:1646 */ break; - case 458: -#line 2467 "./util/configparser.y" /* yacc.c:1646 */ + case 460: +#line 2476 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5375,142 +5390,142 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5379 "util/configparser.c" /* yacc.c:1646 */ +#line 5394 "util/configparser.c" /* yacc.c:1646 */ break; - case 459: -#line 2476 "./util/configparser.y" /* yacc.c:1646 */ + case 461: +#line 2485 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5389 "util/configparser.c" /* yacc.c:1646 */ +#line 5404 "util/configparser.c" /* yacc.c:1646 */ break; - case 460: -#line 2483 "./util/configparser.y" /* yacc.c:1646 */ + case 462: +#line 2492 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5399 "util/configparser.c" /* yacc.c:1646 */ +#line 5414 "util/configparser.c" /* yacc.c:1646 */ break; - case 461: -#line 2490 "./util/configparser.y" /* yacc.c:1646 */ + case 463: +#line 2499 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 5409 "util/configparser.c" /* yacc.c:1646 */ +#line 5424 "util/configparser.c" /* yacc.c:1646 */ break; - case 462: -#line 2497 "./util/configparser.y" /* yacc.c:1646 */ + case 464: +#line 2506 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 5419 "util/configparser.c" /* yacc.c:1646 */ +#line 5434 "util/configparser.c" /* yacc.c:1646 */ break; - case 463: -#line 2504 "./util/configparser.y" /* yacc.c:1646 */ + case 465: +#line 2513 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 5429 "util/configparser.c" /* yacc.c:1646 */ +#line 5444 "util/configparser.c" /* yacc.c:1646 */ break; - case 464: -#line 2511 "./util/configparser.y" /* yacc.c:1646 */ + case 466: +#line 2520 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 5439 "util/configparser.c" /* yacc.c:1646 */ +#line 5454 "util/configparser.c" /* yacc.c:1646 */ break; - case 465: -#line 2518 "./util/configparser.y" /* yacc.c:1646 */ + case 467: +#line 2527 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 5447 "util/configparser.c" /* yacc.c:1646 */ +#line 5462 "util/configparser.c" /* yacc.c:1646 */ break; - case 480: -#line 2535 "./util/configparser.y" /* yacc.c:1646 */ + case 482: +#line 2544 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5458 "util/configparser.c" /* yacc.c:1646 */ +#line 5473 "util/configparser.c" /* yacc.c:1646 */ break; - case 481: -#line 2543 "./util/configparser.y" /* yacc.c:1646 */ + case 483: +#line 2552 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 5468 "util/configparser.c" /* yacc.c:1646 */ +#line 5483 "util/configparser.c" /* yacc.c:1646 */ break; - case 482: -#line 2550 "./util/configparser.y" /* yacc.c:1646 */ + case 484: +#line 2559 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5479 "util/configparser.c" /* yacc.c:1646 */ +#line 5494 "util/configparser.c" /* yacc.c:1646 */ break; - case 483: -#line 2558 "./util/configparser.y" /* yacc.c:1646 */ + case 485: +#line 2567 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5490 "util/configparser.c" /* yacc.c:1646 */ +#line 5505 "util/configparser.c" /* yacc.c:1646 */ break; - case 484: -#line 2566 "./util/configparser.y" /* yacc.c:1646 */ + case 486: +#line 2575 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 5500 "util/configparser.c" /* yacc.c:1646 */ +#line 5515 "util/configparser.c" /* yacc.c:1646 */ break; - case 485: -#line 2573 "./util/configparser.y" /* yacc.c:1646 */ + case 487: +#line 2582 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 5510 "util/configparser.c" /* yacc.c:1646 */ +#line 5525 "util/configparser.c" /* yacc.c:1646 */ break; - case 486: -#line 2580 "./util/configparser.y" /* yacc.c:1646 */ + case 488: +#line 2589 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5518,11 +5533,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5522 "util/configparser.c" /* yacc.c:1646 */ +#line 5537 "util/configparser.c" /* yacc.c:1646 */ break; - case 487: -#line 2589 "./util/configparser.y" /* yacc.c:1646 */ + case 489: +#line 2598 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5530,11 +5545,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5534 "util/configparser.c" /* yacc.c:1646 */ +#line 5549 "util/configparser.c" /* yacc.c:1646 */ break; - case 488: -#line 2598 "./util/configparser.y" /* yacc.c:1646 */ + case 490: +#line 2607 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5542,11 +5557,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5546 "util/configparser.c" /* yacc.c:1646 */ +#line 5561 "util/configparser.c" /* yacc.c:1646 */ break; - case 489: -#line 2607 "./util/configparser.y" /* yacc.c:1646 */ + case 491: +#line 2616 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5554,11 +5569,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5558 "util/configparser.c" /* yacc.c:1646 */ +#line 5573 "util/configparser.c" /* yacc.c:1646 */ break; - case 490: -#line 2616 "./util/configparser.y" /* yacc.c:1646 */ + case 492: +#line 2625 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5566,11 +5581,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5570 "util/configparser.c" /* yacc.c:1646 */ +#line 5585 "util/configparser.c" /* yacc.c:1646 */ break; - case 491: -#line 2625 "./util/configparser.y" /* yacc.c:1646 */ + case 493: +#line 2634 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5578,29 +5593,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5582 "util/configparser.c" /* yacc.c:1646 */ +#line 5597 "util/configparser.c" /* yacc.c:1646 */ break; - case 492: -#line 2634 "./util/configparser.y" /* yacc.c:1646 */ + case 494: +#line 2643 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 5590 "util/configparser.c" /* yacc.c:1646 */ +#line 5605 "util/configparser.c" /* yacc.c:1646 */ break; - case 496: -#line 2643 "./util/configparser.y" /* yacc.c:1646 */ + case 498: +#line 2652 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->python_script); cfg_parser->cfg->python_script = (yyvsp[0].str); } -#line 5600 "util/configparser.c" /* yacc.c:1646 */ +#line 5615 "util/configparser.c" /* yacc.c:1646 */ break; - case 497: -#line 2649 "./util/configparser.y" /* yacc.c:1646 */ + case 499: +#line 2658 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5609,21 +5624,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5613 "util/configparser.c" /* yacc.c:1646 */ +#line 5628 "util/configparser.c" /* yacc.c:1646 */ break; - case 498: -#line 2659 "./util/configparser.y" /* yacc.c:1646 */ + case 500: +#line 2668 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 5623 "util/configparser.c" /* yacc.c:1646 */ +#line 5638 "util/configparser.c" /* yacc.c:1646 */ break; - case 499: -#line 2666 "./util/configparser.y" /* yacc.c:1646 */ + case 501: +#line 2675 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5631,31 +5646,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5635 "util/configparser.c" /* yacc.c:1646 */ +#line 5650 "util/configparser.c" /* yacc.c:1646 */ break; - case 500: -#line 2675 "./util/configparser.y" /* yacc.c:1646 */ + case 502: +#line 2684 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5646 "util/configparser.c" /* yacc.c:1646 */ +#line 5661 "util/configparser.c" /* yacc.c:1646 */ break; - case 501: -#line 2683 "./util/configparser.y" /* yacc.c:1646 */ + case 503: +#line 2692 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5655 "util/configparser.c" /* yacc.c:1646 */ +#line 5670 "util/configparser.c" /* yacc.c:1646 */ break; - case 514: -#line 2700 "./util/configparser.y" /* yacc.c:1646 */ + case 516: +#line 2709 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5663,11 +5678,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5667 "util/configparser.c" /* yacc.c:1646 */ +#line 5682 "util/configparser.c" /* yacc.c:1646 */ break; - case 515: -#line 2710 "./util/configparser.y" /* yacc.c:1646 */ + case 517: +#line 2719 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5676,21 +5691,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5680 "util/configparser.c" /* yacc.c:1646 */ +#line 5695 "util/configparser.c" /* yacc.c:1646 */ break; - case 516: -#line 2720 "./util/configparser.y" /* yacc.c:1646 */ + case 518: +#line 2729 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 5690 "util/configparser.c" /* yacc.c:1646 */ +#line 5705 "util/configparser.c" /* yacc.c:1646 */ break; - case 517: -#line 2727 "./util/configparser.y" /* yacc.c:1646 */ + case 519: +#line 2736 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -5698,21 +5713,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5702 "util/configparser.c" /* yacc.c:1646 */ +#line 5717 "util/configparser.c" /* yacc.c:1646 */ break; - case 518: -#line 2736 "./util/configparser.y" /* yacc.c:1646 */ + case 520: +#line 2745 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 5712 "util/configparser.c" /* yacc.c:1646 */ +#line 5727 "util/configparser.c" /* yacc.c:1646 */ break; - case 519: -#line 2743 "./util/configparser.y" /* yacc.c:1646 */ + case 521: +#line 2752 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -5720,22 +5735,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 5724 "util/configparser.c" /* yacc.c:1646 */ +#line 5739 "util/configparser.c" /* yacc.c:1646 */ break; - case 520: -#line 2752 "./util/configparser.y" /* yacc.c:1646 */ + case 522: +#line 2761 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5735 "util/configparser.c" /* yacc.c:1646 */ +#line 5750 "util/configparser.c" /* yacc.c:1646 */ break; - case 521: -#line 2760 "./util/configparser.y" /* yacc.c:1646 */ + case 523: +#line 2769 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5747,22 +5762,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5751 "util/configparser.c" /* yacc.c:1646 */ +#line 5766 "util/configparser.c" /* yacc.c:1646 */ break; - case 522: -#line 2773 "./util/configparser.y" /* yacc.c:1646 */ + case 524: +#line 2782 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5762 "util/configparser.c" /* yacc.c:1646 */ +#line 5777 "util/configparser.c" /* yacc.c:1646 */ break; - case 523: -#line 2781 "./util/configparser.y" /* yacc.c:1646 */ + case 525: +#line 2790 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5774,19 +5789,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5778 "util/configparser.c" /* yacc.c:1646 */ +#line 5793 "util/configparser.c" /* yacc.c:1646 */ break; - case 524: -#line 2794 "./util/configparser.y" /* yacc.c:1646 */ + case 526: +#line 2803 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5786 "util/configparser.c" /* yacc.c:1646 */ +#line 5801 "util/configparser.c" /* yacc.c:1646 */ break; - case 532: -#line 2804 "./util/configparser.y" /* yacc.c:1646 */ + case 534: +#line 2813 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5799,11 +5814,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5803 "util/configparser.c" /* yacc.c:1646 */ +#line 5818 "util/configparser.c" /* yacc.c:1646 */ break; - case 533: -#line 2818 "./util/configparser.y" /* yacc.c:1646 */ + case 535: +#line 2827 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5817,11 +5832,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5821 "util/configparser.c" /* yacc.c:1646 */ +#line 5836 "util/configparser.c" /* yacc.c:1646 */ break; - case 534: -#line 2833 "./util/configparser.y" /* yacc.c:1646 */ + case 536: +#line 2842 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -5832,11 +5847,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5836 "util/configparser.c" /* yacc.c:1646 */ +#line 5851 "util/configparser.c" /* yacc.c:1646 */ break; - case 535: -#line 2845 "./util/configparser.y" /* yacc.c:1646 */ + case 537: +#line 2854 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -5850,11 +5865,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5854 "util/configparser.c" /* yacc.c:1646 */ +#line 5869 "util/configparser.c" /* yacc.c:1646 */ break; - case 536: -#line 2860 "./util/configparser.y" /* yacc.c:1646 */ + case 538: +#line 2869 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -5866,11 +5881,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5870 "util/configparser.c" /* yacc.c:1646 */ +#line 5885 "util/configparser.c" /* yacc.c:1646 */ break; - case 537: -#line 2873 "./util/configparser.y" /* yacc.c:1646 */ + case 539: +#line 2882 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -5880,11 +5895,11 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 5884 "util/configparser.c" /* yacc.c:1646 */ +#line 5899 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5888 "util/configparser.c" /* yacc.c:1646 */ +#line 5903 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -6112,7 +6127,7 @@ yyreturn: #endif return yyresult; } -#line 2883 "./util/configparser.y" /* yacc.c:1906 */ +#line 2892 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 268791fdd..a98423aca 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -302,7 +302,8 @@ extern int yydebug; VAR_FORWARD_NO_CACHE = 512, VAR_STUB_NO_CACHE = 513, VAR_LOG_SERVFAIL = 514, - VAR_DENY_ANY = 515 + VAR_DENY_ANY = 515, + VAR_UNKNOWN_SERVER_TIME_LIMIT = 516 }; #endif /* Tokens. */ @@ -564,6 +565,7 @@ extern int yydebug; #define VAR_STUB_NO_CACHE 513 #define VAR_LOG_SERVFAIL 514 #define VAR_DENY_ANY 515 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 516 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -574,7 +576,7 @@ union YYSTYPE char* str; -#line 578 "util/configparser.h" /* yacc.c:1909 */ +#line 580 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 7f9825fda..573f0cfa1 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -164,6 +164,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_FAST_SERVER_PERMIL VAR_FAST_SERVER_NUM %token VAR_ALLOW_NOTIFY VAR_TLS_WIN_CERT VAR_TCP_CONNECTION_LIMIT %token VAR_FORWARD_NO_CACHE VAR_STUB_NO_CACHE VAR_LOG_SERVFAIL VAR_DENY_ANY +%token VAR_UNKNOWN_SERVER_TIME_LIMIT %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -261,7 +262,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_udp_upstream_without_downstream | server_aggressive_nsec | server_tls_cert_bundle | server_tls_additional_port | server_low_rtt | server_fast_server_permil | server_fast_server_num | server_tls_win_cert | - server_tcp_connection_limit | server_log_servfail | server_deny_any + server_tcp_connection_limit | server_log_servfail | server_deny_any | + server_unknown_server_time_limit ; stubstart: VAR_STUB_ZONE { @@ -1796,6 +1798,13 @@ server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG free($2); } ; +server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG + { + OUTYY(("P(server_unknown_server_time_limit:%s)\n", $2)); + cfg_parser->cfg->unknown_server_time_limit = atoi($2); + free($2); + } + ; server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG { OUTYY(("P(server_max_udp_size:%s)\n", $2)); -- 2.47.3