summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:30:18 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:30:18 +0000
commit7b6fdf425a9ef38fe9e16779b3af25863104d9c0 (patch)
tree1ac9dd11604f49ca6a2feae373ff4dc7e6fb0002
parent4289761a7b61df4b64c11ada446a187df61e6a1e (diff)
downloadsrc-test2-7b6fdf425a9ef38fe9e16779b3af25863104d9c0.tar.gz
src-test2-7b6fdf425a9ef38fe9e16779b3af25863104d9c0.zip
Vendor import of Unbound 1.7.2.vendor/unbound/1.7.2
Notes
Notes: svn path=/vendor/unbound/dist/; revision=338562 svn path=/vendor/unbound/1.7.2/; revision=338563; tag=vendor/unbound/1.7.2
-rw-r--r--Makefile.in6
-rw-r--r--compat/arc4random.c73
-rw-r--r--config.h.in3
-rwxr-xr-xconfigure31
-rw-r--r--configure.ac11
-rw-r--r--contrib/libunbound.pc.in4
-rw-r--r--daemon/acl_list.c2
-rw-r--r--daemon/acl_list.h4
-rw-r--r--daemon/daemon.c1
-rw-r--r--daemon/unbound.c2
-rw-r--r--daemon/worker.c7
-rw-r--r--doc/Changelog74
-rw-r--r--doc/README2
-rw-r--r--doc/example.conf.in14
-rw-r--r--doc/libunbound.3.in4
-rw-r--r--doc/unbound-anchor.8.in2
-rw-r--r--doc/unbound-checkconf.8.in2
-rw-r--r--doc/unbound-control.8.in2
-rw-r--r--doc/unbound-host.1.in2
-rw-r--r--doc/unbound.8.in4
-rw-r--r--doc/unbound.conf.5.in42
-rw-r--r--iterator/iter_utils.c4
-rw-r--r--libunbound/context.c5
-rw-r--r--libunbound/context.h9
-rw-r--r--libunbound/libunbound.c7
-rw-r--r--libunbound/libworker.c6
-rw-r--r--services/authzone.c5
-rw-r--r--services/listen_dnsport.c18
-rw-r--r--services/mesh.c4
-rw-r--r--services/outside_network.c25
-rw-r--r--services/outside_network.h4
-rw-r--r--smallapp/unbound-host.c28
-rw-r--r--testcode/asynclook.c30
-rw-r--r--testcode/fake_event.c6
-rw-r--r--testcode/streamtcp.c2
-rw-r--r--testcode/testbound.c3
-rw-r--r--testcode/unitmain.c3
-rw-r--r--testdata/02-unittest.tdir/02-unittest.test45
-rw-r--r--testdata/03-testbound.tdir/03-testbound.test11
-rw-r--r--testdata/auth_xfr_host.rpl1
-rw-r--r--testdata/autotrust_init_failsig.rpl1
-rw-r--r--testdata/autotrust_revtp_use.rpl1
-rw-r--r--testdata/black_data.rpl1
-rw-r--r--testdata/black_dnskey.rpl1
-rw-r--r--testdata/black_ds.rpl1
-rw-r--r--testdata/black_ent.rpl1
-rw-r--r--testdata/black_prime.rpl1
-rw-r--r--testdata/black_prime_entry.rpl1
-rw-r--r--testdata/dlv_anchor.rpl1
-rw-r--r--testdata/dlv_ask_higher.rpl1
-rw-r--r--testdata/dlv_below_ta.rpl1
-rw-r--r--testdata/dlv_delegation.rpl1
-rw-r--r--testdata/dlv_ds_lookup.rpl1
-rw-r--r--testdata/dlv_insecure.rpl1
-rw-r--r--testdata/dlv_insecure_negcache.rpl1
-rw-r--r--testdata/dlv_keyretry.rpl1
-rw-r--r--testdata/dlv_negnx.rpl1
-rw-r--r--testdata/dlv_optout.rpl1
-rw-r--r--testdata/dlv_remove_pos.rpl1
-rw-r--r--testdata/dns64_lookup.rpl1
-rw-r--r--testdata/domain_insec_ds.rpl1
-rw-r--r--testdata/fetch_glue.rpl1
-rw-r--r--testdata/fetch_glue_cname.rpl1
-rw-r--r--testdata/fwddlv_parse.rpl1
-rw-r--r--testdata/ipsecmod_bogus_ipseckey.crpl1
-rw-r--r--testdata/ipsecmod_enabled.crpl1
-rw-r--r--testdata/ipsecmod_ignore_bogus_ipseckey.crpl1
-rw-r--r--testdata/ipsecmod_max_ttl.crpl1
-rw-r--r--testdata/ipsecmod_strict.crpl1
-rw-r--r--testdata/ipsecmod_whitelist.crpl1
-rw-r--r--testdata/iter_class_any.rpl1
-rw-r--r--testdata/iter_cname_double.rpl1
-rw-r--r--testdata/iter_cname_nx.rpl1
-rw-r--r--testdata/iter_cname_qnamecopy.rpl1
-rw-r--r--testdata/iter_cycle.rpl1
-rw-r--r--testdata/iter_cycle_noh.rpl1
-rw-r--r--testdata/iter_dname_insec.rpl1
-rw-r--r--testdata/iter_dnsseclame_bug.rpl1
-rw-r--r--testdata/iter_dnsseclame_ds.rpl1
-rw-r--r--testdata/iter_dnsseclame_ds_ok.rpl1
-rw-r--r--testdata/iter_dnsseclame_ta.rpl1
-rw-r--r--testdata/iter_dnsseclame_ta_ok.rpl1
-rw-r--r--testdata/iter_donotq127.rpl2
-rw-r--r--testdata/iter_ds_locate_ns_detach.rpl1
-rw-r--r--testdata/iter_emptydp.rpl1
-rw-r--r--testdata/iter_emptydp_for_glue.rpl1
-rw-r--r--testdata/iter_got6only.rpl1
-rw-r--r--testdata/iter_hint_lame.rpl1
-rw-r--r--testdata/iter_lame_noaa.rpl1
-rw-r--r--testdata/iter_lamescrub.rpl2
-rw-r--r--testdata/iter_mod.rpl1
-rw-r--r--testdata/iter_ns_badip.rpl1
-rw-r--r--testdata/iter_ns_spoof.rpl1
-rw-r--r--testdata/iter_pcdirect.rpl1
-rw-r--r--testdata/iter_prefetch.rpl1
-rw-r--r--testdata/iter_prefetch_childns.rpl1
-rw-r--r--testdata/iter_prefetch_ns.rpl1
-rw-r--r--testdata/iter_primenoglue.rpl1
-rw-r--r--testdata/iter_privaddr.rpl1
-rw-r--r--testdata/iter_reclame_one.rpl1
-rw-r--r--testdata/iter_recurse.rpl1
-rw-r--r--testdata/iter_resolve.rpl1
-rw-r--r--testdata/iter_resolve_minimised.rpl1
-rw-r--r--testdata/iter_scrub_cname_an.rpl1
-rw-r--r--testdata/iter_scrub_dname_insec.rpl1
-rw-r--r--testdata/iter_scrub_dname_rev.rpl1
-rw-r--r--testdata/iter_scrub_dname_sec.rpl1
-rw-r--r--testdata/iter_timeout_ra_aaaa.rpl1
-rw-r--r--testdata/local_ds.rpl2
-rw-r--r--testdata/local_nodefault.rpl1
-rw-r--r--testdata/local_typetransparent.rpl1
-rw-r--r--testdata/nomem_cnametopos.rpl1
-rw-r--r--testdata/stop_nxdomain.rpl1
-rw-r--r--testdata/subnet_cached.crpl1
-rw-r--r--testdata/subnet_derived.crpl1
-rw-r--r--testdata/subnet_format_ip4.crpl1
-rw-r--r--testdata/subnet_max_source.crpl1
-rw-r--r--testdata/subnet_not_whitelisted.crpl1
-rw-r--r--testdata/subnet_val_positive.crpl1
-rw-r--r--testdata/subnet_val_positive_client.crpl1
-rw-r--r--testdata/subnet_without_validator.crpl1
-rw-r--r--testdata/tcp_sigpipe.tdir/tcp_sigpipe.testns2
-rw-r--r--testdata/ttl_max.rpl1
-rw-r--r--testdata/ttl_min.rpl1
-rw-r--r--testdata/ttl_msg.rpl1
-rw-r--r--testdata/val_adbit.rpl1
-rw-r--r--testdata/val_adcopy.rpl1
-rw-r--r--testdata/val_anchor_nx.rpl1
-rw-r--r--testdata/val_anchor_nx_nosig.rpl1
-rw-r--r--testdata/val_ans_dsent.rpl1
-rw-r--r--testdata/val_ans_nx.rpl1
-rw-r--r--testdata/val_any.rpl1
-rw-r--r--testdata/val_any_cname.rpl1
-rw-r--r--testdata/val_any_dname.rpl1
-rw-r--r--testdata/val_cname_loop1.rpl1
-rw-r--r--testdata/val_cname_loop2.rpl1
-rw-r--r--testdata/val_cname_loop3.rpl1
-rw-r--r--testdata/val_cnameinsectopos.rpl1
-rw-r--r--testdata/val_cnamenx_dblnsec.rpl1
-rw-r--r--testdata/val_cnamenx_rcodenx.rpl1
-rw-r--r--testdata/val_cnameqtype.rpl1
-rw-r--r--testdata/val_cnametocnamewctoposwc.rpl1
-rw-r--r--testdata/val_cnametodname.rpl1
-rw-r--r--testdata/val_cnametodnametocnametopos.rpl1
-rw-r--r--testdata/val_cnametonodata.rpl1
-rw-r--r--testdata/val_cnametonodata_nonsec.rpl1
-rw-r--r--testdata/val_cnametonsec.rpl1
-rw-r--r--testdata/val_cnametonx.rpl1
-rw-r--r--testdata/val_cnametooptin.rpl1
-rw-r--r--testdata/val_cnametopos.rpl1
-rw-r--r--testdata/val_cnametoposnowc.rpl1
-rw-r--r--testdata/val_cnametoposwc.rpl1
-rw-r--r--testdata/val_cnamewctonodata.rpl1
-rw-r--r--testdata/val_cnamewctonx.rpl1
-rw-r--r--testdata/val_cnamewctoposwc.rpl1
-rw-r--r--testdata/val_deleg_nons.rpl1
-rw-r--r--testdata/val_dnametopos.rpl1
-rw-r--r--testdata/val_dnametoposwc.rpl1
-rw-r--r--testdata/val_dnamewc.rpl1
-rw-r--r--testdata/val_ds_afterprime.rpl1
-rw-r--r--testdata/val_ds_cname.rpl1
-rw-r--r--testdata/val_ds_cnamesub.rpl1
-rw-r--r--testdata/val_ds_gost.crpl1
-rw-r--r--testdata/val_ds_gost_downgrade.crpl1
-rw-r--r--testdata/val_ds_sha2.crpl1
-rw-r--r--testdata/val_ds_sha2_downgrade.crpl1
-rw-r--r--testdata/val_ds_sha2_lenient.crpl1
-rw-r--r--testdata/val_entds.rpl1
-rw-r--r--testdata/val_keyprefetch.rpl1
-rw-r--r--testdata/val_keyprefetch_verify.rpl1
-rw-r--r--testdata/val_mal_wc.rpl1
-rw-r--r--testdata/val_negcache_ds.rpl1
-rw-r--r--testdata/val_negcache_dssoa.rpl1
-rw-r--r--testdata/val_negcache_nodata.rpl1
-rw-r--r--testdata/val_negcache_nta.rpl1
-rw-r--r--testdata/val_negcache_nxdomain.rpl1
-rw-r--r--testdata/val_noadwhennodo.rpl1
-rw-r--r--testdata/val_nodata.rpl1
-rw-r--r--testdata/val_nodata_ent.rpl1
-rw-r--r--testdata/val_nodata_entnx.rpl1
-rw-r--r--testdata/val_nodata_entwc.rpl1
-rw-r--r--testdata/val_nodata_failsig.rpl1
-rw-r--r--testdata/val_nodata_failwc.rpl1
-rw-r--r--testdata/val_nodata_hasdata.rpl1
-rw-r--r--testdata/val_nodata_zonecut.rpl1
-rw-r--r--testdata/val_nodatawc.rpl1
-rw-r--r--testdata/val_nodatawc_badce.rpl1
-rw-r--r--testdata/val_nodatawc_nodeny.rpl1
-rw-r--r--testdata/val_nodatawc_one.rpl1
-rw-r--r--testdata/val_nsec3_b1_nameerror.rpl1
-rw-r--r--testdata/val_nsec3_b1_nameerror_noce.rpl1
-rw-r--r--testdata/val_nsec3_b1_nameerror_nonc.rpl1
-rw-r--r--testdata/val_nsec3_b1_nameerror_nowc.rpl1
-rw-r--r--testdata/val_nsec3_b21_nodataent.rpl1
-rw-r--r--testdata/val_nsec3_b21_nodataent_wr.rpl1
-rw-r--r--testdata/val_nsec3_b2_nodata.rpl1
-rw-r--r--testdata/val_nsec3_b3_optout.rpl1
-rw-r--r--testdata/val_nsec3_b3_optout_negcache.rpl1
-rw-r--r--testdata/val_nsec3_b3_optout_noce.rpl1
-rw-r--r--testdata/val_nsec3_b3_optout_nonc.rpl1
-rw-r--r--testdata/val_nsec3_b4_wild.rpl1
-rw-r--r--testdata/val_nsec3_b4_wild_wr.rpl1
-rw-r--r--testdata/val_nsec3_b5_wcnodata.rpl1
-rw-r--r--testdata/val_nsec3_b5_wcnodata_noce.rpl1
-rw-r--r--testdata/val_nsec3_b5_wcnodata_nonc.rpl1
-rw-r--r--testdata/val_nsec3_b5_wcnodata_nowc.rpl1
-rw-r--r--testdata/val_nsec3_cname_ds.rpl1
-rw-r--r--testdata/val_nsec3_cname_par.rpl1
-rw-r--r--testdata/val_nsec3_cname_sub.rpl1
-rw-r--r--testdata/val_nsec3_cnametocnamewctoposwc.rpl1
-rw-r--r--testdata/val_nsec3_iter_high.rpl1
-rw-r--r--testdata/val_nsec3_nodatawccname.rpl1
-rw-r--r--testdata/val_nsec3_nods.rpl1
-rw-r--r--testdata/val_nsec3_nods_badopt.rpl1
-rw-r--r--testdata/val_nsec3_nods_badsig.rpl1
-rw-r--r--testdata/val_nsec3_nods_negcache.rpl1
-rw-r--r--testdata/val_nsec3_optout_ad.rpl1
-rw-r--r--testdata/val_nsec3_wcany.rpl1
-rw-r--r--testdata/val_nsec3_wcany_nodeny.rpl1
-rw-r--r--testdata/val_nx.rpl1
-rw-r--r--testdata/val_nx_failwc.rpl1
-rw-r--r--testdata/val_nx_nodeny.rpl1
-rw-r--r--testdata/val_nx_nowc.rpl1
-rw-r--r--testdata/val_nx_nsec3_collision.rpl1
-rw-r--r--testdata/val_nx_nsec3_params.rpl1
-rw-r--r--testdata/val_nx_overreach.rpl1
-rw-r--r--testdata/val_pos_truncns.rpl1
-rw-r--r--testdata/val_positive.rpl1
-rw-r--r--testdata/val_positive_wc.rpl1
-rw-r--r--testdata/val_positive_wc_nodeny.rpl1
-rw-r--r--testdata/val_qds_badanc.rpl1
-rw-r--r--testdata/val_qds_oneanc.rpl1
-rw-r--r--testdata/val_qds_twoanc.rpl1
-rw-r--r--testdata/val_refer_unsignadd.rpl1
-rw-r--r--testdata/val_referd.rpl1
-rw-r--r--testdata/val_referglue.rpl1
-rw-r--r--testdata/val_rrsig.rpl1
-rw-r--r--testdata/val_secds.rpl1
-rw-r--r--testdata/val_spurious_ns.rpl1
-rw-r--r--testdata/val_ta_algo_dnskey.rpl1
-rw-r--r--testdata/val_ta_algo_dnskey_dp.rpl1
-rw-r--r--testdata/val_ta_algo_missing.rpl1
-rw-r--r--testdata/val_ta_algo_missing_dp.rpl1
-rw-r--r--testdata/val_unalgo_anchor.rpl1
-rw-r--r--testdata/val_unalgo_dlv.rpl1
-rw-r--r--testdata/val_unalgo_ds.rpl1
-rw-r--r--testdata/val_unsec_cname.rpl1
-rw-r--r--testdata/val_unsecds.rpl1
-rw-r--r--testdata/val_unsecds_negcache.rpl1
-rw-r--r--testdata/val_unsecds_qtypeds.rpl1
-rw-r--r--testdata/val_wild_pos.rpl1
-rw-r--r--testdata/views.rpl1
-rw-r--r--util/alloc.c42
-rw-r--r--util/alloc.h8
-rw-r--r--util/config_file.c20
-rw-r--r--util/config_file.h6
-rw-r--r--util/configlexer.c5150
-rw-r--r--util/configlexer.lex9
-rw-r--r--util/configparser.c1943
-rw-r--r--util/configparser.h14
-rw-r--r--util/configparser.y34
-rw-r--r--util/net_help.c120
-rw-r--r--util/net_help.h12
-rw-r--r--util/netevent.c72
-rw-r--r--winrc/win_svc.c9
265 files changed, 4472 insertions, 3691 deletions
diff --git a/Makefile.in b/Makefile.in
index 362d6a716612..a62aaaf427f1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -327,7 +327,7 @@ unbound-control$(EXEEXT): $(CONTROL_OBJ_LINK) libunbound.la
$(LINK) -o $@ $(CONTROL_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS)
unbound-host$(EXEEXT): $(HOST_OBJ_LINK) libunbound.la
- $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(LIBS)
+ $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(SSLLIB) $(LIBS)
unbound-anchor$(EXEEXT): $(UBANCHOR_OBJ_LINK) libunbound.la
$(LINK) -o $@ $(UBANCHOR_OBJ_LINK) -L. -L.libs -lunbound -lexpat $(SSLLIB) $(LIBS)
@@ -360,7 +360,7 @@ memstats$(EXEEXT): $(MEMSTATS_OBJ_LINK)
$(LINK) -o $@ $(MEMSTATS_OBJ_LINK) $(SSLLIB) $(LIBS)
asynclook$(EXEEXT): $(ASYNCLOOK_OBJ_LINK) libunbound.la
- $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) $(LIBS) -L. -L.libs -lunbound
+ $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) -L. -L.libs -lunbound $(SSLLIB) $(LIBS)
streamtcp$(EXEEXT): $(STREAMTCP_OBJ_LINK)
$(LINK) -o $@ $(STREAMTCP_OBJ_LINK) $(SSLLIB) $(LIBS)
@@ -1463,7 +1463,7 @@ win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc
$(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \
$(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
$(srcdir)/daemon/remote.h \
- $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h
+ $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h
w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h
unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \
$(srcdir)/winrc/w_inst.h
diff --git a/compat/arc4random.c b/compat/arc4random.c
index a09665c5df22..bcef0ec90f8a 100644
--- a/compat/arc4random.c
+++ b/compat/arc4random.c
@@ -71,6 +71,72 @@ static struct {
static inline void _rs_rekey(u_char *dat, size_t datlen);
+/*
+ * Basic sanity checking; wish we could do better.
+ */
+static int
+fallback_gotdata(char *buf, size_t len)
+{
+ char any_set = 0;
+ size_t i;
+
+ for (i = 0; i < len; ++i)
+ any_set |= buf[i];
+ if (any_set == 0)
+ return -1;
+ return 0;
+}
+
+/* fallback for getentropy in case libc returns failure */
+static int
+fallback_getentropy_urandom(void *buf, size_t len)
+{
+ size_t i;
+ int fd, flags;
+ int save_errno = errno;
+
+start:
+
+ flags = O_RDONLY;
+#ifdef O_NOFOLLOW
+ flags |= O_NOFOLLOW;
+#endif
+#ifdef O_CLOEXEC
+ flags |= O_CLOEXEC;
+#endif
+ fd = open("/dev/urandom", flags, 0);
+ if (fd == -1) {
+ if (errno == EINTR)
+ goto start;
+ goto nodevrandom;
+ }
+#ifndef O_CLOEXEC
+# ifdef HAVE_FCNTL
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+# endif
+#endif
+ for (i = 0; i < len; ) {
+ size_t wanted = len - i;
+ ssize_t ret = read(fd, (char*)buf + i, wanted);
+
+ if (ret == -1) {
+ if (errno == EAGAIN || errno == EINTR)
+ continue;
+ close(fd);
+ goto nodevrandom;
+ }
+ i += ret;
+ }
+ close(fd);
+ if (fallback_gotdata(buf, len) == 0) {
+ errno = save_errno;
+ return 0; /* satisfied */
+ }
+nodevrandom:
+ errno = EIO;
+ return -1;
+}
+
static inline void
_rs_init(u_char *buf, size_t n)
{
@@ -114,11 +180,14 @@ _rs_stir(void)
u_char rnd[KEYSZ + IVSZ];
if (getentropy(rnd, sizeof rnd) == -1) {
+ if(errno != ENOSYS ||
+ fallback_getentropy_urandom(rnd, sizeof rnd) == -1) {
#ifdef SIGKILL
- raise(SIGKILL);
+ raise(SIGKILL);
#else
- exit(9); /* windows */
+ exit(9); /* windows */
#endif
+ }
}
if (!rs)
diff --git a/config.h.in b/config.h.in
index 922389428776..04356f334edf 100644
--- a/config.h.in
+++ b/config.h.in
@@ -30,6 +30,9 @@
internal symbols */
#undef EXPORT_ALL_SYMBOLS
+/* Define to 1 if you have the `accept4' function. */
+#undef HAVE_ACCEPT4
+
/* Define to 1 if you have the `arc4random' function. */
#undef HAVE_ARC4RANDOM
diff --git a/configure b/configure
index 6535a5a969c2..3f38929d8fd8 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for unbound 1.7.1.
+# Generated by GNU Autoconf 2.69 for unbound 1.7.2.
#
# Report bugs to <unbound-bugs@nlnetlabs.nl>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='unbound'
PACKAGE_TARNAME='unbound'
-PACKAGE_VERSION='1.7.1'
-PACKAGE_STRING='unbound 1.7.1'
+PACKAGE_VERSION='1.7.2'
+PACKAGE_STRING='unbound 1.7.2'
PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl'
PACKAGE_URL=''
@@ -1440,7 +1440,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures unbound 1.7.1 to adapt to many kinds of systems.
+\`configure' configures unbound 1.7.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1505,7 +1505,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of unbound 1.7.1:";;
+ short | recursive ) echo "Configuration of unbound 1.7.2:";;
esac
cat <<\_ACEOF
@@ -1722,7 +1722,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-unbound configure 1.7.1
+unbound configure 1.7.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2431,7 +2431,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by unbound $as_me 1.7.1, which was
+It was created by unbound $as_me 1.7.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2783,11 +2783,11 @@ UNBOUND_VERSION_MAJOR=1
UNBOUND_VERSION_MINOR=7
-UNBOUND_VERSION_MICRO=1
+UNBOUND_VERSION_MICRO=2
LIBUNBOUND_CURRENT=7
-LIBUNBOUND_REVISION=9
+LIBUNBOUND_REVISION=10
LIBUNBOUND_AGE=5
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -2848,6 +2848,7 @@ LIBUNBOUND_AGE=5
# 1.6.8 had 7:7:5
# 1.7.0 had 7:8:5
# 1.7.1 had 7:9:5
+# 1.7.2 had 7:10:5
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -19467,7 +19468,7 @@ else
WINDRES="$ac_cv_prog_WINDRES"
fi
- LIBS="$LIBS -liphlpapi"
+ LIBS="$LIBS -liphlpapi -lcrypt32"
WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
@@ -19701,7 +19702,7 @@ if test "$ac_res" != no; then :
fi
-for ac_func in tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget
+for ac_func in tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -20854,6 +20855,8 @@ if test "${enable_cachedb+set}" = set; then :
enableval=$enable_cachedb;
fi
+# turn on cachedb when hiredis support is enabled.
+if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
case "$enable_cachedb" in
yes)
@@ -21041,7 +21044,7 @@ _ACEOF
-version=1.7.1
+version=1.7.2
date=`date +'%b %e, %Y'`
@@ -21560,7 +21563,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by unbound $as_me 1.7.1, which was
+This file was extended by unbound $as_me 1.7.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21626,7 +21629,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-unbound config.status 1.7.1
+unbound config.status 1.7.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 435147eebdec..b4c484ec976f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4)
# must be numbers. ac_defun because of later processing
m4_define([VERSION_MAJOR],[1])
m4_define([VERSION_MINOR],[7])
-m4_define([VERSION_MICRO],[1])
+m4_define([VERSION_MICRO],[2])
AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound)
AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
LIBUNBOUND_CURRENT=7
-LIBUNBOUND_REVISION=9
+LIBUNBOUND_REVISION=10
LIBUNBOUND_AGE=5
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -79,6 +79,7 @@ LIBUNBOUND_AGE=5
# 1.6.8 had 7:7:5
# 1.7.0 had 7:8:5
# 1.7.1 had 7:9:5
+# 1.7.2 had 7:10:5
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -1245,7 +1246,7 @@ if test "$USE_WINSOCK" = 1; then
#include <windows.h>
])
AC_CHECK_TOOL(WINDRES, windres)
- LIBS="$LIBS -liphlpapi"
+ LIBS="$LIBS -liphlpapi -lcrypt32"
WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
AC_SUBST(WINAPPS)
WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
@@ -1318,7 +1319,7 @@ AC_INCLUDES_DEFAULT
#endif
])
AC_SEARCH_LIBS([setusercontext], [util])
-AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget])
+AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4])
AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])])
AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])])
@@ -1488,6 +1489,8 @@ dnsc_DNSCRYPT([
# check for cachedb if requested
AC_ARG_ENABLE(cachedb, AC_HELP_STRING([--enable-cachedb], [enable cachedb module that can use external cache storage]))
+# turn on cachedb when hiredis support is enabled.
+if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
case "$enable_cachedb" in
yes)
AC_DEFINE([USE_CACHEDB], [1], [Define to 1 to use cachedb support])
diff --git a/contrib/libunbound.pc.in b/contrib/libunbound.pc.in
index 130bef520372..0cb9f875a7f2 100644
--- a/contrib/libunbound.pc.in
+++ b/contrib/libunbound.pc.in
@@ -7,7 +7,7 @@ Name: unbound
Description: Library with validating, recursive, and caching DNS resolver
URL: http://www.unbound.net
Version: @PACKAGE_VERSION@
-Requires: libcrypto libssl @PC_LIBEVENT_DEPENDENCY@ @PC_PY_DEPENDENCY@
-Libs: -L${libdir} -lunbound
+Requires: @PC_LIBEVENT_DEPENDENCY@ @PC_PY_DEPENDENCY@
+Libs: -L${libdir} -lunbound -lssl -lcrypto
Libs.private: @SSLLIB@ @LIBS@
Cflags: -I${includedir}
diff --git a/daemon/acl_list.c b/daemon/acl_list.c
index f7d71b9fddb9..c16a920d99ee 100644
--- a/daemon/acl_list.c
+++ b/daemon/acl_list.c
@@ -111,6 +111,8 @@ acl_list_str_cfg(struct acl_list* acl, const char* str, const char* s2,
control = acl_refuse_non_local;
else if(strcmp(s2, "allow_snoop") == 0)
control = acl_allow_snoop;
+ else if(strcmp(s2, "allow_setrd") == 0)
+ control = acl_allow_setrd;
else {
log_err("access control type %s unknown", str);
return 0;
diff --git a/daemon/acl_list.h b/daemon/acl_list.h
index d0d42bfaebf6..3a3b94bc5879 100644
--- a/daemon/acl_list.h
+++ b/daemon/acl_list.h
@@ -63,7 +63,9 @@ enum acl_access {
/** allow full access for recursion (+RD) queries */
acl_allow,
/** allow full access for all queries, recursion and cache snooping */
- acl_allow_snoop
+ acl_allow_snoop,
+ /** allow full access for recursion queries and set RD flag regardless of request */
+ acl_allow_setrd
};
/**
diff --git a/daemon/daemon.c b/daemon/daemon.c
index 85ae1e0a15ac..6820e1181451 100644
--- a/daemon/daemon.c
+++ b/daemon/daemon.c
@@ -704,6 +704,7 @@ daemon_cleanup(struct daemon* daemon)
free(daemon->workers);
daemon->workers = NULL;
daemon->num = 0;
+ alloc_clear_special(&daemon->superalloc);
#ifdef USE_DNSTAP
dt_delete(daemon->dtenv);
daemon->dtenv = NULL;
diff --git a/daemon/unbound.c b/daemon/unbound.c
index e4caf004819e..138311013519 100644
--- a/daemon/unbound.c
+++ b/daemon/unbound.c
@@ -431,7 +431,7 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode,
fatal_exit("could not set up listen SSL_CTX");
}
if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL,
- cfg->tls_cert_bundle)))
+ cfg->tls_cert_bundle, cfg->tls_win_cert)))
fatal_exit("could not set up connect SSL_CTX");
#endif
diff --git a/daemon/worker.c b/daemon/worker.c
index 6121c7dbe363..44a989a4e945 100644
--- a/daemon/worker.c
+++ b/daemon/worker.c
@@ -1351,6 +1351,13 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
}
/* If this request does not have the recursion bit set, verify
+ * ACLs allow the recursion bit to be treated as set. */
+ if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
+ acl == acl_allow_setrd ) {
+ LDNS_RD_SET(sldns_buffer_begin(c->buffer));
+ }
+
+ /* If this request does not have the recursion bit set, verify
* ACLs allow the snooping. */
if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
acl != acl_allow_snoop ) {
diff --git a/doc/Changelog b/doc/Changelog
index b44bdec8371b..6a09942663f1 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,8 +1,80 @@
+4 June 2018: Wouter
+ - Fix deadlock caused by incoming notify for auth-zone.
+ - tag for 1.7.2rc1
+
+1 June 2018: Wouter
+ - Rename additional-tls-port to tls-additional-ports.
+ The older name is accepted for backwards compatibility.
+
+30 May 2018: Wouter
+ - Patch from Syzdek: Add ability to ignore RD bit and treat all
+ requests as if the RD bit is set.
+
+29 May 2018: Wouter
+ - in compat/arc4random call getentropy_urandom when getentropy fails
+ with ENOSYS.
+ - Fix that fallback for windows port.
+
+28 May 2018: Wouter
+ - Fix windows tcp and tls spin on events.
+ - Add routine from getdns to add windows cert store to the SSL_CTX.
+ - tls-win-cert option that adds the system certificate store for
+ authenticating DNS-over-TLS connections. It can be used instead
+ of the tls-cert-bundle option, or with it to add certificates.
+
+25 May 2018: Wouter
+ - For TCP and TLS connections that don't establish, perform address
+ update in infra cache, so future selections can exclude them.
+ - Fix that tcp sticky events are removed for closed fd on windows.
+ - Fix close events for tcp only.
+
+24 May 2018: Wouter
+ - Fix that libunbound can do DNS-over-TLS, when configured.
+ - Fix that windows unbound service can use DNS-over-TLS.
+ - unbound-host initializes ssl (for potential DNS-over-TLS usage
+ inside libunbound), when ssl upstream or a cert-bundle is configured.
+
+23 May 2018: Wouter
+ - Use accept4 to speed up incoming TCP (and TLS) connections,
+ available on Linux, FreeBSD and OpenBSD.
+
+17 May 2018: Ralph
+ - Qname minimisation default changed to yes.
+
+15 May 2018: Wouter
+ - Fix low-rtt-pct to low-rtt-permil, as it is parts in one thousand.
+
+11 May 2018: Wouter
+ - Fix contrib/libunbound.pc for libssl libcrypto references,
+ from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226914
+
+7 May 2018: Wouter
+ - Fix windows to not have sticky TLS events for TCP.
+ - Fix read of DNS over TLS length and data in one read call.
+ - Fix mesh state assertion failure due to callback removal.
+
+3 May 2018: Wouter
+ - Fix that configure --with-libhiredis also turns on cachedb.
+ - Fix gcc 8 buffer warning in testcode.
+ - Fix function type cast warning in libunbound context callback type.
+
+2 May 2018: Wouter
+ - Fix fail to reject dead peers in forward-zone, with ssl-upstream.
+
+1 May 2018: Wouter
+ - Fix that unbound-control reload frees the rrset keys and returns
+ the memory pages to the system.
+
+30 April 2018: Wouter
+ - Fix spelling error in man page and note defaults as no instead of
+ off.
+
26 April 2018: Wouter
- Fix for crash in daemon_cleanup with dnstap during reload,
from Saksham Manchanda.
- Also that for dnscrypt.
- - tag for 1.7.1rc1 release.
+ - tag for 1.7.1rc1 release. Became 1.7.1 release on 3 May, trunk
+ is from here 1.7.2 in development.
25 April 2018: Ralph
- Fix memory leak when caching wildcard records for aggressive NSEC use
diff --git a/doc/README b/doc/README
index c8bfd43cd00b..6d3bb8674eba 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.7.1
+README for Unbound 1.7.2
Copyright 2007 NLnet Labs
http://unbound.net
diff --git a/doc/example.conf.in b/doc/example.conf.in
index 2260ba2544ab..072bd8d21138 100644
--- a/doc/example.conf.in
+++ b/doc/example.conf.in
@@ -1,7 +1,7 @@
#
# Example configuration file.
#
-# See unbound.conf(5) man page, version 1.7.1.
+# See unbound.conf(5) man page, version 1.7.2.
#
# this is a comment.
@@ -223,7 +223,8 @@ server:
# to this server. Specify classless netblocks with /size and action.
# By default everything is refused, except for localhost.
# Choose deny (drop message), refuse (polite error reply),
- # allow (recursive ok), allow_snoop (recursive and nonrecursive ok)
+ # allow (recursive ok), allow_setrd (recursive ok, rd bit is forced on),
+ # allow_snoop (recursive and nonrecursive ok)
# deny_non_local (drop queries unless can be answered from local-data)
# refuse_non_local (like deny_non_local but polite error reply).
# access-control: 0.0.0.0/0 refuse
@@ -372,7 +373,7 @@ server:
# Sent minimum amount of information to upstream servers to enhance
# privacy. Only sent minimum required labels of the QNAME and set QTYPE
# to A when possible.
- # qname-minimisation: no
+ # qname-minimisation: yes
# QNAME minimisation in strict mode. Do not fall-back to sending full
# QNAME to potentially broken nameservers. A lot of domains will not be
@@ -681,8 +682,11 @@ server:
# Certificates used to authenticate connections made upstream.
# tls-cert-bundle: ""
+ # Add system certs to the cert bundle, from the Windows Cert Store
+ # tls-win-cert: no
+
# Also serve tls on these port numbers (eg. 443, ...), by listing
- # additional-tls-port: portno for each of the port numbers.
+ # tls-additional-ports: portno for each of the port numbers.
# DNS64 prefix. Must be specified when DNS64 is use.
# Enable dns64 in module-config. Used to synthesize IPv6 from IPv4.
@@ -725,7 +729,7 @@ server:
# low-rtt: 45
# select low rtt this many times out of 1000. 0 means the fast server
# select is disabled. prefetches are not sped up.
- # low-rtt-pct: 0
+ # low-rtt-permil: 0
# Specific options for ipsecmod. unbound needs to be configured with
# --enable-ipsecmod for these to take effect.
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index 24dfb9ef7047..aac99580d5c3 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "libunbound" "3" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" libunbound.3 -- unbound library functions manual
.\"
@@ -43,7 +43,7 @@
.B ub_ctx_zone_remove,
.B ub_ctx_data_add,
.B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.7.1 functions.
+\- Unbound DNS validating resolver 1.7.2 functions.
.SH "SYNOPSIS"
.B #include <unbound.h>
.LP
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index 2c8140de8cc4..1b588b851cde 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "unbound-anchor" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\"
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index a4cddb1aff13..311e48dcee21 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "unbound-checkconf" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" unbound-checkconf.8 -- unbound configuration checker manual
.\"
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index 0ff6b8e7e88a..566a175331c7 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "unbound-control" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" unbound-control.8 -- unbound remote control manual
.\"
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index ab2f00be9d0a..68acc54ba7f6 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "unbound\-host" "1" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" unbound-host.1 -- unbound DNS lookup utility
.\"
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index cef25e39c750..0d27b75a0873 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "unbound" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" unbound.8 -- unbound manual
.\"
@@ -9,7 +9,7 @@
.\"
.SH "NAME"
.B unbound
-\- Unbound DNS validating resolver 1.7.1.
+\- Unbound DNS validating resolver 1.7.2.
.SH "SYNOPSIS"
.B unbound
.RB [ \-h ]
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index 94ddf70e46d6..9c3892279c3e 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
+.TH "unbound.conf" "5" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
.\"
.\" unbound.conf.5 -- unbound.conf manual
.\"
@@ -403,6 +403,8 @@ Enabled or disable whether the upstream queries use TLS only for transport.
Default is no. Useful in tunneling scenarios. The TLS contains plain DNS in
TCP wireformat. The other server must support this (see
\fBtls\-service\-key\fR).
+If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to
+load CA certs, otherwise the connections cannot be authenticated.
.TP
.B ssl\-upstream: \fI<yes or no>
Alternate syntax for \fBtls\-upstream\fR. If both are present in the config
@@ -444,8 +446,14 @@ urls, and also DNS over TLS connections.
.B ssl\-cert\-bundle: \fI<file>
Alternate syntax for \fBtls\-cert\-bundle\fR.
.TP
-.B additional\-tls\-port: \fI<portnr>
-List portnumbers as additional\-tls\-port, and when interfaces are defined,
+.B tls\-win\-cert: \fI<yes or no>
+Add the system certificates to the cert bundle certificates for authentication.
+If no cert bundle, it uses only these certificates. Default is no.
+On windows this option uses the certificates from the cert store. Use
+the tls\-cert\-bundle option on other systems.
+.TP
+.B tls\-additional\-ports: \fI<portnr>
+List portnumbers as tls\-additional\-ports, and when interfaces are defined,
eg. with the @port suffix, as this port number, they provide dns over TLS
service. Can list multiple, each on a new statement.
.TP
@@ -461,7 +469,8 @@ Default is yes.
.B access\-control: \fI<IP netblock> <action>
The netblock is given as an IP4 or IP6 address with /size appended for a
classless network block. The action can be \fIdeny\fR, \fIrefuse\fR,
-\fIallow\fR, \fIallow_snoop\fR, \fIdeny_non_local\fR or \fIrefuse_non_local\fR.
+\fIallow\fR, \fIallow_setrd\fR, \fIallow_snoop\fR, \fIdeny_non_local\fR or
+\fIrefuse_non_local\fR.
The most specific netblock match is used, if none match \fIdeny\fR is used.
.IP
The action \fIdeny\fR stops queries from hosts from that netblock.
@@ -480,6 +489,15 @@ in the reply. This supports normal operations where nonrecursive queries
are made for the authoritative data. For nonrecursive queries any replies
from the dynamic cache are refused.
.IP
+The \fIallow_setrd\fR action ignores the recursion desired (RD) bit and
+treats all requests as if the recursion desired bit is set. Note that this
+behavior violates RFC 1034 which states that a name server should never perform
+recursive service unless asked via the RD bit since this interferes with
+trouble shooting of name servers and their databases. This prohibited behavior
+may be useful if another DNS server must forward requests for specific
+zones to a resolver DNS server, but only supports stub domains and
+sends queries to the resolver DNS server with the RD bit cleared.
+.IP
The action \fIallow_snoop\fR gives nonrecursive access too. This give
both recursive and non recursive access. The name \fIallow_snoop\fR refers
to cache snooping, a technique to use nonrecursive queries to examine
@@ -691,7 +709,7 @@ infrastructure data. Validates the replies if trust anchors are configured
and the zones are signed. This enforces DNSSEC validation on nameserver
NS sets and the nameserver addresses that are encountered on the referral
path to the answer.
-Default off, because it burdens the authority servers, and it is
+Default no, because it burdens the authority servers, and it is
not RFC standard, and could lead to performance problems because of the
extra query load that is generated. Experimental option.
If you enable it consider adding more numbers after the target\-fetch\-policy
@@ -722,7 +740,7 @@ Send minimum amount of information to upstream servers to enhance privacy.
Only sent minimum required labels of the QNAME and set QTYPE to A when
possible. Best effort approach; full QNAME and original QTYPE will be sent when
upstream replies with a RCODE other than NOERROR, except when receiving
-NXDOMAIN from a DNSSEC signed zone. Default is off.
+NXDOMAIN from a DNSSEC signed zone. Default is yes.
.TP
.B qname\-minimisation\-strict: \fI<yes or no>
QNAME minimisation in strict mode. Do not fall-back to sending full QNAME to
@@ -1315,10 +1333,10 @@ factor given.
.TP 5
.B low\-rtt: \fI<msec time>
Set the time in millisecond that is considere a low ping time for fast
-server selection with the low\-rtt\-pct option, that turns this on or off.
+server selection with the low\-rtt\-permil option, that turns this on or off.
The default is 45 msec, a number from IPv6 quick response documents.
.TP 5
-.B low\-rtt\-pct: \fI<number>
+.B low\-rtt\-permil: \fI<number>
Specify how many times out of 1000 to pick the fast server from the low
rtt band. 0 turns the feature off. A value of 900 would pick the fast
server when such fast servers are available 90 percent of the time, and
@@ -1328,7 +1346,7 @@ sped up, because there is no one waiting for it, and it presents a good
moment to perform server exploration. The low\-rtt option can be used
to specify which servers are picked for fast server selection, servers
with a ping roundtrip time below that value are considered.
-The default for low\-rtt\-pct is 0.
+The default for low\-rtt\-permil is 0.
.SS "Remote Control Options"
In the
.B remote\-control:
@@ -1429,7 +1447,7 @@ IP address of stub zone nameserver. Can be IP 4 or IP 6.
To use a nondefault port for DNS communication append '@' with the port number.
.TP
.B stub\-prime: \fI<yes or no>
-This option is by default off. If enabled it performs NS set priming,
+This option is by default no. If enabled it performs NS set priming,
which is similar to root hints, where it starts using the list of nameservers
currently published by the zone. Thus, if the hint list is slightly outdated,
the resolver picks up a correct list online.
@@ -1490,6 +1508,8 @@ The default is no.
.B forward\-tls\-upstream: \fI<yes or no>
Enabled or disable whether the queries to this forwarder use TLS for transport.
Default is no.
+If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to
+load CA certs, otherwise the connections cannot be authenticated.
.TP
.B forward\-ssl\-upstream: \fI<yes or no>
Alternate syntax for \fBforward\-tls\-upstream\fR.
@@ -1827,7 +1847,7 @@ If Unbound was built with
on a system that has installed the hiredis C client library of Redis,
then the "redis" backend can be used.
This backend communicates with the specified Redis server over a TCP
-connection to store and retrive cache data.
+connection to store and retrieve cache data.
It can be used as a persistent and/or shared cache backend.
It should be noted that Unbound never removes data stored in the Redis server,
even if some data have expired in terms of DNS TTL or the Redis server has
diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c
index 752474cd8e6f..0a8f7700fcf0 100644
--- a/iterator/iter_utils.c
+++ b/iterator/iter_utils.c
@@ -329,9 +329,9 @@ iter_filter_order(struct iter_env* iter_env, struct module_env* env,
return 0 to force the caller to fetch more */
}
- if(env->cfg->low_rtt_pct != 0 && prefetch == 0 &&
+ if(env->cfg->low_rtt_permil != 0 && prefetch == 0 &&
low_rtt < env->cfg->low_rtt &&
- ub_random_max(env->rnd, 1000) < env->cfg->low_rtt_pct) {
+ ub_random_max(env->rnd, 1000) < env->cfg->low_rtt_permil) {
/* the query is not prefetch, but for a downstream client,
* there is a low_rtt (fast) server. We choose that x% of the
* time */
diff --git a/libunbound/context.c b/libunbound/context.c
index 8bff713bca30..6ac8086bf672 100644
--- a/libunbound/context.c
+++ b/libunbound/context.c
@@ -130,7 +130,7 @@ find_id(struct ub_ctx* ctx, int* id)
struct ctx_query*
context_new(struct ub_ctx* ctx, const char* name, int rrtype, int rrclass,
- ub_callback_type cb, void* cbarg)
+ ub_callback_type cb, ub_event_callback_type cb_event, void* cbarg)
{
struct ctx_query* q = (struct ctx_query*)calloc(1, sizeof(*q));
if(!q) return NULL;
@@ -142,8 +142,9 @@ context_new(struct ub_ctx* ctx, const char* name, int rrtype, int rrclass,
}
lock_basic_unlock(&ctx->cfglock);
q->node.key = &q->querynum;
- q->async = (cb != NULL);
+ q->async = (cb != NULL || cb_event != NULL);
q->cb = cb;
+ q->cb_event = cb_event;
q->cb_arg = cbarg;
q->res = (struct ub_result*)calloc(1, sizeof(*q->res));
if(!q->res) {
diff --git a/libunbound/context.h b/libunbound/context.h
index 684d11effbc4..11147226a8cc 100644
--- a/libunbound/context.h
+++ b/libunbound/context.h
@@ -45,6 +45,7 @@
#include "util/rbtree.h"
#include "services/modstack.h"
#include "libunbound/unbound.h"
+#include "libunbound/unbound-event.h"
#include "util/data/packed_rrset.h"
struct libworker;
struct tube;
@@ -148,8 +149,10 @@ struct ctx_query {
/** was this query cancelled (for bg worker) */
int cancelled;
- /** for async query, the callback function */
+ /** for async query, the callback function of type ub_callback_type */
ub_callback_type cb;
+ /** for event callbacks the type is ub_event_callback_type */
+ ub_event_callback_type cb_event;
/** for async query, the callback user arg */
void* cb_arg;
@@ -238,11 +241,13 @@ void context_query_delete(struct ctx_query* q);
* @param rrtype: type
* @param rrclass: class
* @param cb: callback for async, or NULL for sync.
+ * @param cb_event: event callback for async, or NULL for sync.
* @param cbarg: user arg for async queries.
* @return new ctx_query or NULL for malloc failure.
*/
struct ctx_query* context_new(struct ub_ctx* ctx, const char* name, int rrtype,
- int rrclass, ub_callback_type cb, void* cbarg);
+ int rrclass, ub_callback_type cb, ub_event_callback_type cb_event,
+ void* cbarg);
/**
* Get a new alloc. Creates a new one or uses a cached one.
diff --git a/libunbound/libunbound.c b/libunbound/libunbound.c
index b4cd7fa0bcc2..275e8d25a168 100644
--- a/libunbound/libunbound.c
+++ b/libunbound/libunbound.c
@@ -690,7 +690,7 @@ ub_resolve(struct ub_ctx* ctx, const char* name, int rrtype,
}
/* create new ctx_query and attempt to add to the list */
lock_basic_unlock(&ctx->cfglock);
- q = context_new(ctx, name, rrtype, rrclass, NULL, NULL);
+ q = context_new(ctx, name, rrtype, rrclass, NULL, NULL, NULL);
if(!q)
return UB_NOMEM;
/* become a resolver thread for a bit */
@@ -747,8 +747,7 @@ ub_resolve_event(struct ub_ctx* ctx, const char* name, int rrtype,
ub_comm_base_now(ctx->event_worker->base);
/* create new ctx_query and attempt to add to the list */
- q = context_new(ctx, name, rrtype, rrclass, (ub_callback_type)callback,
- mydata);
+ q = context_new(ctx, name, rrtype, rrclass, NULL, callback, mydata);
if(!q)
return UB_NOMEM;
@@ -793,7 +792,7 @@ ub_resolve_async(struct ub_ctx* ctx, const char* name, int rrtype,
}
/* create new ctx_query and attempt to add to the list */
- q = context_new(ctx, name, rrtype, rrclass, callback, mydata);
+ q = context_new(ctx, name, rrtype, rrclass, callback, NULL, mydata);
if(!q)
return UB_NOMEM;
diff --git a/libunbound/libworker.c b/libunbound/libworker.c
index 4380d69caa6c..3dcaa7818f7d 100644
--- a/libunbound/libworker.c
+++ b/libunbound/libworker.c
@@ -158,9 +158,9 @@ libworker_setup(struct ub_ctx* ctx, int is_bg, struct ub_event_base* eb)
hints_delete(w->env->hints);
w->env->hints = NULL;
}
- if(cfg->ssl_upstream) {
+ if(cfg->ssl_upstream || (cfg->tls_cert_bundle && cfg->tls_cert_bundle[0]) || cfg->tls_win_cert) {
w->sslctx = connect_sslctx_create(NULL, NULL,
- cfg->tls_cert_bundle);
+ cfg->tls_cert_bundle, cfg->tls_win_cert);
if(!w->sslctx) {
/* to make the setup fail after unlock */
hints_delete(w->env->hints);
@@ -637,7 +637,7 @@ libworker_event_done_cb(void* arg, int rcode, sldns_buffer* buf,
enum sec_status s, char* why_bogus)
{
struct ctx_query* q = (struct ctx_query*)arg;
- ub_event_callback_type cb = (ub_event_callback_type)q->cb;
+ ub_event_callback_type cb = q->cb_event;
void* cb_arg = q->cb_arg;
int cancelled = q->cancelled;
diff --git a/services/authzone.c b/services/authzone.c
index 1f56ac8cfc87..7ec280bafd92 100644
--- a/services/authzone.c
+++ b/services/authzone.c
@@ -3425,14 +3425,17 @@ xfr_process_notify(struct auth_xfer* xfr, struct module_env* env,
{
/* if the serial of notify is older than we have, don't fetch
* a zone, we already have it */
- if(has_serial && !xfr_serial_means_update(xfr, serial))
+ if(has_serial && !xfr_serial_means_update(xfr, serial)) {
+ lock_basic_unlock(&xfr->lock);
return;
+ }
/* start new probe with this addr src, or note serial */
if(!xfr_start_probe(xfr, env, fromhost)) {
/* not started because already in progress, note the serial */
xfr_note_notify_serial(xfr, has_serial, serial);
lock_basic_unlock(&xfr->lock);
}
+ /* successful end of start_probe unlocked xfr->lock */
}
int auth_zones_notify(struct auth_zones* az, struct module_env* env,
diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c
index 6639fd3fc5cf..a6922888aa49 100644
--- a/services/listen_dnsport.c
+++ b/services/listen_dnsport.c
@@ -1059,7 +1059,7 @@ set_recvpktinfo(int s, int family)
/** see if interface is ssl, its port number == the ssl port number */
static int
if_is_ssl(const char* ifname, const char* port, int ssl_port,
- struct config_strlist* additional_tls_port)
+ struct config_strlist* tls_additional_ports)
{
struct config_strlist* s;
char* p = strchr(ifname, '@');
@@ -1067,7 +1067,7 @@ if_is_ssl(const char* ifname, const char* port, int ssl_port,
return 1;
if(p && atoi(p+1) == ssl_port)
return 1;
- for(s = additional_tls_port; s; s = s->next) {
+ for(s = tls_additional_ports; s; s = s->next) {
if(p && atoi(p+1) == atoi(s->str))
return 1;
if(!p && atoi(port) == atoi(s->str))
@@ -1089,7 +1089,7 @@ if_is_ssl(const char* ifname, const char* port, int ssl_port,
* @param rcv: receive buffer size for UDP
* @param snd: send buffer size for UDP
* @param ssl_port: ssl service port number
- * @param additional_tls_port: list of additional ssl service port numbers.
+ * @param tls_additional_ports: list of additional ssl service port numbers.
* @param reuseport: try to set SO_REUSEPORT if nonNULL and true.
* set to false on exit if reuseport failed due to no kernel support.
* @param transparent: set IP_TRANSPARENT socket option.
@@ -1103,7 +1103,7 @@ static int
ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
struct addrinfo *hints, const char* port, struct listen_port** list,
size_t rcv, size_t snd, int ssl_port,
- struct config_strlist* additional_tls_port, int* reuseport,
+ struct config_strlist* tls_additional_ports, int* reuseport,
int transparent, int tcp_mss, int freebind, int use_systemd,
int dnscrypt_port)
{
@@ -1170,7 +1170,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
}
if(do_tcp) {
int is_ssl = if_is_ssl(ifname, port, ssl_port,
- additional_tls_port);
+ tls_additional_ports);
if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1,
&noip6, 0, 0, reuseport, transparent, tcp_mss,
freebind, use_systemd)) == -1) {
@@ -1356,7 +1356,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
do_auto, cfg->do_udp, do_tcp,
&hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->additional_tls_port,
+ cfg->ssl_port, cfg->tls_additional_ports,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
@@ -1370,7 +1370,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
do_auto, cfg->do_udp, do_tcp,
&hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->additional_tls_port,
+ cfg->ssl_port, cfg->tls_additional_ports,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
@@ -1386,7 +1386,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
do_tcp, &hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->additional_tls_port,
+ cfg->ssl_port, cfg->tls_additional_ports,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
@@ -1400,7 +1400,7 @@ listening_ports_open(struct config_file* cfg, int* reuseport)
if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
do_tcp, &hints, portbuf, &list,
cfg->so_rcvbuf, cfg->so_sndbuf,
- cfg->ssl_port, cfg->additional_tls_port,
+ cfg->ssl_port, cfg->tls_additional_ports,
reuseport, cfg->ip_transparent,
cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
cfg->dnscrypt_port)) {
diff --git a/services/mesh.c b/services/mesh.c
index 3027cef00900..41aba74ab260 100644
--- a/services/mesh.c
+++ b/services/mesh.c
@@ -1173,6 +1173,10 @@ void mesh_query_done(struct mesh_state* mstate)
while((c = mstate->cb_list) != NULL) {
/* take this cb off the list; so that the list can be
* changed, eg. by adds from the callback routine */
+ if(!mstate->reply_list && mstate->cb_list && !c->next) {
+ /* was a reply state, not anymore */
+ mstate->s.env->mesh->num_reply_states--;
+ }
mstate->cb_list = c->next;
if(!mstate->reply_list && !mstate->cb_list &&
mstate->super_set.count == 0)
diff --git a/services/outside_network.c b/services/outside_network.c
index 63dfe4961183..5700ef8a95e5 100644
--- a/services/outside_network.c
+++ b/services/outside_network.c
@@ -1301,8 +1301,8 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet,
w->ssl_upstream = sq->ssl_upstream;
w->tls_auth_name = sq->tls_auth_name;
#ifndef S_SPLINT_S
- tv.tv_sec = timeout;
- tv.tv_usec = 0;
+ tv.tv_sec = timeout/1000;
+ tv.tv_usec = (timeout%1000)*1000;
#endif
comm_timer_set(w->timer, &tv);
if(pend) {
@@ -1812,7 +1812,12 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error,
}
if(sq->tcp_upstream || sq->ssl_upstream) {
struct timeval now = *sq->outnet->now_tv;
- if(now.tv_sec > sq->last_sent_time.tv_sec ||
+ if(error!=NETEVENT_NOERROR) {
+ if(!infra_rtt_update(sq->outnet->infra, &sq->addr,
+ sq->addrlen, sq->zone, sq->zonelen, sq->qtype,
+ -1, sq->last_rtt, (time_t)now.tv_sec))
+ log_err("out of memory in TCP exponential backoff.");
+ } else if(now.tv_sec > sq->last_sent_time.tv_sec ||
(now.tv_sec == sq->last_sent_time.tv_sec &&
now.tv_usec > sq->last_sent_time.tv_usec)) {
/* convert from microseconds to milliseconds */
@@ -1822,7 +1827,7 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error,
log_assert(roundtime >= 0);
/* only store if less then AUTH_TIMEOUT seconds, it could be
* huge due to system-hibernated and we woke up */
- if(roundtime < TCP_AUTH_QUERY_TIMEOUT*1000) {
+ if(roundtime < 60000) {
if(!infra_rtt_update(sq->outnet->infra, &sq->addr,
sq->addrlen, sq->zone, sq->zonelen, sq->qtype,
roundtime, sq->last_rtt, (time_t)now.tv_sec))
@@ -1863,18 +1868,26 @@ serviced_tcp_initiate(struct serviced_query* sq, sldns_buffer* buff)
static int
serviced_tcp_send(struct serviced_query* sq, sldns_buffer* buff)
{
- int vs, rtt;
+ int vs, rtt, timeout;
uint8_t edns_lame_known;
if(!infra_host(sq->outnet->infra, &sq->addr, sq->addrlen, sq->zone,
sq->zonelen, *sq->outnet->now_secs, &vs, &edns_lame_known,
&rtt))
return 0;
+ sq->last_rtt = rtt;
if(vs != -1)
sq->status = serviced_query_TCP_EDNS;
else sq->status = serviced_query_TCP;
serviced_encode(sq, buff, sq->status == serviced_query_TCP_EDNS);
sq->last_sent_time = *sq->outnet->now_tv;
- sq->pending = pending_tcp_query(sq, buff, TCP_AUTH_QUERY_TIMEOUT,
+ if(sq->tcp_upstream || sq->ssl_upstream) {
+ timeout = rtt;
+ if(rtt >= 376 && rtt < TCP_AUTH_QUERY_TIMEOUT)
+ timeout = TCP_AUTH_QUERY_TIMEOUT;
+ } else {
+ timeout = TCP_AUTH_QUERY_TIMEOUT;
+ }
+ sq->pending = pending_tcp_query(sq, buff, timeout,
serviced_tcp_callback, sq);
return sq->pending != NULL;
}
diff --git a/services/outside_network.h b/services/outside_network.h
index 105f7651363f..01a307417eac 100644
--- a/services/outside_network.h
+++ b/services/outside_network.h
@@ -376,7 +376,7 @@ struct serviced_query {
int retry;
/** time last UDP was sent */
struct timeval last_sent_time;
- /** rtt of last (UDP) message */
+ /** rtt of last message */
int last_rtt;
/** do we know edns probe status already, for UDP_EDNS queries */
int edns_lame_known;
@@ -456,7 +456,7 @@ struct pending* pending_udp_query(struct serviced_query* sq,
* checks id.
* @param sq: serviced query.
* @param packet: wireformat query to send to destination. copied from.
- * @param timeout: in seconds from now.
+ * @param timeout: in milliseconds from now.
* Timer starts running now. Timer may expire if all buffers are used,
* without any query been sent to the server yet.
* @param callback: function to call on error, timeout or reply.
diff --git a/smallapp/unbound-host.c b/smallapp/unbound-host.c
index 93b5e4870011..cd1ffe3351d2 100644
--- a/smallapp/unbound-host.c
+++ b/smallapp/unbound-host.c
@@ -66,6 +66,14 @@
/* nss3 */
#include "nss.h"
#endif
+#ifdef HAVE_SSL
+#ifdef HAVE_OPENSSL_SSL_H
+#include <openssl/ssl.h>
+#endif
+#ifdef HAVE_OPENSSL_ERR_H
+#include <openssl/err.h>
+#endif
+#endif /* HAVE_SSL */
/** verbosity for unbound-host app */
static int verb = 0;
@@ -487,6 +495,26 @@ int main(int argc, char* argv[])
if(argc != 1)
usage();
+#ifdef HAVE_SSL
+#ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS
+ ERR_load_crypto_strings();
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
+ ERR_load_SSL_strings();
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_CRYPTO)
+ OpenSSL_add_all_algorithms();
+#else
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
+ | OPENSSL_INIT_ADD_ALL_DIGESTS
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
+ (void)SSL_library_init();
+#else
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+#endif
+#endif /* HAVE_SSL */
#ifdef HAVE_NSS
if(NSS_NoDB_Init(".") != SECSuccess) {
fprintf(stderr, "could not init NSS\n");
diff --git a/testcode/asynclook.c b/testcode/asynclook.c
index a2bdb62130b7..06bcf5ab862a 100644
--- a/testcode/asynclook.c
+++ b/testcode/asynclook.c
@@ -56,6 +56,15 @@
#undef free
#undef strdup
#endif
+#ifdef HAVE_SSL
+#ifdef HAVE_OPENSSL_SSL_H
+#include <openssl/ssl.h>
+#endif
+#ifdef HAVE_OPENSSL_ERR_H
+#include <openssl/err.h>
+#endif
+#endif /* HAVE_SSL */
+
/** keeping track of the async ids */
struct track_id {
@@ -459,6 +468,27 @@ int main(int argc, char** argv)
argc -= optind;
argv += optind;
+#ifdef HAVE_SSL
+#ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS
+ ERR_load_crypto_strings();
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
+ ERR_load_SSL_strings();
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_CRYPTO)
+ OpenSSL_add_all_algorithms();
+#else
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
+ | OPENSSL_INIT_ADD_ALL_DIGESTS
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
+ (void)SSL_library_init();
+#else
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+#endif
+#endif /* HAVE_SSL */
+
if(ext)
return ext_test(ctx, argc, argv);
diff --git a/testcode/fake_event.c b/testcode/fake_event.c
index 860e2e81e324..80e3685c09ef 100644
--- a/testcode/fake_event.c
+++ b/testcode/fake_event.c
@@ -1125,7 +1125,7 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet,
pend->addrlen = sq->addrlen;
pend->callback = callback;
pend->cb_arg = callback_arg;
- pend->timeout = timeout;
+ pend->timeout = timeout/1000;
pend->transport = transport_tcp;
pend->pkt = NULL;
pend->zone = NULL;
@@ -1218,7 +1218,7 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet,
log_assert(pend->zone);
pend->callback = callback;
pend->cb_arg = callback_arg;
- pend->timeout = UDP_AUTH_QUERY_TIMEOUT;
+ pend->timeout = UDP_AUTH_QUERY_TIMEOUT/1000;
pend->transport = transport_udp; /* pretend UDP */
pend->pkt = NULL;
pend->runtime = runtime;
@@ -1757,7 +1757,7 @@ int comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet,
}
pend->callback = fc->cb;
pend->cb_arg = fc->cb_arg;
- pend->timeout = UDP_AUTH_QUERY_TIMEOUT;
+ pend->timeout = UDP_AUTH_QUERY_TIMEOUT/1000;
pend->transport = transport_udp;
pend->pkt = NULL;
pend->runtime = runtime;
diff --git a/testcode/streamtcp.c b/testcode/streamtcp.c
index b494507def26..0a636395fd35 100644
--- a/testcode/streamtcp.c
+++ b/testcode/streamtcp.c
@@ -284,7 +284,7 @@ send_em(const char* svr, int udp, int usessl, int noanswer, int num, char** qs)
SSL* ssl = NULL;
if(!buf) fatal_exit("out of memory");
if(usessl) {
- ctx = connect_sslctx_create(NULL, NULL, NULL);
+ ctx = connect_sslctx_create(NULL, NULL, NULL, 0);
if(!ctx) fatal_exit("cannot create ssl ctx");
ssl = outgoing_ssl_fd(ctx, fd);
if(!ssl) fatal_exit("cannot create ssl");
diff --git a/testcode/testbound.c b/testcode/testbound.c
index 56b89c7f0d7e..071ac9c2a5b4 100644
--- a/testcode/testbound.c
+++ b/testcode/testbound.c
@@ -177,7 +177,8 @@ spool_temp_file(FILE* in, int* lineno, char* id)
while(isspace((unsigned char)*parse))
parse++;
if(strncmp(parse, "$INCLUDE_TEMPFILE", 17) == 0) {
- char l2[MAX_LINE_LEN];
+ char l2[MAX_LINE_LEN-30]; /* -30 makes it fit with
+ a preceding $INCLUDE in the buf line[] */
char* tid = parse+17;
while(isspace((unsigned char)*tid))
tid++;
diff --git a/testcode/unitmain.c b/testcode/unitmain.c
index 57883d183b9f..fecde80cc3d1 100644
--- a/testcode/unitmain.c
+++ b/testcode/unitmain.c
@@ -905,6 +905,9 @@ main(int argc, char* argv[])
#ifdef CLIENT_SUBNET
ecs_test();
#endif /* CLIENT_SUBNET */
+ if(log_get_lock()) {
+ lock_quick_destroy((lock_quick_type*)log_get_lock());
+ }
checklock_stop();
printf("%d checks ok.\n", testcount);
#ifdef HAVE_SSL
diff --git a/testdata/02-unittest.tdir/02-unittest.test b/testdata/02-unittest.tdir/02-unittest.test
index 898cd3dcc124..7b1105b74508 100644
--- a/testdata/02-unittest.tdir/02-unittest.test
+++ b/testdata/02-unittest.tdir/02-unittest.test
@@ -9,11 +9,48 @@ PRE="../.."
get_make
(cd $PRE ; $MAKE unittest; $MAKE lock-verify)
-if (cd $PRE; ./unittest); then
- echo "unit test worked."
+if test -f $PRE/unbound_do_valgrind_in_test; then
+ do_valgrind=yes
else
- echo "unit test failed."
- exit 1
+ do_valgrind=no
+fi
+VALGRIND_FLAGS="--leak-check=full --show-leak-kinds=all"
+
+if test $do_valgrind = "yes"; then
+ echo "valgrind yes"
+ echo
+ tmpout=/tmp/tmpout.$$
+ if (cd $PRE; valgrind $VALGRIND_FLAGS ./unittest >$tmpout 2>&1); then
+ echo "unit test worked."
+ else
+ echo "unit test failed."
+ exit 1
+ fi
+ if grep "All heap blocks were freed -- no leaks are possible" $tmpout; then
+ : # clean
+ else
+ cat $tmpout
+ echo "Memory leaked in unittest"
+ grep "in use at exit" $tmpout
+ exit 1
+ fi
+ if grep "ERROR SUMMARY: 0 errors from 0 contexts" $tmpout; then
+ : # clean
+ else
+ cat $tmpout
+ echo "Errors in unittest"
+ grep "ERROR SUMMARY" $tmpout
+ exit 1
+ fi
+ rm -f $tmpout
+else
+ # without valgrind
+ if (cd $PRE; ./unittest); then
+ echo "unit test worked."
+ else
+ echo "unit test failed."
+ exit 1
+ fi
fi
if test -f $PRE/ublocktrace.0; then
if (cd $PRE; ./lock-verify ublocktrace.*); then
diff --git a/testdata/03-testbound.tdir/03-testbound.test b/testdata/03-testbound.tdir/03-testbound.test
index aefdc18554f4..00d362287634 100644
--- a/testdata/03-testbound.tdir/03-testbound.test
+++ b/testdata/03-testbound.tdir/03-testbound.test
@@ -26,13 +26,15 @@ VALGRIND_FLAGS="--leak-check=full --show-leak-kinds=all"
# self-test (unit test of testbound)
if test $do_valgrind = "yes"; then
+ echo "valgrind yes"
+ echo
if (valgrind $VALGRIND_FLAGS $PRE/testbound -s >tmpout 2>&1;); then
echo "selftest OK "
else
echo "selftest FAILED"
exit 1
fi
- if grep "All heap blocks were freed -- no leaks are possible" tmpout >/dev/null 2>&1; then
+ if grep "All heap blocks were freed -- no leaks are possible" tmpout; then
: # clean
else
cat tmpout
@@ -40,7 +42,7 @@ if test $do_valgrind = "yes"; then
grep "in use at exit" tmpout
exit 1
fi
- if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout >/dev/null 2>&1; then
+ if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout; then
: # clean
else
cat tmpout
@@ -102,13 +104,14 @@ for input in $PRE/testdata/*.rpl $PRE/testdata/*.crpl; do
fi
if test $do_valgrind = "yes"; then
+ echo
if (valgrind $VALGRIND_FLAGS $PRE/testbound -p $input >tmpout 2>&1;); then
echo " OK $cleaninput: $header"
else
echo "FAILED $cleaninput: $header"
exitval=1
fi
- if grep "All heap blocks were freed -- no leaks are possible" tmpout >/dev/null 2>&1; then
+ if grep "All heap blocks were freed -- no leaks are possible" tmpout; then
: # clean
else
grep "^==" tmpout
@@ -116,7 +119,7 @@ for input in $PRE/testdata/*.rpl $PRE/testdata/*.crpl; do
grep "in use at exit" tmpout
exitval=1
fi
- if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout >/dev/null 2>&1; then
+ if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout; then
: # clean
else
grep "^==" tmpout
diff --git a/testdata/auth_xfr_host.rpl b/testdata/auth_xfr_host.rpl
index 4b3b1879ea33..d052d36a43bf 100644
--- a/testdata/auth_xfr_host.rpl
+++ b/testdata/auth_xfr_host.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
auth-zone:
name: "example.com."
diff --git a/testdata/autotrust_init_failsig.rpl b/testdata/autotrust_init_failsig.rpl
index 38ecb4c860c8..2bf5014e4683 100644
--- a/testdata/autotrust_init_failsig.rpl
+++ b/testdata/autotrust_init_failsig.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
log-time-ascii: yes
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/autotrust_revtp_use.rpl b/testdata/autotrust_revtp_use.rpl
index e0b8caa0c06e..b43eb60ad6c7 100644
--- a/testdata/autotrust_revtp_use.rpl
+++ b/testdata/autotrust_revtp_use.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
log-time-ascii: yes
val-override-date: '20091018111500'
fake-sha1: yes
diff --git a/testdata/black_data.rpl b/testdata/black_data.rpl
index 83429784261b..04304d352cf8 100644
--- a/testdata/black_data.rpl
+++ b/testdata/black_data.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/black_dnskey.rpl b/testdata/black_dnskey.rpl
index 7a6c1c21c03f..52deef16f6d2 100644
--- a/testdata/black_dnskey.rpl
+++ b/testdata/black_dnskey.rpl
@@ -6,6 +6,7 @@ server:
target-fetch-policy: "0 0 0 0 0"
fake-sha1: yes
trust-anchor-signaling: no
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/black_ds.rpl b/testdata/black_ds.rpl
index 9ff79059e386..37caeb457a8c 100644
--- a/testdata/black_ds.rpl
+++ b/testdata/black_ds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/black_ent.rpl b/testdata/black_ent.rpl
index c37c71bf335f..1a25666a2a18 100644
--- a/testdata/black_ent.rpl
+++ b/testdata/black_ent.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/black_prime.rpl b/testdata/black_prime.rpl
index 1093eee15fa0..2cbcc160658a 100644
--- a/testdata/black_prime.rpl
+++ b/testdata/black_prime.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/black_prime_entry.rpl b/testdata/black_prime_entry.rpl
index 47105a3b4fe9..c3f93266fb10 100644
--- a/testdata/black_prime_entry.rpl
+++ b/testdata/black_prime_entry.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_anchor.rpl b/testdata/dlv_anchor.rpl
index 5f13a800451f..445da0a84ea7 100644
--- a/testdata/dlv_anchor.rpl
+++ b/testdata/dlv_anchor.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_ask_higher.rpl b/testdata/dlv_ask_higher.rpl
index 75be7f5f2294..9f9331080e27 100644
--- a/testdata/dlv_ask_higher.rpl
+++ b/testdata/dlv_ask_higher.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_below_ta.rpl b/testdata/dlv_below_ta.rpl
index db62ab098c1a..6f72f261c390 100644
--- a/testdata/dlv_below_ta.rpl
+++ b/testdata/dlv_below_ta.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DS 30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_delegation.rpl b/testdata/dlv_delegation.rpl
index 427bcad39745..1eada40649f7 100644
--- a/testdata/dlv_delegation.rpl
+++ b/testdata/dlv_delegation.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_ds_lookup.rpl b/testdata/dlv_ds_lookup.rpl
index c019b525b008..663cd9c3642b 100644
--- a/testdata/dlv_ds_lookup.rpl
+++ b/testdata/dlv_ds_lookup.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_insecure.rpl b/testdata/dlv_insecure.rpl
index 0f3fef984f94..94ba865d8703 100644
--- a/testdata/dlv_insecure.rpl
+++ b/testdata/dlv_insecure.rpl
@@ -5,6 +5,7 @@ server:
val-override-date: "20070916134226"
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_insecure_negcache.rpl b/testdata/dlv_insecure_negcache.rpl
index fbfd9061542e..b91105160ad2 100644
--- a/testdata/dlv_insecure_negcache.rpl
+++ b/testdata/dlv_insecure_negcache.rpl
@@ -5,6 +5,7 @@ server:
val-override-date: "20070916134226"
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_keyretry.rpl b/testdata/dlv_keyretry.rpl
index 75007bf997be..8d477b5a5187 100644
--- a/testdata/dlv_keyretry.rpl
+++ b/testdata/dlv_keyretry.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_negnx.rpl b/testdata/dlv_negnx.rpl
index 7149f5bd3360..03edf1a47c64 100644
--- a/testdata/dlv_negnx.rpl
+++ b/testdata/dlv_negnx.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_optout.rpl b/testdata/dlv_optout.rpl
index 2e01f30e231f..e5a8fdd629e1 100644
--- a/testdata/dlv_optout.rpl
+++ b/testdata/dlv_optout.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DS 30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dlv_remove_pos.rpl b/testdata/dlv_remove_pos.rpl
index 0b68689cd272..fe2d7fee79d1 100644
--- a/testdata/dlv_remove_pos.rpl
+++ b/testdata/dlv_remove_pos.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/dns64_lookup.rpl b/testdata/dns64_lookup.rpl
index 49f26db89c7c..e24622c0d4b5 100644
--- a/testdata/dns64_lookup.rpl
+++ b/testdata/dns64_lookup.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
module-config: "dns64 validator iterator"
dns64-prefix: 64:ff9b::0/96
diff --git a/testdata/domain_insec_ds.rpl b/testdata/domain_insec_ds.rpl
index d99e7ab6265c..2cd6055b3fd5 100644
--- a/testdata/domain_insec_ds.rpl
+++ b/testdata/domain_insec_ds.rpl
@@ -5,6 +5,7 @@ server:
domain-insecure: "sub.example.com"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/fetch_glue.rpl b/testdata/fetch_glue.rpl
index 9a25d52e2b08..3ecc28abf71c 100644
--- a/testdata/fetch_glue.rpl
+++ b/testdata/fetch_glue.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/fetch_glue_cname.rpl b/testdata/fetch_glue_cname.rpl
index 46e17fe798e7..e8158f9f07b2 100644
--- a/testdata/fetch_glue_cname.rpl
+++ b/testdata/fetch_glue_cname.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/fwddlv_parse.rpl b/testdata/fwddlv_parse.rpl
index 8c0552093133..8b8a9613f17a 100644
--- a/testdata/fwddlv_parse.rpl
+++ b/testdata/fwddlv_parse.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "dlv.isc.org. 5072 IN DNSKEY 256 3 5 BEAAAAOlYGw53D+f01yCL5JsP0SB6EjYrnd0JYRBooAaGPT+Q0kpiN+7GviFh+nIazoB8e2Yv7mupgqkmIjObdcbGstYpUltdECdNpNmBvASKB9SBdtGeRvXXpORi3Qyxb9kHGG7SpzyYbc+KDVKnzYHB94pvqu3ZZpPFPBFtCibp/mkhw=="
val-override-date: "20090617133009"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/ipsecmod_bogus_ipseckey.crpl b/testdata/ipsecmod_bogus_ipseckey.crpl
index 523da9368b9e..094710b6006d 100644
--- a/testdata/ipsecmod_bogus_ipseckey.crpl
+++ b/testdata/ipsecmod_bogus_ipseckey.crpl
@@ -6,6 +6,7 @@ server:
trust-anchor: "example.com. IN DS 48069 8 2 fce2bcb0d88b828064faad58e935ca2e32ff0bbd8bd8407a8f344d8f8e8c438a"
val-override-date: "-1"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
# test that default value of harden-dnssec-stripped is still yes.
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/ipsecmod_enabled.crpl b/testdata/ipsecmod_enabled.crpl
index 757abb9674f4..501f18be4857 100644
--- a/testdata/ipsecmod_enabled.crpl
+++ b/testdata/ipsecmod_enabled.crpl
@@ -9,6 +9,7 @@ server:
ipsecmod-strict: no
ipsecmod-max-ttl: 200
ipsecmod-enabled: no
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/ipsecmod_ignore_bogus_ipseckey.crpl b/testdata/ipsecmod_ignore_bogus_ipseckey.crpl
index 3d5a8faaf262..d62dfafd2d1c 100644
--- a/testdata/ipsecmod_ignore_bogus_ipseckey.crpl
+++ b/testdata/ipsecmod_ignore_bogus_ipseckey.crpl
@@ -16,6 +16,7 @@ server:
ipsecmod-strict: no
ipsecmod-max-ttl: 200
ipsecmod-ignore-bogus: yes
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/ipsecmod_max_ttl.crpl b/testdata/ipsecmod_max_ttl.crpl
index 633dbe52832e..50d4adf64e89 100644
--- a/testdata/ipsecmod_max_ttl.crpl
+++ b/testdata/ipsecmod_max_ttl.crpl
@@ -8,6 +8,7 @@ server:
ipsecmod-hook: "../../testdata/ipsecmod_hook.sh"
ipsecmod-strict: no
ipsecmod-max-ttl: 200
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/ipsecmod_strict.crpl b/testdata/ipsecmod_strict.crpl
index 1969b3b25081..13d8e0e4bd5d 100644
--- a/testdata/ipsecmod_strict.crpl
+++ b/testdata/ipsecmod_strict.crpl
@@ -8,6 +8,7 @@ server:
ipsecmod-hook: "../../testdata/ipsecmod_hook.sh"
ipsecmod-strict: yes
ipsecmod-max-ttl: 200
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/ipsecmod_whitelist.crpl b/testdata/ipsecmod_whitelist.crpl
index a185295fd7bb..d916b0050e4d 100644
--- a/testdata/ipsecmod_whitelist.crpl
+++ b/testdata/ipsecmod_whitelist.crpl
@@ -9,6 +9,7 @@ server:
ipsecmod-strict: no
ipsecmod-max-ttl: 200
ipsecmod-whitelist: white.example.com
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_class_any.rpl b/testdata/iter_class_any.rpl
index 396692e1c767..a4ea822fdba0 100644
--- a/testdata/iter_class_any.rpl
+++ b/testdata/iter_class_any.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_cname_double.rpl b/testdata/iter_cname_double.rpl
index 2e640fd114fe..bb9f792c0ca9 100644
--- a/testdata/iter_cname_double.rpl
+++ b/testdata/iter_cname_double.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_cname_nx.rpl b/testdata/iter_cname_nx.rpl
index cb80aa5fc7a6..f826daaf3809 100644
--- a/testdata/iter_cname_nx.rpl
+++ b/testdata/iter_cname_nx.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_cname_qnamecopy.rpl b/testdata/iter_cname_qnamecopy.rpl
index 12019816ac16..bc672c1348b9 100644
--- a/testdata/iter_cname_qnamecopy.rpl
+++ b/testdata/iter_cname_qnamecopy.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_cycle.rpl b/testdata/iter_cycle.rpl
index fd1cf238a178..27adeb51119c 100644
--- a/testdata/iter_cycle.rpl
+++ b/testdata/iter_cycle.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_cycle_noh.rpl b/testdata/iter_cycle_noh.rpl
index ce5a86722470..6c2982adc94e 100644
--- a/testdata/iter_cycle_noh.rpl
+++ b/testdata/iter_cycle_noh.rpl
@@ -2,6 +2,7 @@
server:
harden-glue: "no"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_dname_insec.rpl b/testdata/iter_dname_insec.rpl
index 8f4a29c79e19..791e3848572a 100644
--- a/testdata/iter_dname_insec.rpl
+++ b/testdata/iter_dname_insec.rpl
@@ -2,6 +2,7 @@
server:
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_dnsseclame_bug.rpl b/testdata/iter_dnsseclame_bug.rpl
index e96e309c4fb6..cb17bbf330ad 100644
--- a/testdata/iter_dnsseclame_bug.rpl
+++ b/testdata/iter_dnsseclame_bug.rpl
@@ -4,6 +4,7 @@ server:
val-override-date: "20070916134226"
fake-sha1: yes
trust-anchor-signaling: no
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_dnsseclame_ds.rpl b/testdata/iter_dnsseclame_ds.rpl
index a92049be17ac..78a11cc072c9 100644
--- a/testdata/iter_dnsseclame_ds.rpl
+++ b/testdata/iter_dnsseclame_ds.rpl
@@ -4,6 +4,7 @@ server:
val-override-date: "20070916134226"
fake-sha1: yes
trust-anchor-signaling: no
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_dnsseclame_ds_ok.rpl b/testdata/iter_dnsseclame_ds_ok.rpl
index f3e9bf03a1a2..d398c822d761 100644
--- a/testdata/iter_dnsseclame_ds_ok.rpl
+++ b/testdata/iter_dnsseclame_ds_ok.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_dnsseclame_ta.rpl b/testdata/iter_dnsseclame_ta.rpl
index d4c1078b040a..5799a1146787 100644
--- a/testdata/iter_dnsseclame_ta.rpl
+++ b/testdata/iter_dnsseclame_ta.rpl
@@ -4,6 +4,7 @@ server:
val-override-date: "20070916134226"
fake-sha1: yes
trust-anchor-signaling: no
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_dnsseclame_ta_ok.rpl b/testdata/iter_dnsseclame_ta_ok.rpl
index 60774fc61055..285fb3e720b7 100644
--- a/testdata/iter_dnsseclame_ta_ok.rpl
+++ b/testdata/iter_dnsseclame_ta_ok.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_donotq127.rpl b/testdata/iter_donotq127.rpl
index 15f9fff60860..3668d7b6fa10 100644
--- a/testdata/iter_donotq127.rpl
+++ b/testdata/iter_donotq127.rpl
@@ -1,4 +1,6 @@
; config options
+server:
+ qname-minimisation: "no"
stub-zone:
name: "."
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
diff --git a/testdata/iter_ds_locate_ns_detach.rpl b/testdata/iter_ds_locate_ns_detach.rpl
index 9288fe56011e..9308bbad3837 100644
--- a/testdata/iter_ds_locate_ns_detach.rpl
+++ b/testdata/iter_ds_locate_ns_detach.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "3 2 1 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_emptydp.rpl b/testdata/iter_emptydp.rpl
index 34bce811c638..f61b3064dddb 100644
--- a/testdata/iter_emptydp.rpl
+++ b/testdata/iter_emptydp.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_emptydp_for_glue.rpl b/testdata/iter_emptydp_for_glue.rpl
index aafb3b2d702f..33951e790a70 100644
--- a/testdata/iter_emptydp_for_glue.rpl
+++ b/testdata/iter_emptydp_for_glue.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_got6only.rpl b/testdata/iter_got6only.rpl
index d7b4fdebaf0a..7363a48b7d52 100644
--- a/testdata/iter_got6only.rpl
+++ b/testdata/iter_got6only.rpl
@@ -2,6 +2,7 @@
server:
do-ip6: no
target-fetch-policy: "0 0 0 0 0 "
+ qname-minimisation: "no"
stub-zone:
name: "."
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
diff --git a/testdata/iter_hint_lame.rpl b/testdata/iter_hint_lame.rpl
index 8cbede122131..e9ffbce64c7b 100644
--- a/testdata/iter_hint_lame.rpl
+++ b/testdata/iter_hint_lame.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_lame_noaa.rpl b/testdata/iter_lame_noaa.rpl
index 116d7a2d4269..18d326b77967 100644
--- a/testdata/iter_lame_noaa.rpl
+++ b/testdata/iter_lame_noaa.rpl
@@ -2,6 +2,7 @@
server:
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_lamescrub.rpl b/testdata/iter_lamescrub.rpl
index 5fe6b8af3d1c..2de13a6551f3 100644
--- a/testdata/iter_lamescrub.rpl
+++ b/testdata/iter_lamescrub.rpl
@@ -1,4 +1,6 @@
; config options
+server:
+ qname-minimisation: "no"
stub-zone:
name: "."
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
diff --git a/testdata/iter_mod.rpl b/testdata/iter_mod.rpl
index f7dd43e561d7..c57e2328ab78 100644
--- a/testdata/iter_mod.rpl
+++ b/testdata/iter_mod.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
module-config: "iterator"
stub-zone:
diff --git a/testdata/iter_ns_badip.rpl b/testdata/iter_ns_badip.rpl
index 021e552b74c5..6ce2b14d47b5 100644
--- a/testdata/iter_ns_badip.rpl
+++ b/testdata/iter_ns_badip.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "3 2 1 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_ns_spoof.rpl b/testdata/iter_ns_spoof.rpl
index 8b7a4d570508..1679ce724c7a 100644
--- a/testdata/iter_ns_spoof.rpl
+++ b/testdata/iter_ns_spoof.rpl
@@ -2,6 +2,7 @@
server:
harden-referral-path: yes
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
diff --git a/testdata/iter_pcdirect.rpl b/testdata/iter_pcdirect.rpl
index 45765bee249a..0a4487fd86c7 100644
--- a/testdata/iter_pcdirect.rpl
+++ b/testdata/iter_pcdirect.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_prefetch.rpl b/testdata/iter_prefetch.rpl
index 678bdd79d3e1..feb6b81e8673 100644
--- a/testdata/iter_prefetch.rpl
+++ b/testdata/iter_prefetch.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
prefetch: "yes"
stub-zone:
diff --git a/testdata/iter_prefetch_childns.rpl b/testdata/iter_prefetch_childns.rpl
index c2b72d62a0de..869aaa40c95c 100644
--- a/testdata/iter_prefetch_childns.rpl
+++ b/testdata/iter_prefetch_childns.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
prefetch: "yes"
stub-zone:
diff --git a/testdata/iter_prefetch_ns.rpl b/testdata/iter_prefetch_ns.rpl
index 3dcda608c093..f99fb80dcf5a 100644
--- a/testdata/iter_prefetch_ns.rpl
+++ b/testdata/iter_prefetch_ns.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
prefetch: "yes"
stub-zone:
diff --git a/testdata/iter_primenoglue.rpl b/testdata/iter_primenoglue.rpl
index efe248a7d9a7..0d6adefc591e 100644
--- a/testdata/iter_primenoglue.rpl
+++ b/testdata/iter_primenoglue.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_privaddr.rpl b/testdata/iter_privaddr.rpl
index d0f63c9ab881..2361af6536c8 100644
--- a/testdata/iter_privaddr.rpl
+++ b/testdata/iter_privaddr.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
private-address: 10.0.0.0/8
private-address: 172.16.0.0/12
diff --git a/testdata/iter_reclame_one.rpl b/testdata/iter_reclame_one.rpl
index e2e6b4502aa4..fe15b256ce39 100644
--- a/testdata/iter_reclame_one.rpl
+++ b/testdata/iter_reclame_one.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_recurse.rpl b/testdata/iter_recurse.rpl
index c787ac32a2e0..ab62e1ae5d5f 100644
--- a/testdata/iter_recurse.rpl
+++ b/testdata/iter_recurse.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_resolve.rpl b/testdata/iter_resolve.rpl
index 293c3fecea74..cab3887f77b9 100644
--- a/testdata/iter_resolve.rpl
+++ b/testdata/iter_resolve.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_resolve_minimised.rpl b/testdata/iter_resolve_minimised.rpl
index fc42bae81d94..ab3c6e9e7121 100644
--- a/testdata/iter_resolve_minimised.rpl
+++ b/testdata/iter_resolve_minimised.rpl
@@ -1,7 +1,6 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
- qname-minimisation: yes
stub-zone:
name: "."
diff --git a/testdata/iter_scrub_cname_an.rpl b/testdata/iter_scrub_cname_an.rpl
index 8f184d4015e7..54a98c63bf34 100644
--- a/testdata/iter_scrub_cname_an.rpl
+++ b/testdata/iter_scrub_cname_an.rpl
@@ -2,6 +2,7 @@
server:
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_scrub_dname_insec.rpl b/testdata/iter_scrub_dname_insec.rpl
index f205b0e31e4c..a2972202c626 100644
--- a/testdata/iter_scrub_dname_insec.rpl
+++ b/testdata/iter_scrub_dname_insec.rpl
@@ -2,6 +2,7 @@
server:
harden-referral-path: no
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/iter_scrub_dname_rev.rpl b/testdata/iter_scrub_dname_rev.rpl
index 67ee560edb69..b7e3ee2d0fb1 100644
--- a/testdata/iter_scrub_dname_rev.rpl
+++ b/testdata/iter_scrub_dname_rev.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_scrub_dname_sec.rpl b/testdata/iter_scrub_dname_sec.rpl
index bcc289e8f612..1b9153ba74a5 100644
--- a/testdata/iter_scrub_dname_sec.rpl
+++ b/testdata/iter_scrub_dname_sec.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/iter_timeout_ra_aaaa.rpl b/testdata/iter_timeout_ra_aaaa.rpl
index 2815d4c5a238..9b06aea90992 100644
--- a/testdata/iter_timeout_ra_aaaa.rpl
+++ b/testdata/iter_timeout_ra_aaaa.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/local_ds.rpl b/testdata/local_ds.rpl
index 58b3e2236d1b..d76d34601417 100644
--- a/testdata/local_ds.rpl
+++ b/testdata/local_ds.rpl
@@ -1,7 +1,7 @@
; config options
; The island of trust is at example.com
server:
-
+ qname-minimisation: "no"
stub-zone:
name: "."
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
diff --git a/testdata/local_nodefault.rpl b/testdata/local_nodefault.rpl
index 794196244829..7a1e1403754d 100644
--- a/testdata/local_nodefault.rpl
+++ b/testdata/local_nodefault.rpl
@@ -2,6 +2,7 @@
; The island of trust is at example.com
server:
local-zone: "10.in-addr.arpa" nodefault
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/local_typetransparent.rpl b/testdata/local_typetransparent.rpl
index 6396918f7232..8fe340282be5 100644
--- a/testdata/local_typetransparent.rpl
+++ b/testdata/local_typetransparent.rpl
@@ -3,6 +3,7 @@
server:
local-zone: "example.com." typetransparent
local-data: "mail.example.com. IN A 10.20.30.40"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/nomem_cnametopos.rpl b/testdata/nomem_cnametopos.rpl
index 1c7f6a591219..c1610d6fe820 100644
--- a/testdata/nomem_cnametopos.rpl
+++ b/testdata/nomem_cnametopos.rpl
@@ -7,6 +7,7 @@ server:
msg-cache-size: 8
rrset-cache-size: 8
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/stop_nxdomain.rpl b/testdata/stop_nxdomain.rpl
index 04cf83a80501..b503dfeb0828 100644
--- a/testdata/stop_nxdomain.rpl
+++ b/testdata/stop_nxdomain.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
harden-below-nxdomain: yes
trust-anchor: ". IN DNSKEY 257 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3"
val-override-date: "20070916134226"
diff --git a/testdata/subnet_cached.crpl b/testdata/subnet_cached.crpl
index 3f7571a8b978..3d4fd9a961b8 100644
--- a/testdata/subnet_cached.crpl
+++ b/testdata/subnet_cached.crpl
@@ -11,6 +11,7 @@ server:
module-config: "subnetcache validator iterator"
verbosity: 3
access-control: 127.0.0.1 allow_snoop
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_derived.crpl b/testdata/subnet_derived.crpl
index e2944ff8c07f..6ff626abd7cc 100644
--- a/testdata/subnet_derived.crpl
+++ b/testdata/subnet_derived.crpl
@@ -4,6 +4,7 @@ server:
max-client-subnet-ipv4: 21
verbosity: 3
module-config: "subnetcache validator iterator"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_format_ip4.crpl b/testdata/subnet_format_ip4.crpl
index 2ee3c7d4ec1b..cd1c858fd636 100644
--- a/testdata/subnet_format_ip4.crpl
+++ b/testdata/subnet_format_ip4.crpl
@@ -3,6 +3,7 @@ server:
max-client-subnet-ipv4: 21
verbosity: 3
module-config: "subnetcache validator iterator"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_max_source.crpl b/testdata/subnet_max_source.crpl
index dc4b54217d06..aae1f1af2e5d 100644
--- a/testdata/subnet_max_source.crpl
+++ b/testdata/subnet_max_source.crpl
@@ -9,6 +9,7 @@ server:
max-client-subnet-ipv4: 17
module-config: "subnetcache validator iterator"
verbosity: 3
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_not_whitelisted.crpl b/testdata/subnet_not_whitelisted.crpl
index 474687b5856e..545b019eda92 100644
--- a/testdata/subnet_not_whitelisted.crpl
+++ b/testdata/subnet_not_whitelisted.crpl
@@ -4,6 +4,7 @@ server:
max-client-subnet-ipv4: 21
verbosity: 3
module-config: "subnetcache validator iterator"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_val_positive.crpl b/testdata/subnet_val_positive.crpl
index 2f75be72bb7c..ef33531d2a32 100644
--- a/testdata/subnet_val_positive.crpl
+++ b/testdata/subnet_val_positive.crpl
@@ -9,6 +9,7 @@ server:
max-client-subnet-ipv4: 17
module-config: "subnetcache validator iterator"
verbosity: 3
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_val_positive_client.crpl b/testdata/subnet_val_positive_client.crpl
index 4bbfac139e06..dcd3a87199b2 100644
--- a/testdata/subnet_val_positive_client.crpl
+++ b/testdata/subnet_val_positive_client.crpl
@@ -10,6 +10,7 @@ server:
max-client-subnet-ipv4: 17
module-config: "subnetcache validator iterator"
verbosity: 3
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/subnet_without_validator.crpl b/testdata/subnet_without_validator.crpl
index ea0daf730384..2fbf24239ecb 100644
--- a/testdata/subnet_without_validator.crpl
+++ b/testdata/subnet_without_validator.crpl
@@ -3,6 +3,7 @@ server:
max-client-subnet-ipv4: 21
verbosity: 3
module-config: "subnetcache iterator"
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/tcp_sigpipe.tdir/tcp_sigpipe.testns b/testdata/tcp_sigpipe.tdir/tcp_sigpipe.testns
index 7b773d3b2e73..14647723fca5 100644
--- a/testdata/tcp_sigpipe.tdir/tcp_sigpipe.testns
+++ b/testdata/tcp_sigpipe.tdir/tcp_sigpipe.testns
@@ -13,7 +13,7 @@ ENTRY_END
ENTRY_BEGIN
MATCH TCP opcode qtype qname
REPLY QR AA NOERROR
-ADJUST copy_id sleep=3
+ADJUST copy_id sleep=2
SECTION QUESTION
www IN A
SECTION ANSWER
diff --git a/testdata/ttl_max.rpl b/testdata/ttl_max.rpl
index 6443da71b1a8..1faa05453d36 100644
--- a/testdata/ttl_max.rpl
+++ b/testdata/ttl_max.rpl
@@ -2,6 +2,7 @@
server:
access-control: 127.0.0.1 allow_snoop
cache-max-ttl: 10
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/ttl_min.rpl b/testdata/ttl_min.rpl
index 1fa7ef1c9669..b965fdbeab64 100644
--- a/testdata/ttl_min.rpl
+++ b/testdata/ttl_min.rpl
@@ -2,6 +2,7 @@
server:
access-control: 127.0.0.1 allow_snoop
cache-min-ttl: 10
+ qname-minimisation: "no"
stub-zone:
name: "."
diff --git a/testdata/ttl_msg.rpl b/testdata/ttl_msg.rpl
index 627f0614244d..efb7ea387a4a 100644
--- a/testdata/ttl_msg.rpl
+++ b/testdata/ttl_msg.rpl
@@ -2,6 +2,7 @@
; fetch all extra targets - we want to trigger a lookup in cache
server:
target-fetch-policy: "-1 -1 -1 -1 -1"
+ qname-minimisation: "no"
access-control: 127.0.0.1 allow_snoop
stub-zone:
diff --git a/testdata/val_adbit.rpl b/testdata/val_adbit.rpl
index c859ab8ffe78..f8f44fcff679 100644
--- a/testdata/val_adbit.rpl
+++ b/testdata/val_adbit.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_adcopy.rpl b/testdata/val_adcopy.rpl
index 04d04880b915..beb952356fb7 100644
--- a/testdata/val_adcopy.rpl
+++ b/testdata/val_adcopy.rpl
@@ -4,6 +4,7 @@ server:
#trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_anchor_nx.rpl b/testdata/val_anchor_nx.rpl
index 6067cb3ff36a..5d8855b8a608 100644
--- a/testdata/val_anchor_nx.rpl
+++ b/testdata/val_anchor_nx.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_anchor_nx_nosig.rpl b/testdata/val_anchor_nx_nosig.rpl
index e36180b082f2..e0dc7d8aba8c 100644
--- a/testdata/val_anchor_nx_nosig.rpl
+++ b/testdata/val_anchor_nx_nosig.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_ans_dsent.rpl b/testdata/val_ans_dsent.rpl
index 4d543b22b515..09ce62169cf5 100644
--- a/testdata/val_ans_dsent.rpl
+++ b/testdata/val_ans_dsent.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ans_nx.rpl b/testdata/val_ans_nx.rpl
index d70316d83389..48f4527df075 100644
--- a/testdata/val_ans_nx.rpl
+++ b/testdata/val_ans_nx.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_any.rpl b/testdata/val_any.rpl
index bb4db8fef9f8..058f44925ad1 100644
--- a/testdata/val_any.rpl
+++ b/testdata/val_any.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_any_cname.rpl b/testdata/val_any_cname.rpl
index 56b22ba380af..5e5d12b081da 100644
--- a/testdata/val_any_cname.rpl
+++ b/testdata/val_any_cname.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_any_dname.rpl b/testdata/val_any_dname.rpl
index 331698d71d4b..3957f7bae579 100644
--- a/testdata/val_any_dname.rpl
+++ b/testdata/val_any_dname.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cname_loop1.rpl b/testdata/val_cname_loop1.rpl
index 61fcdb7036fd..b261ecf3760a 100644
--- a/testdata/val_cname_loop1.rpl
+++ b/testdata/val_cname_loop1.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_cname_loop2.rpl b/testdata/val_cname_loop2.rpl
index 26644bc14755..009616f71256 100644
--- a/testdata/val_cname_loop2.rpl
+++ b/testdata/val_cname_loop2.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_cname_loop3.rpl b/testdata/val_cname_loop3.rpl
index fbd0d8abcf3c..acdd110ed08b 100644
--- a/testdata/val_cname_loop3.rpl
+++ b/testdata/val_cname_loop3.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_cnameinsectopos.rpl b/testdata/val_cnameinsectopos.rpl
index d11b7286df86..8a26febe635a 100644
--- a/testdata/val_cnameinsectopos.rpl
+++ b/testdata/val_cnameinsectopos.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnamenx_dblnsec.rpl b/testdata/val_cnamenx_dblnsec.rpl
index 499e05159835..4a043244297e 100644
--- a/testdata/val_cnamenx_dblnsec.rpl
+++ b/testdata/val_cnamenx_dblnsec.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnamenx_rcodenx.rpl b/testdata/val_cnamenx_rcodenx.rpl
index e7336190b012..09d379363e07 100644
--- a/testdata/val_cnamenx_rcodenx.rpl
+++ b/testdata/val_cnamenx_rcodenx.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnameqtype.rpl b/testdata/val_cnameqtype.rpl
index 73fc6a856c26..05ef47426789 100644
--- a/testdata/val_cnameqtype.rpl
+++ b/testdata/val_cnameqtype.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametocnamewctoposwc.rpl b/testdata/val_cnametocnamewctoposwc.rpl
index 374db7ba5694..f17f5aafcaaf 100644
--- a/testdata/val_cnametocnamewctoposwc.rpl
+++ b/testdata/val_cnametocnamewctoposwc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. IN DNSKEY 257 3 8 AwEAAdL6YJdvoKQJEt/SgB6MrbQ2RDwnrcQQb6bDE8FpGgLen6hvF31ntVsZ3RZzhCmwL6lvumOLFIRKaP9ZBEVutT9iMoF2dNRbT0TCUrv6uQNHcuCZ0BJhuDNBU42f3yOnfFv7PKxd0NP+yFHJkvDQAVLMB5GeUQuYnvgQGeZsf/3b"
val-override-date: "-1"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametodname.rpl b/testdata/val_cnametodname.rpl
index 9719dbae8aa6..e064ec59b839 100644
--- a/testdata/val_cnametodname.rpl
+++ b/testdata/val_cnametodname.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametodnametocnametopos.rpl b/testdata/val_cnametodnametocnametopos.rpl
index 1d75f7eaa02d..280e557b8acb 100644
--- a/testdata/val_cnametodnametocnametopos.rpl
+++ b/testdata/val_cnametodnametocnametopos.rpl
@@ -6,6 +6,7 @@ server:
trust-anchor: "example.org. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametonodata.rpl b/testdata/val_cnametonodata.rpl
index 2aba3ae9eb54..c94cfed51401 100644
--- a/testdata/val_cnametonodata.rpl
+++ b/testdata/val_cnametonodata.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametonodata_nonsec.rpl b/testdata/val_cnametonodata_nonsec.rpl
index 4b1eeb20d299..c1346ceb491d 100644
--- a/testdata/val_cnametonodata_nonsec.rpl
+++ b/testdata/val_cnametonodata_nonsec.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametonsec.rpl b/testdata/val_cnametonsec.rpl
index e721dcad5ef5..27a562f3a645 100644
--- a/testdata/val_cnametonsec.rpl
+++ b/testdata/val_cnametonsec.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametonx.rpl b/testdata/val_cnametonx.rpl
index 973bfaf22904..f381029dfa87 100644
--- a/testdata/val_cnametonx.rpl
+++ b/testdata/val_cnametonx.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametooptin.rpl b/testdata/val_cnametooptin.rpl
index 622c5e2339f3..77a3c06bdef7 100644
--- a/testdata/val_cnametooptin.rpl
+++ b/testdata/val_cnametooptin.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametopos.rpl b/testdata/val_cnametopos.rpl
index d0d38cad11f1..b71bdb211637 100644
--- a/testdata/val_cnametopos.rpl
+++ b/testdata/val_cnametopos.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametoposnowc.rpl b/testdata/val_cnametoposnowc.rpl
index a5572a0e52c5..343c3e2bbed8 100644
--- a/testdata/val_cnametoposnowc.rpl
+++ b/testdata/val_cnametoposnowc.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnametoposwc.rpl b/testdata/val_cnametoposwc.rpl
index 8cca50791c78..01801b7d0ff6 100644
--- a/testdata/val_cnametoposwc.rpl
+++ b/testdata/val_cnametoposwc.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnamewctonodata.rpl b/testdata/val_cnamewctonodata.rpl
index 3e51789c70f9..65c00079959c 100644
--- a/testdata/val_cnamewctonodata.rpl
+++ b/testdata/val_cnamewctonodata.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnamewctonx.rpl b/testdata/val_cnamewctonx.rpl
index 2de1f35e3c99..a5762934628a 100644
--- a/testdata/val_cnamewctonx.rpl
+++ b/testdata/val_cnamewctonx.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_cnamewctoposwc.rpl b/testdata/val_cnamewctoposwc.rpl
index 7636521a209b..0c9932d73d25 100644
--- a/testdata/val_cnamewctoposwc.rpl
+++ b/testdata/val_cnamewctoposwc.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_deleg_nons.rpl b/testdata/val_deleg_nons.rpl
index 49e72bf77b64..6e8f1bd83791 100644
--- a/testdata/val_deleg_nons.rpl
+++ b/testdata/val_deleg_nons.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_dnametopos.rpl b/testdata/val_dnametopos.rpl
index edf932bf1d2f..c0ccc5977903 100644
--- a/testdata/val_dnametopos.rpl
+++ b/testdata/val_dnametopos.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_dnametoposwc.rpl b/testdata/val_dnametoposwc.rpl
index 5c9c8f714f41..16481d17f704 100644
--- a/testdata/val_dnametoposwc.rpl
+++ b/testdata/val_dnametoposwc.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_dnamewc.rpl b/testdata/val_dnamewc.rpl
index 33055b142c87..b011af88a4de 100644
--- a/testdata/val_dnamewc.rpl
+++ b/testdata/val_dnamewc.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_afterprime.rpl b/testdata/val_ds_afterprime.rpl
index 8f219e26945f..50c28aae6f0b 100644
--- a/testdata/val_ds_afterprime.rpl
+++ b/testdata/val_ds_afterprime.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_cname.rpl b/testdata/val_ds_cname.rpl
index a9b7f0910f28..7c3e41be3560 100644
--- a/testdata/val_ds_cname.rpl
+++ b/testdata/val_ds_cname.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_cnamesub.rpl b/testdata/val_ds_cnamesub.rpl
index 211d5502db9a..bbd368997891 100644
--- a/testdata/val_ds_cnamesub.rpl
+++ b/testdata/val_ds_cnamesub.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_gost.crpl b/testdata/val_ds_gost.crpl
index d66234a7b096..5babb3db5ba2 100644
--- a/testdata/val_ds_gost.crpl
+++ b/testdata/val_ds_gost.crpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_gost_downgrade.crpl b/testdata/val_ds_gost_downgrade.crpl
index ff88f90b7fe9..a3930bc7e988 100644
--- a/testdata/val_ds_gost_downgrade.crpl
+++ b/testdata/val_ds_gost_downgrade.crpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
harden-algo-downgrade: yes
diff --git a/testdata/val_ds_sha2.crpl b/testdata/val_ds_sha2.crpl
index 1e13f89f5082..4af6693c5d5f 100644
--- a/testdata/val_ds_sha2.crpl
+++ b/testdata/val_ds_sha2.crpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-dsa: yes
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_sha2_downgrade.crpl b/testdata/val_ds_sha2_downgrade.crpl
index 2feacb18d347..b15f39bc5ede 100644
--- a/testdata/val_ds_sha2_downgrade.crpl
+++ b/testdata/val_ds_sha2_downgrade.crpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-dsa: yes
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ds_sha2_lenient.crpl b/testdata/val_ds_sha2_lenient.crpl
index a0d1cc05a26f..631facde0f4c 100644
--- a/testdata/val_ds_sha2_lenient.crpl
+++ b/testdata/val_ds_sha2_lenient.crpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-dsa: yes
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_entds.rpl b/testdata/val_entds.rpl
index 9a0b539bb748..74509ace8fc6 100644
--- a/testdata/val_entds.rpl
+++ b/testdata/val_entds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_keyprefetch.rpl b/testdata/val_keyprefetch.rpl
index 2bc50318f880..04628336884d 100644
--- a/testdata/val_keyprefetch.rpl
+++ b/testdata/val_keyprefetch.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
prefetch-key: yes
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_keyprefetch_verify.rpl b/testdata/val_keyprefetch_verify.rpl
index a67c37b1cc13..f55bd7945fe5 100644
--- a/testdata/val_keyprefetch_verify.rpl
+++ b/testdata/val_keyprefetch_verify.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
prefetch-key: yes
prefetch: yes
fake-sha1: yes
diff --git a/testdata/val_mal_wc.rpl b/testdata/val_mal_wc.rpl
index 1113f7521e77..5279092dccc8 100644
--- a/testdata/val_mal_wc.rpl
+++ b/testdata/val_mal_wc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_negcache_ds.rpl b/testdata/val_negcache_ds.rpl
index 00af0d6df933..3a2c8d5dd77d 100644
--- a/testdata/val_negcache_ds.rpl
+++ b/testdata/val_negcache_ds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_negcache_dssoa.rpl b/testdata/val_negcache_dssoa.rpl
index b02d98bd1754..0121d1ff63de 100644
--- a/testdata/val_negcache_dssoa.rpl
+++ b/testdata/val_negcache_dssoa.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_negcache_nodata.rpl b/testdata/val_negcache_nodata.rpl
index 374ac4038b0a..2fb9429ec530 100644
--- a/testdata/val_negcache_nodata.rpl
+++ b/testdata/val_negcache_nodata.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
val-override-date: "20180213111425"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
trust-anchor-signaling: no
aggressive-nsec: yes
diff --git a/testdata/val_negcache_nta.rpl b/testdata/val_negcache_nta.rpl
index 2331643f27b4..95c25fd9467c 100644
--- a/testdata/val_negcache_nta.rpl
+++ b/testdata/val_negcache_nta.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
val-override-date: "20180213111425"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
trust-anchor-signaling: no
aggressive-nsec: yes
domain-insecure: "ant.testzone.nlnetlabs.nl"
diff --git a/testdata/val_negcache_nxdomain.rpl b/testdata/val_negcache_nxdomain.rpl
index 06f115bfefef..520c5775d5f5 100644
--- a/testdata/val_negcache_nxdomain.rpl
+++ b/testdata/val_negcache_nxdomain.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
val-override-date: "20180213111425"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
trust-anchor-signaling: no
aggressive-nsec: yes
diff --git a/testdata/val_noadwhennodo.rpl b/testdata/val_noadwhennodo.rpl
index 3d34b6f7a79d..c4b9afd75053 100644
--- a/testdata/val_noadwhennodo.rpl
+++ b/testdata/val_noadwhennodo.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata.rpl b/testdata/val_nodata.rpl
index faf62d481fa1..f19963467efd 100644
--- a/testdata/val_nodata.rpl
+++ b/testdata/val_nodata.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata_ent.rpl b/testdata/val_nodata_ent.rpl
index 0e41635d4096..96ba7dbbc7df 100644
--- a/testdata/val_nodata_ent.rpl
+++ b/testdata/val_nodata_ent.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata_entnx.rpl b/testdata/val_nodata_entnx.rpl
index 2e4fd8756bf3..c8e704e30360 100644
--- a/testdata/val_nodata_entnx.rpl
+++ b/testdata/val_nodata_entnx.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. IN DS 29332 8 2 751f8b755718a7b4ef8920a4b42407520889c3d2142a64f6ffad9e12fa9fc262"
val-override-date: "20140301134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata_entwc.rpl b/testdata/val_nodata_entwc.rpl
index cf64da8ba6f6..c02e9521a86d 100644
--- a/testdata/val_nodata_entwc.rpl
+++ b/testdata/val_nodata_entwc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata_failsig.rpl b/testdata/val_nodata_failsig.rpl
index 2b84e6f91cbd..f1be6636c1e9 100644
--- a/testdata/val_nodata_failsig.rpl
+++ b/testdata/val_nodata_failsig.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata_failwc.rpl b/testdata/val_nodata_failwc.rpl
index 4e4a7c30881c..76fa8acac3e3 100644
--- a/testdata/val_nodata_failwc.rpl
+++ b/testdata/val_nodata_failwc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "nsecwc.nlnetlabs.nl. 10024 IN DS 565 8 2 0C15C04C022700C8713028F6F64CF2343DE627B8F83CDA1C421C65DB 52908A2E"
val-override-date: "20181202115531"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
stub-zone:
diff --git a/testdata/val_nodata_hasdata.rpl b/testdata/val_nodata_hasdata.rpl
index f3483759ea71..18f420c5cf8e 100644
--- a/testdata/val_nodata_hasdata.rpl
+++ b/testdata/val_nodata_hasdata.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodata_zonecut.rpl b/testdata/val_nodata_zonecut.rpl
index 135aa51d6bd5..eb84ac01cdd4 100644
--- a/testdata/val_nodata_zonecut.rpl
+++ b/testdata/val_nodata_zonecut.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodatawc.rpl b/testdata/val_nodatawc.rpl
index 6b33985b2964..542b65e82337 100644
--- a/testdata/val_nodatawc.rpl
+++ b/testdata/val_nodatawc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodatawc_badce.rpl b/testdata/val_nodatawc_badce.rpl
index da8118a848b0..49ee7f17afa0 100644
--- a/testdata/val_nodatawc_badce.rpl
+++ b/testdata/val_nodatawc_badce.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodatawc_nodeny.rpl b/testdata/val_nodatawc_nodeny.rpl
index 2bedc9a29728..35f154ebc1a6 100644
--- a/testdata/val_nodatawc_nodeny.rpl
+++ b/testdata/val_nodatawc_nodeny.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nodatawc_one.rpl b/testdata/val_nodatawc_one.rpl
index 45eb518e27b5..081d20c0b633 100644
--- a/testdata/val_nodatawc_one.rpl
+++ b/testdata/val_nodatawc_one.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b1_nameerror.rpl b/testdata/val_nsec3_b1_nameerror.rpl
index 219426b61500..f9d1d26602de 100644
--- a/testdata/val_nsec3_b1_nameerror.rpl
+++ b/testdata/val_nsec3_b1_nameerror.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b1_nameerror_noce.rpl b/testdata/val_nsec3_b1_nameerror_noce.rpl
index 11a0d0c7fd07..ebe93a6b6f50 100644
--- a/testdata/val_nsec3_b1_nameerror_noce.rpl
+++ b/testdata/val_nsec3_b1_nameerror_noce.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b1_nameerror_nonc.rpl b/testdata/val_nsec3_b1_nameerror_nonc.rpl
index 27d1657986a7..3fc9db6095dc 100644
--- a/testdata/val_nsec3_b1_nameerror_nonc.rpl
+++ b/testdata/val_nsec3_b1_nameerror_nonc.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm 3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b1_nameerror_nowc.rpl b/testdata/val_nsec3_b1_nameerror_nowc.rpl
index ca47687891d6..6c77421a2603 100644
--- a/testdata/val_nsec3_b1_nameerror_nowc.rpl
+++ b/testdata/val_nsec3_b1_nameerror_nowc.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b21_nodataent.rpl b/testdata/val_nsec3_b21_nodataent.rpl
index 625390026c9f..e20a285bca2e 100644
--- a/testdata/val_nsec3_b21_nodataent.rpl
+++ b/testdata/val_nsec3_b21_nodataent.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b21_nodataent_wr.rpl b/testdata/val_nsec3_b21_nodataent_wr.rpl
index 731c35f3d84e..a56f0b82f7fc 100644
--- a/testdata/val_nsec3_b21_nodataent_wr.rpl
+++ b/testdata/val_nsec3_b21_nodataent_wr.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b2_nodata.rpl b/testdata/val_nsec3_b2_nodata.rpl
index 158ad02e73a1..709c918c14b8 100644
--- a/testdata/val_nsec3_b2_nodata.rpl
+++ b/testdata/val_nsec3_b2_nodata.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b3_optout.rpl b/testdata/val_nsec3_b3_optout.rpl
index 48488f410be9..41e2e38933f7 100644
--- a/testdata/val_nsec3_b3_optout.rpl
+++ b/testdata/val_nsec3_b3_optout.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b3_optout_negcache.rpl b/testdata/val_nsec3_b3_optout_negcache.rpl
index 930df96a0c40..e2897e53ffa4 100644
--- a/testdata/val_nsec3_b3_optout_negcache.rpl
+++ b/testdata/val_nsec3_b3_optout_negcache.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b3_optout_noce.rpl b/testdata/val_nsec3_b3_optout_noce.rpl
index a859d2787259..ddcd4c01a3d7 100644
--- a/testdata/val_nsec3_b3_optout_noce.rpl
+++ b/testdata/val_nsec3_b3_optout_noce.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b3_optout_nonc.rpl b/testdata/val_nsec3_b3_optout_nonc.rpl
index e7ff8d42eb51..c4b044e3399e 100644
--- a/testdata/val_nsec3_b3_optout_nonc.rpl
+++ b/testdata/val_nsec3_b3_optout_nonc.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b4_wild.rpl b/testdata/val_nsec3_b4_wild.rpl
index 6143cba11587..db205ab232e0 100644
--- a/testdata/val_nsec3_b4_wild.rpl
+++ b/testdata/val_nsec3_b4_wild.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b4_wild_wr.rpl b/testdata/val_nsec3_b4_wild_wr.rpl
index 1aaae027feac..50daf3809e9b 100644
--- a/testdata/val_nsec3_b4_wild_wr.rpl
+++ b/testdata/val_nsec3_b4_wild_wr.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b5_wcnodata.rpl b/testdata/val_nsec3_b5_wcnodata.rpl
index ea8fa5b4bd8c..a10d6b75ae8a 100644
--- a/testdata/val_nsec3_b5_wcnodata.rpl
+++ b/testdata/val_nsec3_b5_wcnodata.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b5_wcnodata_noce.rpl b/testdata/val_nsec3_b5_wcnodata_noce.rpl
index 4e7995cf0f9b..f35eae18dd25 100644
--- a/testdata/val_nsec3_b5_wcnodata_noce.rpl
+++ b/testdata/val_nsec3_b5_wcnodata_noce.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b5_wcnodata_nonc.rpl b/testdata/val_nsec3_b5_wcnodata_nonc.rpl
index f3356972cef0..e4c58c62a65c 100644
--- a/testdata/val_nsec3_b5_wcnodata_nonc.rpl
+++ b/testdata/val_nsec3_b5_wcnodata_nonc.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_b5_wcnodata_nowc.rpl b/testdata/val_nsec3_b5_wcnodata_nowc.rpl
index 32bc7290a838..27f68d6149fa 100644
--- a/testdata/val_nsec3_b5_wcnodata_nowc.rpl
+++ b/testdata/val_nsec3_b5_wcnodata_nowc.rpl
@@ -3,6 +3,7 @@ server:
trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
val-override-date: "20120420235959"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_cname_ds.rpl b/testdata/val_nsec3_cname_ds.rpl
index 200b467d2268..a3c2b8a1104b 100644
--- a/testdata/val_nsec3_cname_ds.rpl
+++ b/testdata/val_nsec3_cname_ds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_cname_par.rpl b/testdata/val_nsec3_cname_par.rpl
index 71c095113174..e07a4aea4472 100644
--- a/testdata/val_nsec3_cname_par.rpl
+++ b/testdata/val_nsec3_cname_par.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_cname_sub.rpl b/testdata/val_nsec3_cname_sub.rpl
index 52af44084858..233afb086260 100644
--- a/testdata/val_nsec3_cname_sub.rpl
+++ b/testdata/val_nsec3_cname_sub.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_cnametocnamewctoposwc.rpl b/testdata/val_nsec3_cnametocnamewctoposwc.rpl
index 24bf6cf19b4c..23d2b6a89c44 100644
--- a/testdata/val_nsec3_cnametocnamewctoposwc.rpl
+++ b/testdata/val_nsec3_cnametocnamewctoposwc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. IN DNSKEY 257 3 8 AwEAAdL6YJdvoKQJEt/SgB6MrbQ2RDwnrcQQb6bDE8FpGgLen6hvF31ntVsZ3RZzhCmwL6lvumOLFIRKaP9ZBEVutT9iMoF2dNRbT0TCUrv6uQNHcuCZ0BJhuDNBU42f3yOnfFv7PKxd0NP+yFHJkvDQAVLMB5GeUQuYnvgQGeZsf/3b"
val-override-date: "-1"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_iter_high.rpl b/testdata/val_nsec3_iter_high.rpl
index 0315537d87ac..2b78f0b7f0cd 100644
--- a/testdata/val_nsec3_iter_high.rpl
+++ b/testdata/val_nsec3_iter_high.rpl
@@ -5,6 +5,7 @@ server:
val-override-date: "20070916134226"
val-nsec3-keysize-iterations: "1024 100 2048 200 4096 500"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_nodatawccname.rpl b/testdata/val_nsec3_nodatawccname.rpl
index 8a544640f9a6..48631bcb6f79 100644
--- a/testdata/val_nsec3_nodatawccname.rpl
+++ b/testdata/val_nsec3_nodatawccname.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_nods.rpl b/testdata/val_nsec3_nods.rpl
index 1496a98d53a0..7151e11ee9b7 100644
--- a/testdata/val_nsec3_nods.rpl
+++ b/testdata/val_nsec3_nods.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_nods_badopt.rpl b/testdata/val_nsec3_nods_badopt.rpl
index 607dd8bbdbc3..6ddd474316dc 100644
--- a/testdata/val_nsec3_nods_badopt.rpl
+++ b/testdata/val_nsec3_nods_badopt.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_nods_badsig.rpl b/testdata/val_nsec3_nods_badsig.rpl
index d12530594c7f..1c37d21e12f5 100644
--- a/testdata/val_nsec3_nods_badsig.rpl
+++ b/testdata/val_nsec3_nods_badsig.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_nods_negcache.rpl b/testdata/val_nsec3_nods_negcache.rpl
index d542aad9bcee..d2ba7309a822 100644
--- a/testdata/val_nsec3_nods_negcache.rpl
+++ b/testdata/val_nsec3_nods_negcache.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_optout_ad.rpl b/testdata/val_nsec3_optout_ad.rpl
index 12a8716ef2bd..824cf6d43260 100644
--- a/testdata/val_nsec3_optout_ad.rpl
+++ b/testdata/val_nsec3_optout_ad.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. DS 57024 7 1 46d134be319b2cc910b9938f1cb25dc41abb27bf"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_wcany.rpl b/testdata/val_nsec3_wcany.rpl
index 256bf6061026..24bdaeb182ce 100644
--- a/testdata/val_nsec3_wcany.rpl
+++ b/testdata/val_nsec3_wcany.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nsec3_wcany_nodeny.rpl b/testdata/val_nsec3_wcany_nodeny.rpl
index 1ac1514287aa..2e27fb5025d1 100644
--- a/testdata/val_nsec3_wcany_nodeny.rpl
+++ b/testdata/val_nsec3_wcany_nodeny.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nx.rpl b/testdata/val_nx.rpl
index c4684a1e4e49..d0e4bb33998e 100644
--- a/testdata/val_nx.rpl
+++ b/testdata/val_nx.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nx_failwc.rpl b/testdata/val_nx_failwc.rpl
index dc580854cbb4..eb2f5ba7e421 100644
--- a/testdata/val_nx_failwc.rpl
+++ b/testdata/val_nx_failwc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "nsecwc.nlnetlabs.nl. 10024 IN DS 565 8 2 0C15C04C022700C8713028F6F64CF2343DE627B8F83CDA1C421C65DB 52908A2E"
val-override-date: "20181202115531"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
stub-zone:
diff --git a/testdata/val_nx_nodeny.rpl b/testdata/val_nx_nodeny.rpl
index b1abb42c3eb8..311b6ab7e98e 100644
--- a/testdata/val_nx_nodeny.rpl
+++ b/testdata/val_nx_nodeny.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nx_nowc.rpl b/testdata/val_nx_nowc.rpl
index 12aca55d8a06..3a5aa18dded9 100644
--- a/testdata/val_nx_nowc.rpl
+++ b/testdata/val_nx_nowc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nx_nsec3_collision.rpl b/testdata/val_nx_nsec3_collision.rpl
index 25f962147ff9..41cd0d6e7b47 100644
--- a/testdata/val_nx_nsec3_collision.rpl
+++ b/testdata/val_nx_nsec3_collision.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nx_nsec3_params.rpl b/testdata/val_nx_nsec3_params.rpl
index 90ac45d13825..dd3ab6b57dbb 100644
--- a/testdata/val_nx_nsec3_params.rpl
+++ b/testdata/val_nx_nsec3_params.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_nx_overreach.rpl b/testdata/val_nx_overreach.rpl
index d6bf758f1822..c63d4da5c3d8 100644
--- a/testdata/val_nx_overreach.rpl
+++ b/testdata/val_nx_overreach.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_pos_truncns.rpl b/testdata/val_pos_truncns.rpl
index 2b52e772a8bc..57f320ea383b 100644
--- a/testdata/val_pos_truncns.rpl
+++ b/testdata/val_pos_truncns.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_positive.rpl b/testdata/val_positive.rpl
index d5a60612e9b3..bef91f6df650 100644
--- a/testdata/val_positive.rpl
+++ b/testdata/val_positive.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_positive_wc.rpl b/testdata/val_positive_wc.rpl
index 4b61a8dae755..5384acf63256 100644
--- a/testdata/val_positive_wc.rpl
+++ b/testdata/val_positive_wc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_positive_wc_nodeny.rpl b/testdata/val_positive_wc_nodeny.rpl
index 6d14ae82bf11..e87611e89de4 100644
--- a/testdata/val_positive_wc_nodeny.rpl
+++ b/testdata/val_positive_wc_nodeny.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_qds_badanc.rpl b/testdata/val_qds_badanc.rpl
index dce22a897e55..5c9f75660d7b 100644
--- a/testdata/val_qds_badanc.rpl
+++ b/testdata/val_qds_badanc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_qds_oneanc.rpl b/testdata/val_qds_oneanc.rpl
index 183611d85dda..c742cfad3d8b 100644
--- a/testdata/val_qds_oneanc.rpl
+++ b/testdata/val_qds_oneanc.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_qds_twoanc.rpl b/testdata/val_qds_twoanc.rpl
index 8d7bd1c01f8f..dc66388f82d6 100644
--- a/testdata/val_qds_twoanc.rpl
+++ b/testdata/val_qds_twoanc.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_refer_unsignadd.rpl b/testdata/val_refer_unsignadd.rpl
index a83998f931f5..90e0f0421b4c 100644
--- a/testdata/val_refer_unsignadd.rpl
+++ b/testdata/val_refer_unsignadd.rpl
@@ -6,6 +6,7 @@ server:
val-override-date: "20070916134226"
access-control: 127.0.0.1 allow_snoop
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_referd.rpl b/testdata/val_referd.rpl
index 6b3d1087d99d..dfc82e1cfd22 100644
--- a/testdata/val_referd.rpl
+++ b/testdata/val_referd.rpl
@@ -6,6 +6,7 @@ server:
harden-referral-path: no
access-control: 127.0.0.1 allow_snoop
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_referglue.rpl b/testdata/val_referglue.rpl
index 836f46ae920b..a9714d1c8040 100644
--- a/testdata/val_referglue.rpl
+++ b/testdata/val_referglue.rpl
@@ -6,6 +6,7 @@ server:
directory: ""
access-control: 127.0.0.1 allow_snoop
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_rrsig.rpl b/testdata/val_rrsig.rpl
index e8c39f0fc904..d9684e497e45 100644
--- a/testdata/val_rrsig.rpl
+++ b/testdata/val_rrsig.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_secds.rpl b/testdata/val_secds.rpl
index f7f4e97ece31..61786276d177 100644
--- a/testdata/val_secds.rpl
+++ b/testdata/val_secds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_spurious_ns.rpl b/testdata/val_spurious_ns.rpl
index 3a6281ed0eef..0f9d8431007a 100644
--- a/testdata/val_spurious_ns.rpl
+++ b/testdata/val_spurious_ns.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ta_algo_dnskey.rpl b/testdata/val_ta_algo_dnskey.rpl
index 9770e5af1e9e..a1f1ed5d0a22 100644
--- a/testdata/val_ta_algo_dnskey.rpl
+++ b/testdata/val_ta_algo_dnskey.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ta_algo_dnskey_dp.rpl b/testdata/val_ta_algo_dnskey_dp.rpl
index aa8edc4df4ad..1dd48bfb27e0 100644
--- a/testdata/val_ta_algo_dnskey_dp.rpl
+++ b/testdata/val_ta_algo_dnskey_dp.rpl
@@ -5,6 +5,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
harden-algo-downgrade: no
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ta_algo_missing.rpl b/testdata/val_ta_algo_missing.rpl
index 1480f0d0bc2a..a905c223bb20 100644
--- a/testdata/val_ta_algo_missing.rpl
+++ b/testdata/val_ta_algo_missing.rpl
@@ -6,6 +6,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 30899 7 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
harden-algo-downgrade: yes
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_ta_algo_missing_dp.rpl b/testdata/val_ta_algo_missing_dp.rpl
index 737cbd117a46..4709407ed050 100644
--- a/testdata/val_ta_algo_missing_dp.rpl
+++ b/testdata/val_ta_algo_missing_dp.rpl
@@ -6,6 +6,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 30899 7 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
harden-algo-downgrade: no
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_unalgo_anchor.rpl b/testdata/val_unalgo_anchor.rpl
index 0848b7063003..24dcbaf92a75 100644
--- a/testdata/val_unalgo_anchor.rpl
+++ b/testdata/val_unalgo_anchor.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 208 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
stub-zone:
diff --git a/testdata/val_unalgo_dlv.rpl b/testdata/val_unalgo_dlv.rpl
index 7419ebecef69..e78226fc8094 100644
--- a/testdata/val_unalgo_dlv.rpl
+++ b/testdata/val_unalgo_dlv.rpl
@@ -4,6 +4,7 @@ server:
dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_unalgo_ds.rpl b/testdata/val_unalgo_ds.rpl
index b8fc44f987d9..65db9b236845 100644
--- a/testdata/val_unalgo_ds.rpl
+++ b/testdata/val_unalgo_ds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_unsec_cname.rpl b/testdata/val_unsec_cname.rpl
index 9be8054b4bc6..ad02daec81dc 100644
--- a/testdata/val_unsec_cname.rpl
+++ b/testdata/val_unsec_cname.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_unsecds.rpl b/testdata/val_unsecds.rpl
index 7a19351e2a7d..8678160ca0ed 100644
--- a/testdata/val_unsecds.rpl
+++ b/testdata/val_unsecds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_unsecds_negcache.rpl b/testdata/val_unsecds_negcache.rpl
index 8136d3cb46fa..2e9b1e7951f4 100644
--- a/testdata/val_unsecds_negcache.rpl
+++ b/testdata/val_unsecds_negcache.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_unsecds_qtypeds.rpl b/testdata/val_unsecds_qtypeds.rpl
index e4b9a2265088..e277fd788cef 100644
--- a/testdata/val_unsecds_qtypeds.rpl
+++ b/testdata/val_unsecds_qtypeds.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/val_wild_pos.rpl b/testdata/val_wild_pos.rpl
index 1d4357b08671..2fc3847e8065 100644
--- a/testdata/val_wild_pos.rpl
+++ b/testdata/val_wild_pos.rpl
@@ -4,6 +4,7 @@ server:
trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
val-override-date: "20070916134226"
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
fake-sha1: yes
trust-anchor-signaling: no
diff --git a/testdata/views.rpl b/testdata/views.rpl
index d4031363b9ef..5573cd83cfaf 100644
--- a/testdata/views.rpl
+++ b/testdata/views.rpl
@@ -1,6 +1,7 @@
; config options
server:
target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
access-control: 10.10.10.0/24 allow
access-control-view: 10.10.10.10/32 "view1"
diff --git a/util/alloc.c b/util/alloc.c
index 2c6e1a23f6c0..908b1f42361f 100644
--- a/util/alloc.c
+++ b/util/alloc.c
@@ -126,10 +126,40 @@ alloc_init(struct alloc_cache* alloc, struct alloc_cache* super,
}
}
+/** free the special list */
+static void
+alloc_clear_special_list(struct alloc_cache* alloc)
+{
+ alloc_special_type* p, *np;
+ /* free */
+ p = alloc->quar;
+ while(p) {
+ np = alloc_special_next(p);
+ /* deinit special type */
+ lock_rw_destroy(&p->entry.lock);
+ free(p);
+ p = np;
+ }
+}
+
+void
+alloc_clear_special(struct alloc_cache* alloc)
+{
+ if(!alloc->super) {
+ lock_quick_lock(&alloc->lock);
+ }
+ alloc_clear_special_list(alloc);
+ alloc->quar = 0;
+ alloc->num_quar = 0;
+ if(!alloc->super) {
+ lock_quick_unlock(&alloc->lock);
+ }
+}
+
void
alloc_clear(struct alloc_cache* alloc)
{
- alloc_special_type* p, *np;
+ alloc_special_type* p;
struct regional* r, *nr;
if(!alloc)
return;
@@ -147,15 +177,7 @@ alloc_clear(struct alloc_cache* alloc)
alloc->super->num_quar += alloc->num_quar;
lock_quick_unlock(&alloc->super->lock);
} else {
- /* free */
- p = alloc->quar;
- while(p) {
- np = alloc_special_next(p);
- /* deinit special type */
- lock_rw_destroy(&p->entry.lock);
- free(p);
- p = np;
- }
+ alloc_clear_special_list(alloc);
}
alloc->quar = 0;
alloc->num_quar = 0;
diff --git a/util/alloc.h b/util/alloc.h
index 9839a4550175..ee03b074e39d 100644
--- a/util/alloc.h
+++ b/util/alloc.h
@@ -116,6 +116,14 @@ void alloc_init(struct alloc_cache* alloc, struct alloc_cache* super,
void alloc_clear(struct alloc_cache* alloc);
/**
+ * Free the special alloced items. The rrset and message caches must be
+ * empty, there must be no more references to rrset pointers into the
+ * rrset cache.
+ * @param alloc: the special allocs are freed.
+ */
+void alloc_clear_special(struct alloc_cache* alloc);
+
+/**
* Get a new special_type element.
* @param alloc: where to alloc it.
* @return: memory block. Will not return NULL (instead fatal_exit).
diff --git a/util/config_file.c b/util/config_file.c
index 3bf5f6308715..b76ed56fc209 100644
--- a/util/config_file.c
+++ b/util/config_file.c
@@ -109,6 +109,7 @@ config_create(void)
cfg->ssl_port = UNBOUND_DNS_OVER_TLS_PORT;
cfg->ssl_upstream = 0;
cfg->tls_cert_bundle = NULL;
+ cfg->tls_win_cert = 0;
cfg->use_syslog = 1;
cfg->log_identity = NULL; /* changed later with argv[0] */
cfg->log_time_ascii = 0;
@@ -161,7 +162,7 @@ config_create(void)
if(!(cfg->logfile = strdup(""))) goto error_exit;
if(!(cfg->pidfile = strdup(PIDFILE))) goto error_exit;
if(!(cfg->target_fetch_policy = strdup("3 2 1 0 0"))) goto error_exit;
- cfg->low_rtt_pct = 0;
+ cfg->low_rtt_permil = 0;
cfg->low_rtt = 45;
cfg->donotqueryaddrs = NULL;
cfg->donotquery_localhost = 1;
@@ -280,7 +281,7 @@ config_create(void)
cfg->ratelimit_below_domain = NULL;
cfg->ip_ratelimit_factor = 10;
cfg->ratelimit_factor = 10;
- cfg->qname_minimisation = 0;
+ cfg->qname_minimisation = 1;
cfg->qname_minimisation_strict = 0;
cfg->shm_enable = 0;
cfg->shm_key = 11777;
@@ -455,7 +456,9 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_STR("ssl-service-pem:", ssl_service_pem)
else S_NUMBER_NONZERO("ssl-port:", ssl_port)
else S_STR("tls-cert-bundle:", tls_cert_bundle)
- else S_STRLIST("additional-tls-port:", additional_tls_port)
+ else S_YNO("tls-win-cert:", tls_win_cert)
+ else S_STRLIST("additional-tls-port:", tls_additional_ports)
+ else S_STRLIST("tls-additional-ports:", tls_additional_ports)
else S_YNO("interface-automatic:", if_automatic)
else S_YNO("use-systemd:", use_systemd)
else S_YNO("do-daemonize:", do_daemonize)
@@ -618,7 +621,8 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_NUMBER_OR_ZERO("ip-ratelimit-factor:", ip_ratelimit_factor)
else S_NUMBER_OR_ZERO("ratelimit-factor:", ratelimit_factor)
else S_NUMBER_OR_ZERO("low-rtt:", low_rtt)
- else S_NUMBER_OR_ZERO("low-rtt-pct:", low_rtt_pct)
+ else S_NUMBER_OR_ZERO("low-rtt-pct:", low_rtt_permil)
+ else S_NUMBER_OR_ZERO("low-rtt-permil:", low_rtt_permil)
else S_YNO("qname-minimisation:", qname_minimisation)
else S_YNO("qname-minimisation-strict:", qname_minimisation_strict)
#ifdef USE_IPSECMOD
@@ -874,7 +878,8 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_STR(opt, "ssl-service-pem", ssl_service_pem)
else O_DEC(opt, "ssl-port", ssl_port)
else O_STR(opt, "tls-cert-bundle", tls_cert_bundle)
- else O_LST(opt, "additional-tls-port", additional_tls_port)
+ else O_YNO(opt, "tls-win-cert", tls_win_cert)
+ else O_LST(opt, "tls-additional-ports", tls_additional_ports)
else O_YNO(opt, "use-systemd", use_systemd)
else O_YNO(opt, "do-daemonize", do_daemonize)
else O_STR(opt, "chroot", chrootdir)
@@ -1001,7 +1006,8 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_DEC(opt, "ip-ratelimit-factor", ip_ratelimit_factor)
else O_DEC(opt, "ratelimit-factor", ratelimit_factor)
else O_DEC(opt, "low-rtt", low_rtt)
- else O_DEC(opt, "low-rtt-pct", low_rtt_pct)
+ else O_DEC(opt, "low-rtt-pct", low_rtt_permil)
+ else O_DEC(opt, "low-rtt-permil", low_rtt_permil)
else O_DEC(opt, "val-sig-skew-min", val_sig_skew_min)
else O_DEC(opt, "val-sig-skew-max", val_sig_skew_max)
else O_YNO(opt, "qname-minimisation", qname_minimisation)
@@ -1297,7 +1303,7 @@ config_delete(struct config_file* cfg)
free(cfg->ssl_service_key);
free(cfg->ssl_service_pem);
free(cfg->tls_cert_bundle);
- config_delstrlist(cfg->additional_tls_port);
+ config_delstrlist(cfg->tls_additional_ports);
free(cfg->log_identity);
config_del_strarray(cfg->ifs, cfg->num_ifs);
config_del_strarray(cfg->out_ifs, cfg->num_out_ifs);
diff --git a/util/config_file.h b/util/config_file.h
index eba60b9a1356..548cc33e908f 100644
--- a/util/config_file.h
+++ b/util/config_file.h
@@ -102,8 +102,10 @@ struct config_file {
int ssl_upstream;
/** cert bundle for outgoing connections */
char* tls_cert_bundle;
+ /** should the system certificate store get added to the cert bundle */
+ int tls_win_cert;
/** additional tls ports */
- struct config_strlist* additional_tls_port;
+ struct config_strlist* tls_additional_ports;
/** outgoing port range number of ports (per thread) */
int outgoing_num_ports;
@@ -144,7 +146,7 @@ struct config_file {
/** the target fetch policy for the iterator */
char* target_fetch_policy;
/** percent*10, how many times in 1000 to pick low rtt destinations */
- int low_rtt_pct;
+ int low_rtt_permil;
/** what time in msec is a low rtt destination */
int low_rtt;
diff --git a/util/configlexer.c b/util/configlexer.c
index 7bc1f2e6f78f..941501eedc42 100644
--- a/util/configlexer.c
+++ b/util/configlexer.c
@@ -363,8 +363,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 263
-#define YY_END_OF_BUFFER 264
+#define YY_NUM_RULES 266
+#define YY_END_OF_BUFFER 267
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -372,294 +372,297 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[2599] =
+static yyconst flex_int16_t yy_accept[2631] =
{ 0,
- 1, 1, 245, 245, 249, 249, 253, 253, 257, 257,
- 1, 1, 264, 261, 1, 243, 243, 262, 2, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 262, 245, 246, 246, 247, 262, 249, 250, 250,
- 251, 262, 256, 253, 254, 254, 255, 262, 257, 258,
- 258, 259, 262, 260, 244, 2, 248, 260, 262, 261,
- 0, 1, 2, 2, 2, 2, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 245,
- 0, 249, 0, 256, 0, 253, 257, 0, 260, 0,
- 2, 2, 260, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 260, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 101, 261, 261, 261, 261, 261, 261, 261, 260, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 85, 261, 261, 261, 261,
- 261, 261, 8, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 106, 261, 260, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 260, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 45, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 190, 261, 14, 15, 261,
- 18, 17, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 100, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 176, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 3, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 260, 261, 261, 261,
- 261, 261, 261, 261, 237, 261, 261, 236, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 252, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 48,
- 261, 214, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 49, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 165, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 20, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 121, 261, 261, 252, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 219, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 140, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 120, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 83, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 28, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 29, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 46, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 99, 261, 261, 261, 261, 261, 98, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 47, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 141, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 36, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 205, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 40, 261,
- 41, 261, 261, 261, 261, 86, 261, 87, 261, 261,
- 261, 84, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 7, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 183, 261, 261, 261, 261, 123, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 37, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 157, 261, 156, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 16,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 50, 261, 261, 261, 261, 261, 261, 261,
- 261, 164, 261, 261, 261, 261, 261, 89, 88, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 151, 261, 261, 261, 261, 261, 261, 261,
- 261, 107, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 68, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 72, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 44, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 154, 155,
- 261, 215, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 6, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 217, 261, 261, 261, 238, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 34, 261, 261, 261, 261, 261, 261, 261, 261, 147,
- 261, 261, 261, 102, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 169, 261, 148, 261, 261, 181,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 35, 261, 261, 261,
- 261, 261, 261, 104, 93, 261, 94, 261, 261, 92,
- 261, 261, 261, 261, 261, 261, 261, 261, 118, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 204, 261, 261, 261, 261, 261, 261, 261, 261, 149,
- 261, 261, 261, 261, 261, 152, 261, 261, 180, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 82, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 42, 261, 261, 261, 22, 261,
- 261, 261, 261, 261, 19, 261, 261, 261, 23, 261,
- 128, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 57,
- 59, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 221, 261, 261, 261, 191, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 95, 261, 261, 261, 261, 261, 261,
- 261, 261, 117, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 232, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 122, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 175, 261, 261, 261,
- 261, 261, 261, 261, 261, 241, 261, 261, 261, 261,
- 261, 261, 261, 261, 139, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 134, 261, 142, 261, 261,
- 261, 261, 261, 110, 261, 261, 261, 261, 261, 78,
- 261, 261, 261, 261, 167, 261, 261, 261, 261, 261,
- 182, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 196, 261, 261, 261, 261, 261, 261,
- 103, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 138, 261, 261, 261, 261, 261, 60, 61, 261, 261,
- 261, 261, 261, 43, 261, 261, 261, 261, 261, 67,
- 143, 261, 158, 261, 184, 153, 261, 261, 261, 53,
-
- 261, 145, 261, 261, 261, 261, 261, 9, 261, 261,
- 261, 81, 261, 261, 261, 261, 209, 261, 261, 261,
- 166, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 137, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 124,
- 220, 261, 261, 261, 261, 195, 261, 261, 261, 261,
- 261, 261, 261, 261, 177, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 235, 261, 144, 261, 261, 261, 52, 54, 261, 261,
- 261, 261, 261, 261, 261, 80, 261, 261, 261, 261,
- 207, 261, 261, 261, 216, 261, 261, 261, 261, 261,
- 261, 171, 30, 24, 26, 261, 261, 261, 261, 261,
- 31, 25, 27, 261, 261, 261, 261, 261, 261, 77,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 173, 170, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 51, 261, 105, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 119, 13, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 230, 261, 233, 261, 261, 261,
- 261, 261, 261, 12, 261, 261, 21, 261, 261, 261,
- 213, 261, 261, 261, 218, 261, 55, 261, 179, 261,
- 172, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 133, 132, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 174, 168, 261,
- 261, 261, 222, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 62, 261, 261, 261, 208,
-
- 261, 261, 261, 261, 261, 178, 261, 261, 261, 261,
- 261, 261, 261, 261, 239, 240, 130, 56, 261, 261,
- 261, 90, 91, 261, 125, 261, 127, 261, 159, 261,
- 261, 261, 131, 261, 261, 185, 261, 261, 261, 261,
- 261, 261, 261, 112, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 192, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 160, 261, 261, 206, 261, 234, 261, 261, 261, 38,
- 261, 261, 261, 261, 4, 261, 261, 111, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 188,
-
- 32, 33, 261, 261, 261, 261, 261, 261, 261, 223,
- 261, 261, 261, 261, 261, 261, 194, 261, 261, 163,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 65,
- 261, 39, 212, 261, 189, 261, 261, 11, 261, 261,
- 261, 261, 261, 261, 161, 69, 261, 261, 261, 261,
- 261, 136, 261, 261, 261, 261, 261, 114, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 193, 108, 261,
- 96, 97, 261, 261, 261, 71, 75, 70, 261, 63,
- 261, 261, 261, 10, 261, 261, 261, 210, 261, 261,
- 261, 261, 135, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 76, 74, 261, 64, 231, 261, 261, 261, 150, 261,
- 261, 162, 261, 261, 261, 261, 261, 261, 126, 58,
- 261, 261, 261, 261, 261, 224, 261, 261, 261, 261,
- 261, 261, 261, 109, 73, 115, 116, 66, 261, 211,
- 129, 261, 261, 261, 261, 187, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 79, 261, 186,
- 261, 203, 228, 261, 261, 261, 261, 261, 261, 261,
-
- 261, 261, 5, 261, 261, 261, 229, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 113, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 146, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 225, 261,
- 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
- 261, 261, 261, 261, 261, 261, 242, 261, 261, 199,
- 261, 261, 261, 261, 261, 226, 261, 261, 261, 261,
- 261, 261, 227, 261, 261, 261, 197, 261, 200, 201,
- 261, 261, 261, 261, 261, 198, 202, 0
-
+ 1, 1, 248, 248, 252, 252, 256, 256, 260, 260,
+ 1, 1, 267, 264, 1, 246, 246, 265, 2, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 265, 248, 249, 249, 250, 265, 252, 253, 253,
+ 254, 265, 259, 256, 257, 257, 258, 265, 260, 261,
+ 261, 262, 265, 263, 247, 2, 251, 263, 265, 264,
+ 0, 1, 2, 2, 2, 2, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 248,
+ 0, 252, 0, 259, 0, 256, 260, 0, 263, 0,
+ 2, 2, 263, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 263, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 103, 264, 264, 264, 264, 264, 264, 264, 263, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 87, 264, 264, 264, 264,
+ 264, 264, 8, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 108, 264, 263, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 263, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 47, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 192,
+ 264, 14, 15, 264, 18, 17, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 102, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 178, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 3, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 263, 264, 264, 264, 264, 264, 264, 264,
+ 240, 264, 264, 239, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 255, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 50, 264, 216, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 51,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 167, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 20, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 123, 264, 264, 255, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 222, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 142, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 122, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 85, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 28, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 29, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 48, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 101, 264, 264, 264, 264, 264, 100, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 49, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 143, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 38, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 207, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 42,
+ 264, 43, 264, 264, 264, 264, 88, 264, 89, 264,
+
+ 264, 264, 86, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 7, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 185, 264, 264, 264, 264, 125,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 39, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 159,
+ 264, 158, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 16, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 52, 264, 264, 264,
+ 264, 264, 264, 264, 264, 166, 264, 264, 264, 264,
+ 264, 91, 90, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 153, 264,
+ 264, 264, 264, 264, 264, 264, 264, 109, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 70, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 74, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 46, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 156, 157, 264, 217, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 6, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 220,
+ 264, 264, 264, 241, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 36,
+ 264, 264, 264, 264, 264, 264, 264, 264, 149, 264,
+ 264, 264, 104, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 171, 264, 150, 264, 264, 183, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 37, 264, 264, 264, 264,
+ 264, 264, 106, 95, 264, 96, 264, 264, 94, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 120, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 206,
+ 264, 264, 264, 264, 264, 264, 264, 264, 151, 264,
+ 264, 264, 264, 264, 154, 264, 264, 264, 182, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 84, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 44, 264, 264, 264, 22, 264,
+ 264, 264, 264, 264, 19, 264, 264, 264, 264, 23,
+ 32, 264, 130, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 59, 61, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 224, 264, 264, 264, 193,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 97, 264, 264, 264, 264,
+ 264, 264, 264, 264, 119, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 235, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 124, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 177,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 244, 264,
+ 264, 264, 264, 264, 264, 264, 264, 141, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 136,
+ 264, 144, 264, 264, 264, 264, 264, 112, 264, 264,
+ 264, 264, 264, 80, 264, 264, 264, 264, 169, 264,
+ 264, 264, 264, 264, 184, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 198, 264, 264,
+ 264, 264, 264, 264, 105, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 140, 264, 264, 264, 264, 264,
+
+ 62, 63, 264, 264, 264, 264, 264, 45, 264, 264,
+ 264, 264, 264, 69, 145, 264, 160, 264, 186, 155,
+ 218, 264, 264, 264, 55, 264, 147, 264, 264, 264,
+ 264, 264, 9, 264, 264, 264, 83, 264, 264, 264,
+ 264, 211, 264, 264, 264, 168, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 139, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 126, 223, 264, 264, 264,
+
+ 264, 197, 264, 264, 264, 264, 264, 264, 264, 264,
+ 179, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 238, 264, 146, 264,
+ 264, 264, 54, 56, 264, 264, 264, 264, 264, 264,
+ 264, 82, 264, 264, 264, 264, 209, 264, 264, 264,
+ 219, 264, 264, 264, 264, 264, 264, 173, 30, 24,
+ 26, 264, 264, 264, 264, 264, 264, 31, 25, 27,
+ 264, 264, 264, 264, 264, 264, 79, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 175, 172, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 53,
+ 264, 107, 264, 264, 264, 264, 264, 264, 264, 264,
+ 121, 13, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 233, 264, 236, 264, 264, 264, 264, 264, 264,
+ 12, 264, 264, 21, 264, 264, 264, 215, 264, 264,
+ 264, 221, 264, 57, 264, 181, 264, 174, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 135, 134, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 176, 170, 264, 264, 264,
+
+ 225, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 64, 264, 264, 264, 210, 264, 264,
+ 264, 264, 264, 180, 264, 264, 264, 264, 264, 264,
+ 264, 264, 242, 243, 132, 58, 264, 264, 264, 92,
+ 93, 264, 264, 127, 264, 129, 264, 161, 264, 264,
+ 264, 133, 264, 264, 187, 264, 264, 264, 264, 264,
+ 264, 264, 114, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 194, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 162,
+
+ 264, 264, 208, 264, 237, 264, 264, 264, 40, 264,
+ 264, 264, 264, 4, 264, 264, 113, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 190,
+ 33, 34, 264, 264, 264, 264, 264, 264, 264, 226,
+ 264, 264, 264, 264, 264, 264, 196, 264, 264, 165,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 67,
+ 264, 41, 214, 264, 191, 264, 264, 11, 264, 264,
+ 264, 264, 264, 264, 163, 71, 264, 264, 264, 264,
+ 264, 264, 138, 264, 264, 264, 264, 264, 116, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 195, 110,
+
+ 264, 98, 99, 264, 264, 264, 73, 77, 72, 264,
+ 65, 264, 264, 264, 10, 264, 264, 264, 212, 264,
+ 35, 264, 264, 264, 137, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 78, 76, 264, 66, 234, 264, 264, 264,
+ 152, 264, 264, 164, 264, 264, 264, 264, 264, 264,
+ 128, 60, 264, 264, 264, 264, 264, 227, 264, 264,
+ 264, 264, 264, 264, 264, 111, 75, 117, 118, 68,
+ 264, 213, 131, 264, 264, 264, 264, 189, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 81,
+ 264, 188, 264, 205, 231, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 5, 264, 264, 264, 232, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 115, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 148, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 228, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 245, 264,
+
+ 264, 201, 264, 264, 264, 264, 264, 229, 264, 264,
+ 264, 264, 264, 264, 230, 264, 264, 264, 199, 264,
+ 202, 203, 264, 264, 264, 264, 264, 200, 204, 0
} ;
static yyconst YY_CHAR yy_ec[256] =
@@ -705,15 +708,15 @@ static yyconst YY_CHAR yy_meta[67] =
1, 1, 1, 1, 1, 1
} ;
-static yyconst flex_uint16_t yy_base[2613] =
+static yyconst flex_uint16_t yy_base[2645] =
{ 0,
0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
- 131, 137, 352, 307, 96, 7434, 7434, 7434, 109, 171,
+ 131, 137, 352, 307, 96, 7525, 7525, 7525, 109, 171,
85, 142, 215, 83, 117, 152, 207, 50, 110, 75,
167, 231, 112, 275, 121, 259, 323, 243, 291, 320,
- 170, 368, 289, 7434, 7434, 7434, 104, 288, 7434, 7434,
- 7434, 147, 286, 289, 7434, 7434, 7434, 305, 239, 7434,
- 7434, 7434, 160, 210, 7434, 372, 7434, 177, 382, 201,
+ 170, 368, 289, 7525, 7525, 7525, 104, 288, 7525, 7525,
+ 7525, 147, 286, 289, 7525, 7525, 7525, 305, 239, 7525,
+ 7525, 7525, 160, 210, 7525, 372, 7525, 177, 382, 201,
386, 115, 0, 390, 0, 0, 160, 162, 199, 204,
188, 169, 303, 222, 256, 248, 377, 369, 254, 226,
313, 271, 365, 382, 296, 327, 391, 392, 384, 420,
@@ -742,554 +745,560 @@ static yyconst flex_uint16_t yy_base[2613] =
1037, 1044, 1061, 1057, 1054, 1071, 1058, 1055, 1062, 1064,
1075, 1077, 1099, 1085, 1098, 1111, 1102, 1104, 1113, 1094,
- 1125, 1124, 1122, 1132, 1126, 1151, 1130, 1135, 1148, 1155,
- 7434, 1173, 1166, 1218, 1164, 1175, 1209, 1181, 1168, 1196,
- 1171, 1208, 1212, 1223, 1198, 1138, 1213, 1248, 1178, 1202,
- 1226, 1240, 1236, 1247, 1243, 1245, 1244, 1263, 1271, 1251,
- 1253, 1279, 1287, 1261, 1275, 1278, 1283, 1293, 1296, 1309,
- 1298, 1292, 1314, 1311, 1317, 1323, 1306, 1334, 1333, 1326,
- 1321, 1325, 1341, 1350, 1344, 1355, 1362, 1338, 1364, 1366,
- 1382, 1372, 1376, 1365, 1389, 1378, 1373, 1368, 1390, 1392,
-
- 1393, 1400, 1406, 1402, 1417, 7434, 1421, 1405, 1428, 1416,
- 1410, 1427, 7434, 1438, 1414, 1432, 1445, 1433, 1452, 1457,
- 1437, 1459, 1473, 1454, 1468, 1481, 1461, 1477, 1465, 1469,
- 1476, 1486, 1478, 1501, 1494, 1492, 1538, 1495, 1497, 1507,
- 1520, 1514, 1535, 1532, 1550, 1533, 1560, 1541, 1552, 1545,
- 1568, 1559, 1566, 1577, 1575, 1576, 1584, 1590, 1581, 1591,
- 1601, 7434, 1603, 1605, 1556, 1602, 1595, 1596, 1617, 1620,
- 1622, 1634, 1630, 1644, 1637, 1161, 1625, 1636, 1629, 1639,
- 1647, 1653, 1649, 1652, 1667, 1669, 1689, 1674, 1688, 1690,
- 1664, 1692, 1693, 1702, 1677, 1694, 1681, 1695, 1704, 1682,
-
- 1709, 1714, 1711, 1719, 1706, 1730, 1717, 1716, 1734, 1726,
- 1744, 1731, 1741, 1736, 1743, 1755, 1745, 1750, 1778, 1771,
- 1781, 1786, 1783, 1789, 1775, 1782, 1792, 1773, 1796, 1805,
- 1809, 1815, 1804, 1820, 1803, 1831, 1823, 1811, 1821, 1842,
- 1838, 1845, 1841, 1846, 1864, 1836, 1847, 1861, 1850, 1848,
- 1857, 1874, 1882, 1862, 1871, 1887, 1895, 1896, 1877, 1884,
- 1898, 1901, 1908, 1913, 1914, 1915, 1916, 1929, 1911, 1922,
- 1921, 1927, 1938, 1930, 1956, 1943, 1948, 1951, 1953, 1958,
- 1955, 1978, 1964, 1965, 1970, 1982, 1972, 1983, 1973, 1997,
- 1985, 2000, 2011, 2013, 2001, 2014, 2017, 2006, 2023, 2010,
-
- 2025, 2033, 2031, 2028, 2045, 2024, 2047, 2043, 2056, 2066,
- 2065, 2059, 7434, 2052, 1998, 2053, 2072, 2070, 2060, 2089,
- 2069, 2083, 2081, 2087, 2130, 7434, 2096, 7434, 7434, 2100,
- 7434, 7434, 2104, 2114, 2128, 2118, 2123, 2110, 2129, 2133,
- 2095, 2180, 2131, 2140, 2146, 2150, 2183, 2085, 2167, 2177,
- 2170, 2188, 2163, 2190, 2191, 2201, 2194, 2205, 2218, 2207,
- 2210, 2223, 2234, 2221, 2225, 2220, 2228, 2237, 2241, 2275,
- 7434, 2252, 2249, 2251, 2250, 2254, 2263, 2264, 2255, 2269,
- 2276, 2266, 2259, 2279, 2281, 2297, 2286, 7434, 2295, 2298,
- 2306, 2300, 2291, 2312, 2314, 2310, 2318, 2315, 2321, 2320,
-
- 2299, 2348, 7434, 2341, 2349, 2331, 2355, 2342, 2334, 2344,
- 2350, 2346, 2356, 2370, 2362, 2369, 2375, 2373, 2376, 2390,
- 2392, 2394, 2386, 2389, 2400, 2383, 2403, 2410, 2413, 2408,
- 2419, 2414, 2407, 2432, 2433, 2421, 2448, 2434, 2436, 2440,
- 2430, 2459, 2453, 2456, 2450, 2457, 2464, 2463, 2470, 2471,
- 2460, 2461, 2487, 2475, 7434, 2469, 2489, 7434, 2484, 2485,
- 2531, 2516, 2514, 2495, 2498, 2522, 2512, 2519, 2521, 2560,
- 2543, 2555, 2541, 2561, 2567, 2550, 2544, 2571, 2569, 2578,
- 2580, 1925, 2583, 2562, 2577, 2622, 2588, 2592, 2599, 2594,
- 2589, 2604, 2610, 2611, 2616, 2620, 2629, 2640, 7434, 2619,
-
- 2631, 2632, 2647, 2637, 2649, 2646, 2661, 2663, 2664, 2658,
- 2668, 2667, 2674, 2662, 2669, 2673, 2675, 2689, 2708, 7434,
- 2696, 7434, 2691, 2695, 2697, 2702, 2716, 2722, 2723, 2710,
- 2725, 2713, 2718, 7434, 2720, 2738, 2755, 2748, 2743, 2740,
- 2744, 2753, 2746, 2769, 2752, 2773, 2771, 2764, 2776, 2787,
- 2778, 2790, 2797, 2798, 7434, 2800, 2788, 2801, 2782, 2811,
- 2809, 2805, 2813, 2808, 2820, 2821, 2817, 2825, 2847, 2844,
- 2846, 7434, 2836, 2860, 2856, 2850, 2840, 2861, 2868, 2857,
- 2853, 2866, 2867, 2855, 2884, 2869, 2871, 2885, 2888, 1093,
- 2883, 2894, 2886, 2882, 7434, 2895, 2904, 61, 2906, 2908,
-
- 2912, 2913, 2910, 2925, 2909, 2943, 2947, 2939, 2946, 2949,
- 2941, 2945, 2952, 2938, 2942, 2951, 2962, 2964, 2960, 2976,
- 2974, 2987, 2975, 3002, 7434, 2996, 3000, 2999, 2984, 3009,
- 3010, 3004, 3003, 3019, 3036, 3023, 7434, 2967, 3039, 3027,
- 3046, 3045, 3043, 3060, 3034, 3050, 3066, 3057, 3055, 3069,
- 3065, 3072, 3077, 3070, 3078, 3080, 3092, 7434, 2969, 3089,
- 3087, 3091, 3104, 3094, 3129, 3107, 3118, 3110, 3119, 3155,
- 3122, 3130, 3145, 3142, 3149, 3152, 3153, 3162, 3170, 3172,
- 3157, 3156, 3181, 3179, 3182, 3146, 3201, 3198, 3206, 3229,
- 3213, 2127, 3196, 7434, 3208, 3202, 3197, 3223, 3221, 3204,
-
- 3231, 3237, 3246, 3233, 3235, 3253, 3257, 3262, 3263, 3259,
- 3248, 3258, 3264, 3219, 3272, 3292, 3295, 7434, 3298, 3300,
- 3284, 3302, 3286, 3307, 3304, 3291, 3294, 3308, 3296, 3321,
- 3318, 7434, 3314, 3332, 3330, 3335, 3341, 3348, 3333, 3344,
- 3345, 3342, 7434, 3359, 3361, 3353, 3366, 3354, 3364, 3373,
- 3370, 3367, 7434, 3369, 3372, 3371, 3379, 3386, 7434, 3406,
- 3388, 3385, 3391, 3390, 3407, 3419, 3401, 3399, 3409, 3418,
- 3437, 3415, 3434, 7434, 3422, 3458, 3435, 3432, 3429, 3442,
- 3445, 3468, 3453, 3461, 3479, 3474, 3466, 3462, 3465, 3480,
- 3489, 3492, 3493, 7434, 3482, 3497, 3511, 3495, 3509, 3514,
-
- 3505, 3516, 3520, 3530, 3531, 3529, 3523, 3542, 3547, 3541,
- 3544, 3550, 3555, 3557, 3560, 3561, 3484, 3502, 3564, 3582,
- 7434, 3567, 3585, 3586, 3578, 3584, 3587, 3592, 3600, 3597,
- 3607, 3613, 3606, 3611, 3636, 3637, 3619, 3616, 3622, 3629,
- 3631, 3626, 3628, 3633, 3644, 3664, 3642, 3646, 3653, 3655,
- 3656, 3663, 3671, 3666, 3673, 3675, 3685, 3690, 3692, 3691,
- 3680, 3693, 3719, 7434, 3700, 3709, 3688, 3710, 3728, 3729,
- 3735, 3737, 3739, 3722, 3712, 3727, 3749, 3745, 7434, 3732,
- 7434, 3752, 3753, 3759, 3768, 7434, 3771, 7434, 3775, 3762,
- 3765, 7434, 3779, 3783, 3767, 3785, 3792, 3776, 3772, 3795,
-
- 3787, 3799, 3798, 3807, 3812, 3809, 3820, 3805, 3819, 3831,
- 3814, 3832, 7434, 3838, 3824, 3836, 3825, 3839, 3843, 3848,
- 3856, 3847, 3858, 3846, 3874, 3864, 3885, 3876, 3891, 3869,
- 3895, 7434, 3883, 3892, 3880, 3894, 7434, 3893, 3901, 3903,
- 3909, 3907, 3918, 3910, 3914, 3920, 3919, 3945, 3940, 3938,
- 3944, 3949, 3930, 3958, 3967, 3968, 3972, 3959, 3966, 3956,
- 3965, 3977, 3982, 3992, 3993, 3994, 3980, 4000, 4002, 4007,
- 3990, 3995, 3996, 3999, 4004, 4021, 4001, 4041, 4017, 4026,
- 4024, 4028, 7434, 4047, 4030, 4051, 4053, 4043, 4045, 4039,
- 4034, 4060, 4067, 4064, 4080, 4068, 7434, 4073, 7434, 4072,
-
- 4075, 4101, 4100, 4104, 4086, 4107, 4090, 4099, 4091, 4113,
- 4114, 4119, 4121, 4109, 4130, 4120, 4128, 4135, 4132, 7434,
- 4133, 4127, 4152, 4147, 4155, 4156, 4166, 4175, 4150, 4165,
- 4171, 4201, 7434, 4183, 4178, 4182, 4176, 4180, 4194, 4209,
- 4206, 7434, 4195, 4203, 4211, 4205, 4216, 7434, 7434, 4204,
- 4210, 4226, 4222, 4227, 4245, 4238, 4230, 4228, 4246, 4263,
- 4244, 4249, 7434, 4264, 4250, 4262, 4274, 4275, 4276, 4273,
- 4261, 7434, 4268, 4269, 4285, 4286, 4295, 4292, 4291, 4308,
- 4309, 4311, 4297, 4300, 4290, 4317, 4310, 4324, 4299, 4331,
- 4333, 7434, 4335, 4336, 4339, 4337, 4344, 4350, 4332, 4343,
-
- 4351, 4356, 4363, 4366, 4370, 4371, 4376, 4378, 4364, 4379,
- 4385, 4393, 4383, 4380, 4395, 4414, 4417, 4419, 4423, 4405,
- 4424, 4407, 4408, 4430, 4432, 4422, 4434, 7434, 4438, 4421,
- 4443, 4433, 4444, 4440, 4452, 4459, 4463, 4442, 4461, 4473,
- 4464, 7434, 4478, 4469, 4470, 4487, 4479, 4492, 4486, 4496,
- 4480, 4493, 4491, 4511, 4504, 4505, 4514, 4526, 7434, 7434,
- 4520, 7434, 4509, 4533, 4519, 4528, 4531, 4522, 4536, 4539,
- 4543, 7434, 4545, 4557, 4549, 4561, 4576, 4578, 4574, 4575,
- 4570, 4562, 4564, 4573, 4584, 4563, 4567, 4597, 4604, 4595,
- 4601, 4609, 7434, 4599, 4608, 4603, 7434, 4614, 4617, 4626,
-
- 4625, 4623, 4635, 4647, 4637, 4628, 4624, 4648, 4650, 4652,
- 4657, 4665, 4656, 4671, 4678, 4685, 4686, 4661, 4677, 4691,
- 7434, 4681, 4696, 4690, 4676, 4711, 4688, 4712, 4697, 7434,
- 4707, 4703, 4716, 7434, 4723, 4724, 4731, 4732, 4713, 4740,
- 4735, 4737, 4738, 4736, 7434, 4749, 7434, 4752, 4758, 7434,
- 4761, 4762, 4751, 4757, 4766, 4772, 4781, 4780, 4767, 4782,
- 4778, 4771, 4788, 4798, 4800, 4797, 7434, 4809, 4802, 4807,
- 4813, 4814, 4815, 7434, 7434, 4806, 7434, 4819, 4823, 7434,
- 4817, 4831, 4836, 4834, 4853, 4850, 4856, 4849, 7434, 4858,
- 4840, 4863, 4859, 4848, 4861, 4862, 4870, 4867, 4883, 4896,
-
- 7434, 4879, 4891, 4904, 4887, 4892, 4908, 4916, 4897, 7434,
- 4922, 4926, 4889, 4931, 4906, 7434, 4932, 4935, 7434, 4933,
- 4945, 4924, 4951, 4944, 4952, 4960, 4943, 4949, 4971, 4962,
- 4968, 4972, 7434, 4963, 4977, 4975, 4984, 4978, 4983, 5002,
- 4995, 4999, 4998, 4986, 5004, 5018, 5020, 5008, 5025, 5013,
- 5011, 5023, 5027, 5012, 7434, 5041, 5044, 5050, 7434, 5043,
- 5038, 5039, 5042, 5046, 7434, 5063, 5067, 5069, 7434, 5073,
- 7434, 5080, 5068, 5066, 5078, 5088, 5098, 5095, 5109, 5093,
- 5106, 5111, 5101, 5126, 5122, 5128, 5124, 5121, 5115, 7434,
- 7434, 5132, 5143, 5125, 5140, 5145, 5138, 5139, 5152, 5155,
-
- 5163, 5159, 5173, 7434, 5170, 5156, 5171, 7434, 5153, 5183,
- 5166, 5177, 5190, 5181, 5191, 5194, 5202, 5196, 5204, 5186,
- 5201, 5219, 5214, 7434, 5208, 5213, 5221, 5218, 5230, 5216,
- 5238, 5231, 7434, 5240, 5253, 5257, 5243, 5247, 5259, 5262,
- 5266, 5268, 5258, 5265, 5274, 5282, 5281, 5292, 7434, 5293,
- 5276, 5284, 5295, 5306, 5310, 5308, 5312, 5299, 5313, 5314,
- 5301, 5311, 7434, 5324, 5316, 5326, 5332, 5328, 5341, 5333,
- 5348, 5350, 5339, 5352, 5342, 5362, 7434, 5351, 5357, 5355,
- 5377, 5365, 5368, 5375, 5378, 7434, 5383, 5376, 5379, 5385,
- 5374, 5408, 5402, 5413, 7434, 5404, 5414, 5417, 5403, 5405,
-
- 5412, 5420, 5429, 5432, 5435, 5443, 5426, 5441, 5449, 5456,
- 5457, 5460, 5453, 5235, 5459, 7434, 5452, 7434, 5462, 5473,
- 5478, 5494, 5482, 7434, 5481, 5490, 5488, 5492, 5501, 7434,
- 5499, 5496, 5498, 5508, 7434, 5515, 5509, 5523, 5532, 5527,
- 7434, 5546, 5545, 5547, 5537, 5554, 5551, 5539, 5555, 5549,
- 5563, 5538, 5559, 7434, 5558, 5564, 5568, 5587, 5573, 5594,
- 7434, 5576, 5579, 5583, 5601, 5582, 5603, 5574, 5606, 5589,
- 7434, 5595, 5610, 5618, 5609, 5625, 7434, 7434, 5626, 5630,
- 5638, 5620, 5642, 7434, 5644, 5623, 5637, 5651, 5647, 7434,
- 7434, 5655, 7434, 5645, 7434, 7434, 5654, 5657, 5660, 7434,
-
- 5661, 7434, 5671, 5676, 5664, 5670, 5674, 7434, 5666, 5682,
- 5695, 7434, 5687, 5704, 5684, 5690, 7434, 5700, 5689, 5697,
- 7434, 5709, 5713, 5720, 5721, 5716, 5714, 5719, 5729, 5730,
- 5738, 5739, 5744, 5737, 5732, 5753, 5757, 5751, 5762, 5767,
- 5768, 5760, 5766, 5770, 5759, 5764, 5778, 5774, 5783, 5776,
- 5784, 5794, 5788, 5799, 5815, 5805, 5793, 5803, 7434, 5806,
- 5795, 5800, 5825, 5822, 5832, 5833, 5846, 5847, 5852, 7434,
- 7434, 5855, 5830, 5843, 5839, 7434, 5841, 5844, 5845, 5849,
- 5868, 5864, 5860, 5885, 7434, 5890, 5883, 5893, 5879, 5880,
- 5894, 5887, 5881, 5882, 5906, 5896, 5903, 5916, 5756, 5913,
-
- 5917, 5918, 5929, 5919, 5921, 5930, 5936, 5947, 5948, 5951,
- 7434, 5933, 7434, 5944, 5949, 5954, 7434, 7434, 5962, 5964,
- 5970, 5957, 5965, 5985, 5984, 7434, 5971, 5989, 5987, 5977,
- 7434, 5975, 5981, 6003, 7434, 5994, 6005, 5999, 6007, 6014,
- 6023, 7434, 7434, 7434, 7434, 6024, 6009, 6016, 6022, 6028,
- 7434, 7434, 7434, 6033, 6013, 6034, 6036, 6040, 6045, 7434,
- 6042, 6043, 6063, 6058, 6047, 6076, 6070, 6074, 6060, 6064,
- 6086, 6083, 6091, 6081, 6084, 6093, 6094, 7434, 7434, 6085,
- 6099, 6122, 6109, 6119, 6104, 6103, 6123, 6118, 6117, 6125,
- 6130, 6126, 7434, 6134, 7434, 6142, 6143, 6140, 6150, 6157,
-
- 6159, 6155, 6162, 7434, 7434, 6153, 6161, 6160, 6173, 6175,
- 6169, 6176, 6192, 6182, 7434, 6189, 7434, 6187, 6193, 6215,
- 6211, 6205, 6212, 7434, 6214, 6209, 7434, 6221, 6216, 6218,
- 7434, 6226, 6229, 6235, 7434, 6237, 7434, 6246, 7434, 6231,
- 7434, 6239, 6254, 6247, 6261, 6260, 6265, 6266, 6268, 6256,
- 6269, 6252, 6258, 6280, 6276, 6273, 7434, 7434, 6289, 6278,
- 6282, 6286, 6285, 6313, 6290, 6307, 6310, 7434, 7434, 6309,
- 6312, 6316, 7434, 6296, 6322, 6327, 6326, 6332, 6335, 6337,
- 6330, 6341, 6348, 6342, 6362, 6364, 6366, 6369, 6357, 6371,
- 6354, 6353, 6377, 6375, 6385, 7434, 6399, 6404, 6390, 7434,
-
- 6409, 6403, 6411, 6413, 6406, 7434, 6396, 6416, 6417, 6419,
- 6412, 6424, 6434, 6440, 7434, 7434, 7434, 7434, 6425, 6441,
- 6444, 7434, 7434, 6432, 7434, 6446, 7434, 6439, 7434, 6448,
- 6461, 6454, 7434, 6459, 6468, 7434, 6465, 6470, 6478, 6473,
- 6474, 6479, 6488, 7434, 6484, 6497, 6499, 6503, 6489, 6487,
- 6505, 6495, 6517, 6511, 6518, 7434, 6500, 6524, 6523, 6515,
- 6520, 6537, 6534, 6532, 6530, 6544, 6551, 6527, 6558, 6546,
- 7434, 6562, 6567, 7434, 6560, 7434, 6569, 6561, 6579, 7434,
- 6572, 6566, 6568, 6555, 7434, 6589, 6583, 7434, 6576, 6600,
- 6602, 6596, 6587, 6593, 6603, 6599, 6609, 6618, 6627, 7434,
-
- 7434, 7434, 6610, 6611, 6638, 6635, 6637, 6646, 6625, 7434,
- 6639, 6642, 6632, 6655, 6658, 6653, 7434, 6656, 6641, 7434,
- 6657, 6661, 6667, 6663, 6674, 6681, 6686, 6689, 6687, 7434,
- 6691, 7434, 7434, 6678, 7434, 6671, 6694, 7434, 6696, 6698,
- 6680, 6701, 6709, 6706, 7434, 7434, 6703, 6720, 6718, 6729,
- 6727, 7434, 6714, 6715, 6738, 6719, 6742, 7434, 6741, 6733,
- 6730, 6744, 6745, 6724, 6756, 6757, 6761, 7434, 7434, 6760,
- 7434, 7434, 6755, 6781, 6782, 7434, 7434, 7434, 6785, 7434,
- 6789, 2173, 6788, 7434, 6794, 6777, 6783, 7434, 6796, 6791,
- 6799, 6787, 7434, 6793, 6808, 6805, 6827, 6828, 6816, 6829,
-
- 6830, 6841, 6845, 6821, 6822, 6826, 6854, 6855, 6843, 6850,
- 7434, 7434, 6851, 7434, 7434, 6852, 6863, 6865, 7434, 6858,
- 6871, 7434, 6875, 6861, 6868, 6882, 6869, 6891, 7434, 7434,
- 6879, 6890, 6873, 6900, 6886, 7434, 6902, 6913, 6898, 6909,
- 6896, 6903, 6906, 7434, 7434, 7434, 7434, 7434, 6916, 7434,
- 7434, 6911, 6931, 6917, 6933, 7434, 6927, 6940, 6948, 6943,
- 6941, 6954, 6939, 6938, 6958, 6970, 6944, 6972, 6968, 6975,
- 6963, 6964, 6992, 6993, 6998, 7001, 6985, 6990, 7002, 7003,
- 7006, 6982, 7009, 7023, 7012, 7022, 7021, 7434, 7027, 7434,
- 7025, 7434, 7434, 7041, 7044, 7038, 7028, 7032, 7049, 7048,
-
- 7050, 7037, 7434, 7058, 7052, 7053, 7434, 7061, 7055, 7067,
- 7079, 7082, 7072, 7093, 7096, 7084, 7085, 7097, 7105, 7108,
- 7099, 7109, 7111, 7112, 7088, 7126, 7125, 7133, 7434, 7136,
- 7123, 7138, 7127, 7128, 7153, 7132, 7143, 7148, 7434, 7158,
- 7152, 7157, 7163, 7167, 7168, 7165, 7172, 7174, 7434, 7170,
- 7197, 7183, 7199, 7204, 7201, 7208, 7184, 7207, 7211, 7210,
- 7217, 7213, 7214, 7226, 7231, 7227, 7434, 7222, 7232, 7434,
- 7247, 7250, 7237, 7238, 7259, 7434, 7261, 7243, 7248, 7265,
- 7268, 7264, 7434, 7269, 7276, 7273, 7434, 7285, 7434, 7434,
- 7292, 7282, 7283, 7281, 7299, 7434, 7434, 7434, 7342, 7349,
-
- 7356, 7363, 7370, 83, 7377, 7384, 7391, 7398, 7405, 7412,
- 7419, 7426
+ 1125, 1124, 1122, 1132, 1126, 1174, 1134, 1135, 1142, 1151,
+ 7525, 1169, 1153, 1223, 1143, 1173, 1191, 1181, 1184, 1194,
+ 1192, 1218, 1209, 1203, 1097, 1196, 1162, 1252, 1183, 1221,
+ 1224, 1231, 1254, 1234, 1236, 1240, 1245, 1261, 1279, 1253,
+ 1266, 1265, 1291, 1274, 1269, 1283, 1281, 1296, 1273, 1309,
+ 1302, 1292, 1300, 1293, 1310, 1322, 1305, 1330, 1329, 1336,
+ 1320, 1325, 1347, 1350, 1334, 1348, 1358, 1351, 1360, 1357,
+ 1366, 1355, 1372, 1362, 1374, 1381, 1384, 1378, 1382, 1392,
+
+ 1403, 1387, 1397, 1391, 1415, 7525, 1419, 1401, 1405, 1417,
+ 1418, 1409, 7525, 1432, 1431, 1427, 1440, 1428, 1461, 1455,
+ 1443, 1458, 1467, 1453, 1468, 1479, 1449, 1476, 1464, 1462,
+ 1488, 1494, 1487, 1496, 1489, 1485, 1532, 1498, 1490, 1514,
+ 1516, 1517, 1512, 1529, 1519, 1528, 1568, 1526, 1547, 1556,
+ 1565, 1545, 1579, 1567, 1559, 1569, 1562, 1577, 1583, 1578,
+ 1593, 1575, 1595, 7525, 1604, 1614, 1480, 1607, 1606, 1597,
+ 1609, 1610, 1611, 1626, 1622, 1640, 1624, 1627, 1649, 1643,
+ 1652, 1646, 1657, 1648, 1656, 1662, 1675, 1650, 1686, 1682,
+ 1671, 1672, 1669, 1674, 1678, 1673, 1676, 1699, 1687, 1700,
+
+ 1707, 1688, 1693, 1713, 1721, 1715, 1705, 1720, 1709, 1733,
+ 1736, 1716, 1746, 1735, 1744, 1737, 1756, 1760, 1752, 1759,
+ 1764, 1742, 1767, 1773, 1779, 1785, 1780, 1762, 1793, 1783,
+ 1680, 1786, 1789, 1797, 1813, 1808, 1812, 1816, 1822, 1810,
+ 1804, 1826, 1824, 1838, 1831, 1839, 1852, 1835, 1837, 1840,
+ 1843, 1849, 1854, 1864, 1870, 1862, 1866, 1867, 1885, 1881,
+ 1876, 1890, 1879, 1900, 1886, 1889, 1893, 1891, 1894, 1918,
+ 1915, 1908, 1912, 1913, 1921, 1928, 1931, 1917, 1927, 1948,
+ 1929, 1935, 1949, 1942, 1950, 1965, 1968, 1959, 1960, 1976,
+ 1969, 1963, 1970, 1977, 1995, 1994, 1997, 2008, 1988, 2007,
+
+ 1980, 2003, 2009, 2011, 2015, 2016, 2021, 2012, 2022, 2036,
+ 2040, 2034, 2032, 2056, 2037, 2053, 7525, 2041, 2061, 2046,
+ 2067, 2058, 2059, 2074, 2064, 2078, 2075, 2083, 2126, 7525,
+ 2080, 7525, 7525, 2089, 7525, 7525, 2081, 2107, 2105, 2114,
+ 2119, 2101, 2110, 2123, 2084, 2175, 2139, 2133, 2141, 2136,
+ 2122, 2129, 2157, 2168, 2158, 2188, 2178, 2171, 2185, 2195,
+ 2180, 2199, 2204, 2203, 2206, 2205, 2210, 2212, 2214, 2216,
+ 2217, 2231, 2242, 2251, 7525, 2243, 2172, 2252, 2246, 2247,
+ 2254, 2256, 2239, 2255, 2258, 2240, 2268, 2263, 2269, 2276,
+ 2274, 7525, 2279, 2285, 2292, 2289, 2299, 2295, 2291, 2282,
+
+ 2309, 2296, 2312, 2308, 2306, 2337, 7525, 2326, 2314, 2322,
+ 2341, 2324, 2327, 2332, 2334, 2342, 2351, 2359, 2353, 2357,
+ 2368, 2354, 2369, 2378, 2379, 2382, 2374, 2390, 2380, 2391,
+ 2375, 2393, 2396, 2402, 2415, 2405, 2419, 2404, 2403, 2421,
+ 2423, 2418, 2435, 2442, 2431, 2426, 2438, 2452, 2437, 2454,
+ 2449, 2465, 2456, 2458, 2455, 2471, 2453, 2468, 2469, 2484,
+ 7525, 2463, 2477, 7525, 2485, 2486, 2532, 2492, 2502, 2494,
+ 2497, 2513, 2512, 2518, 2511, 2531, 2528, 2547, 2545, 2552,
+ 2556, 2549, 2544, 2559, 2483, 2571, 2577, 1152, 2586, 2566,
+ 2564, 2613, 2583, 2584, 2588, 2591, 2596, 2615, 2599, 2611,
+
+ 2608, 2609, 2617, 2641, 7525, 2604, 2634, 2624, 2636, 2655,
+ 2648, 2638, 2647, 2658, 2646, 2663, 2660, 2652, 2672, 2661,
+ 2664, 2666, 2683, 2688, 2700, 7525, 2685, 7525, 2689, 2687,
+ 2684, 2694, 2712, 2713, 2715, 2698, 2721, 2705, 2710, 7525,
+ 2719, 2731, 2737, 2740, 2739, 2732, 2733, 2742, 2746, 2759,
+ 2736, 2762, 2768, 2754, 2767, 2769, 2760, 2779, 2780, 2765,
+ 7525, 2787, 2781, 2794, 2795, 2791, 2796, 2792, 2806, 2798,
+ 2807, 2808, 2802, 2818, 2822, 2825, 2833, 7525, 2813, 2819,
+ 2846, 2844, 2841, 2829, 2845, 2851, 2852, 2843, 2855, 2856,
+ 2864, 2865, 2857, 2869, 2866, 2872, 2875, 1093, 2877, 2888,
+
+ 2879, 2876, 7525, 2881, 2905, 61, 2896, 2894, 2899, 2912,
+ 2907, 2918, 2913, 2924, 2925, 2926, 2927, 2930, 2928, 2932,
+ 2936, 2934, 2945, 2940, 2950, 2951, 2948, 2952, 2953, 2975,
+ 2962, 2980, 7525, 2983, 2990, 2979, 2973, 2998, 2997, 3007,
+ 3000, 3010, 3013, 3011, 7525, 3004, 3014, 3024, 3028, 3031,
+ 3027, 3032, 3034, 3037, 3050, 3041, 3040, 3051, 3045, 3055,
+ 3063, 3068, 3061, 3064, 3076, 7525, 2993, 3072, 3079, 3074,
+ 3093, 3077, 3107, 3090, 3091, 3102, 3118, 3142, 3113, 3121,
+ 3127, 3132, 3136, 3122, 3139, 3157, 3163, 3167, 3153, 3166,
+ 3171, 3169, 3168, 3129, 3140, 3174, 3177, 3205, 3184, 1434,
+
+ 3204, 7525, 3203, 3201, 3191, 3208, 3227, 3202, 3228, 3212,
+ 3211, 3218, 3230, 3232, 3242, 3253, 3247, 3254, 3244, 3241,
+ 3260, 3270, 3257, 3273, 3275, 7525, 3276, 3281, 3282, 3278,
+ 3271, 3294, 3290, 3289, 3293, 3296, 3292, 3302, 3306, 3309,
+ 7525, 3321, 3320, 3322, 3318, 3330, 3338, 3331, 3328, 3334,
+ 3337, 3347, 7525, 3336, 3355, 3351, 3371, 3359, 3350, 3361,
+ 3375, 3364, 7525, 3365, 3353, 3386, 3394, 3373, 7525, 3395,
+ 3387, 3377, 3381, 3391, 3392, 3408, 3396, 3390, 3411, 3420,
+ 3426, 3404, 3428, 7525, 3421, 3444, 3432, 3422, 3431, 3435,
+ 3446, 3458, 3449, 3455, 3470, 3471, 3468, 3462, 3457, 3474,
+
+ 3482, 3476, 3480, 7525, 3472, 3493, 3503, 3501, 3497, 3498,
+ 3506, 3507, 3502, 3508, 3521, 3520, 3532, 3533, 3541, 3531,
+ 3542, 3553, 3547, 3550, 3534, 3552, 3485, 3570, 3571, 3574,
+ 7525, 3585, 3582, 3578, 3573, 3576, 3577, 3581, 3593, 3596,
+ 3598, 3602, 3597, 3603, 3631, 3632, 3608, 3617, 3618, 3620,
+ 3621, 3624, 3645, 3626, 3627, 3644, 3661, 3638, 3643, 3648,
+ 3655, 3664, 3659, 3666, 3675, 3682, 3671, 3660, 3687, 3686,
+ 3684, 3691, 3693, 3719, 7525, 3699, 3701, 3695, 3707, 3729,
+ 3727, 3730, 3733, 3736, 3724, 3731, 3741, 3746, 3739, 7525,
+ 3751, 7525, 3726, 3750, 3771, 3775, 7525, 3779, 7525, 3780,
+
+ 3765, 3767, 7525, 3782, 3786, 3774, 3763, 3788, 3790, 3777,
+ 3804, 3778, 3796, 3807, 3820, 3811, 3800, 3824, 3809, 3831,
+ 3813, 3822, 3837, 3823, 3834, 7525, 3843, 3827, 3830, 3854,
+ 3849, 3840, 3876, 3870, 3858, 3859, 3871, 3882, 3864, 3881,
+ 3888, 3894, 3892, 3899, 7525, 3902, 3895, 3898, 3907, 7525,
+ 3872, 3923, 3926, 3904, 3910, 3915, 3929, 3934, 3921, 3938,
+ 3946, 3941, 3942, 3954, 3961, 3945, 3968, 3951, 3974, 3976,
+ 3962, 3969, 3965, 3980, 3985, 3989, 3991, 3995, 3992, 3988,
+ 4001, 4008, 4009, 4002, 3997, 4003, 4007, 4025, 4019, 4024,
+ 4018, 4022, 4033, 4029, 4034, 7525, 4040, 4045, 4049, 4056,
+
+ 4044, 4048, 4050, 4060, 4064, 4070, 4061, 4081, 4080, 7525,
+ 4079, 7525, 4077, 4098, 4103, 4106, 4110, 4100, 4092, 4117,
+ 4108, 4105, 4112, 4133, 4107, 4120, 4128, 4126, 4135, 4132,
+ 4138, 4140, 4149, 7525, 4139, 4136, 4167, 4155, 4165, 4173,
+ 4169, 4177, 4172, 4166, 4185, 4207, 7525, 4192, 4213, 4191,
+ 4210, 4220, 4216, 4225, 4217, 7525, 4202, 4212, 4229, 4214,
+ 4242, 7525, 7525, 4219, 4236, 4249, 4246, 4244, 4247, 4233,
+ 4253, 4215, 4250, 4248, 4270, 4237, 4263, 4269, 7525, 4281,
+ 4271, 4285, 4294, 4295, 4296, 4293, 4280, 7525, 4277, 4305,
+ 4290, 4312, 4306, 4311, 4317, 4308, 4322, 4328, 4318, 4321,
+
+ 4348, 4335, 4332, 4351, 4346, 4353, 4354, 7525, 4355, 4361,
+ 4363, 4359, 4364, 4362, 4349, 4372, 4377, 4382, 4374, 4376,
+ 4390, 4392, 4403, 4396, 4393, 4399, 4410, 4416, 4404, 4409,
+ 4419, 4422, 4432, 4415, 4438, 4427, 4444, 4429, 4436, 4448,
+ 4449, 4463, 4458, 7525, 4467, 4446, 4472, 4443, 4466, 4478,
+ 4480, 4477, 4497, 4459, 4492, 4487, 4493, 7525, 4502, 4501,
+ 4496, 4506, 4503, 4494, 4522, 4507, 4505, 4535, 4520, 4540,
+ 4528, 4529, 4549, 4552, 7525, 7525, 4554, 7525, 4555, 4538,
+ 4557, 4545, 4562, 4561, 4566, 4573, 4568, 4582, 7525, 4575,
+ 4576, 4579, 4578, 4588, 4609, 4608, 4605, 4602, 4593, 4595,
+
+ 4604, 4615, 4606, 4601, 4622, 4635, 4619, 4629, 4643, 7525,
+ 4628, 4633, 4638, 7525, 4640, 4630, 4658, 4660, 4668, 4672,
+ 4662, 4677, 4661, 4667, 4686, 4687, 4688, 4684, 4691, 4689,
+ 4701, 4697, 4698, 4726, 4715, 4727, 4703, 4711, 4732, 7525,
+ 4719, 4733, 4724, 4716, 4740, 4725, 4745, 4743, 7525, 4749,
+ 4738, 4764, 7525, 4759, 4765, 4748, 4771, 4753, 4750, 4772,
+ 4774, 4775, 4776, 7525, 4782, 7525, 4780, 4792, 7525, 4799,
+ 4801, 4789, 4790, 4788, 4815, 4817, 4818, 4803, 4816, 4809,
+ 4810, 4828, 4830, 4838, 4834, 7525, 4852, 4833, 4849, 4854,
+ 4855, 4856, 7525, 7525, 4839, 7525, 4857, 4861, 7525, 4859,
+
+ 4875, 4876, 4870, 4871, 4866, 4892, 4897, 7525, 4899, 4888,
+ 4909, 4898, 4890, 4900, 4901, 4917, 4894, 4903, 4935, 7525,
+ 4922, 4919, 4923, 4925, 4928, 4950, 4946, 4937, 7525, 4955,
+ 4959, 4945, 4962, 4958, 7525, 4970, 4964, 4969, 7525, 4981,
+ 4966, 4973, 4978, 5000, 4996, 5004, 4989, 4991, 5017, 5008,
+ 5006, 5012, 7525, 5005, 5016, 5014, 5036, 5027, 5025, 5022,
+ 5043, 5051, 5050, 5055, 5044, 5059, 5061, 5064, 5067, 5063,
+ 5047, 5081, 5075, 5085, 7525, 5086, 5091, 5094, 7525, 5088,
+ 5087, 5092, 5102, 5089, 7525, 5115, 5118, 5104, 5112, 7525,
+ 7525, 5116, 7525, 5132, 5123, 5125, 5126, 5139, 5133, 5147,
+
+ 5141, 5136, 5154, 5159, 5157, 5176, 5166, 5174, 5169, 5171,
+ 5160, 7525, 7525, 5177, 5187, 5181, 5189, 5191, 5182, 5193,
+ 5200, 5205, 5212, 5217, 5228, 7525, 5220, 5206, 5221, 7525,
+ 5209, 5230, 5218, 5216, 5237, 5232, 5238, 5246, 5252, 5245,
+ 5258, 5240, 5251, 5269, 5271, 7525, 5257, 5261, 5259, 5265,
+ 5272, 5273, 5283, 5281, 7525, 5290, 5304, 5303, 5298, 5299,
+ 5301, 5318, 5312, 5315, 5308, 5307, 5326, 5339, 5336, 5332,
+ 7525, 5338, 5329, 5335, 5340, 5344, 5357, 5341, 5358, 5354,
+ 5361, 5369, 5373, 5363, 5364, 7525, 5375, 5374, 5367, 5389,
+ 5379, 5387, 5392, 5402, 5398, 5390, 5396, 5407, 5405, 7525,
+
+ 5388, 5404, 5406, 5424, 5412, 5422, 5425, 5429, 7525, 5437,
+ 5423, 5435, 5432, 5431, 5459, 5438, 5461, 7525, 5454, 5467,
+ 5470, 5451, 5464, 5458, 5478, 5484, 5487, 5480, 5485, 5491,
+ 5473, 5488, 5499, 5500, 5504, 5511, 5503, 5526, 5525, 7525,
+ 5512, 7525, 5515, 5533, 5538, 5536, 5521, 7525, 5530, 5539,
+ 5549, 5535, 5558, 7525, 5542, 5559, 5556, 5562, 7525, 5576,
+ 5573, 5560, 5572, 5588, 7525, 5590, 5589, 5586, 5598, 5600,
+ 5596, 5583, 5603, 5602, 5594, 5593, 5621, 7525, 5605, 5623,
+ 5628, 5629, 5613, 5638, 7525, 5617, 5625, 5632, 5639, 5627,
+ 5652, 5656, 5661, 5644, 7525, 5659, 5653, 5668, 5669, 5674,
+
+ 7525, 7525, 5664, 5680, 5679, 5666, 5686, 7525, 5693, 5673,
+ 5698, 5690, 5702, 7525, 7525, 5699, 7525, 5694, 7525, 7525,
+ 7525, 5713, 5717, 5715, 7525, 5716, 7525, 5703, 5726, 5707,
+ 5706, 5730, 7525, 5729, 5719, 5732, 7525, 5738, 5741, 5733,
+ 5737, 7525, 5761, 5744, 5749, 7525, 5765, 5769, 5768, 5772,
+ 5778, 5756, 5771, 5776, 5782, 5784, 5786, 5787, 5779, 5783,
+ 5788, 5816, 5807, 5804, 5802, 5821, 5822, 5811, 5818, 5812,
+ 5806, 5827, 5810, 5835, 5831, 5815, 5836, 5842, 5837, 5846,
+ 5864, 5857, 5859, 5862, 7525, 5852, 5849, 5858, 5869, 5876,
+ 5873, 5875, 5894, 5895, 5905, 7525, 7525, 5908, 5892, 5900,
+
+ 5893, 7525, 5896, 5897, 5891, 5914, 5917, 5925, 5928, 5929,
+ 7525, 5931, 5938, 5948, 5932, 5933, 5942, 5939, 5944, 5952,
+ 5964, 5963, 5967, 5968, 5969, 5965, 5971, 5966, 5979, 5981,
+ 5994, 5995, 5997, 5988, 6002, 6003, 7525, 5998, 7525, 5996,
+ 6013, 6015, 7525, 7525, 6016, 6032, 6018, 6022, 6020, 6019,
+ 6044, 7525, 6024, 6046, 6052, 6040, 7525, 6049, 6054, 6055,
+ 7525, 6045, 6056, 6051, 6058, 6063, 6086, 7525, 7525, 7525,
+ 7525, 6087, 6067, 6078, 6079, 6084, 6083, 7525, 7525, 7525,
+ 6094, 6090, 6095, 6101, 6105, 6115, 7525, 6114, 6103, 6107,
+ 6118, 6137, 6138, 6136, 6135, 6126, 6128, 6152, 6149, 6147,
+
+ 6142, 6153, 6159, 6161, 7525, 7525, 6155, 6163, 6177, 6173,
+ 6182, 6188, 6185, 6186, 6183, 6179, 6190, 6196, 6195, 7525,
+ 6199, 7525, 6203, 6206, 6209, 6218, 6215, 6223, 6219, 6228,
+ 7525, 7525, 6221, 6229, 6225, 6239, 6234, 6248, 6245, 6241,
+ 6243, 7525, 6250, 7525, 6254, 6259, 6278, 6269, 6271, 6277,
+ 7525, 6276, 6270, 7525, 6284, 6280, 6287, 7525, 6290, 6293,
+ 6295, 7525, 6299, 7525, 6300, 7525, 6296, 7525, 6304, 6307,
+ 6313, 6319, 6322, 6310, 6330, 6331, 6333, 6321, 6338, 6323,
+ 6339, 6344, 6342, 6343, 7525, 7525, 6361, 6349, 6355, 6357,
+ 6356, 6359, 6354, 6360, 6367, 7525, 7525, 6368, 6370, 6382,
+
+ 7525, 6365, 6393, 6397, 6398, 6383, 6391, 6394, 6407, 6400,
+ 6405, 6410, 6421, 6425, 6430, 6432, 6420, 6434, 6423, 6418,
+ 6442, 6435, 6445, 7525, 6454, 6461, 6449, 7525, 6468, 6466,
+ 6474, 6470, 6471, 7525, 6459, 6479, 6481, 6478, 6469, 6515,
+ 6476, 6490, 7525, 7525, 7525, 7525, 6509, 6504, 6506, 7525,
+ 7525, 6494, 6500, 7525, 6510, 7525, 6502, 7525, 6525, 6527,
+ 6526, 7525, 6529, 6537, 7525, 6524, 6532, 6539, 6549, 6540,
+ 6544, 6543, 7525, 6574, 6567, 6568, 6577, 6561, 6557, 6575,
+ 6564, 6586, 6571, 6583, 7525, 6570, 6588, 6592, 6595, 6598,
+ 6610, 6609, 6601, 6593, 6613, 6619, 6600, 6629, 6615, 7525,
+
+ 6631, 6632, 7525, 6622, 7525, 6633, 6636, 6642, 7525, 6650,
+ 6635, 6641, 6638, 7525, 6653, 6658, 7525, 6644, 6667, 6673,
+ 6656, 6669, 6668, 6670, 6674, 6683, 6687, 6695, 6691, 7525,
+ 7525, 7525, 6694, 6684, 6681, 6690, 6709, 6714, 6702, 7525,
+ 6718, 6719, 6707, 6732, 6725, 6728, 7525, 6735, 6721, 7525,
+ 6737, 6738, 6739, 6746, 6749, 6756, 6757, 6758, 6763, 7525,
+ 6761, 7525, 7525, 6753, 7525, 6752, 6776, 7525, 6775, 6764,
+ 6762, 6783, 6786, 6788, 7525, 7525, 6794, 6784, 6801, 6789,
+ 6800, 6802, 7525, 6803, 6806, 6809, 6805, 6812, 7525, 6827,
+ 6819, 6820, 6822, 6825, 6821, 6839, 6834, 6846, 7525, 7525,
+
+ 6848, 7525, 7525, 6831, 6859, 6867, 7525, 7525, 7525, 6860,
+ 7525, 6863, 6878, 6870, 7525, 6872, 6861, 6866, 7525, 6881,
+ 7525, 6882, 6887, 6877, 7525, 6884, 6876, 6895, 6900, 6910,
+ 6898, 6912, 6919, 6920, 6926, 6899, 6915, 6911, 6929, 6936,
+ 6916, 6933, 7525, 7525, 6945, 7525, 7525, 6948, 6949, 6950,
+ 7525, 6943, 6954, 7525, 6964, 6951, 6953, 6968, 6956, 6967,
+ 7525, 7525, 6955, 6981, 6959, 6986, 6970, 7525, 6996, 6979,
+ 6975, 6998, 6982, 6992, 6991, 7525, 7525, 7525, 7525, 7525,
+ 7002, 7525, 7525, 6994, 7000, 7013, 7008, 7525, 6997, 7025,
+ 7034, 7040, 7023, 7044, 7028, 7024, 7030, 7037, 7029, 7031,
+
+ 7056, 7060, 7059, 7068, 7062, 7078, 7082, 7084, 7066, 7070,
+ 7088, 7087, 7089, 7071, 7093, 7083, 7086, 7099, 7103, 7525,
+ 7109, 7525, 7107, 7525, 7525, 7102, 7127, 7123, 7113, 7112,
+ 7138, 7129, 7133, 7118, 7525, 7121, 7130, 7149, 7525, 7142,
+ 7156, 7147, 7150, 7154, 7159, 7170, 7174, 7164, 7165, 7172,
+ 7180, 7192, 7194, 7191, 7193, 7199, 7181, 7208, 7205, 7213,
+ 7525, 7211, 7197, 7207, 7209, 7220, 7222, 7225, 7232, 7229,
+ 7525, 7233, 7241, 7243, 7227, 7242, 7238, 7257, 7259, 7249,
+ 7525, 7255, 7266, 7260, 7273, 7282, 7285, 7288, 7277, 7292,
+ 7293, 7297, 7302, 7300, 7304, 7286, 7309, 7316, 7525, 7303,
+
+ 7318, 7525, 7323, 7334, 7321, 7325, 7332, 7525, 7342, 7327,
+ 7330, 7350, 7347, 7356, 7525, 7353, 7358, 7361, 7525, 7360,
+ 7525, 7525, 7367, 7362, 7374, 7370, 7375, 7525, 7525, 7525,
+ 7433, 7440, 7447, 7454, 7461, 83, 7468, 7475, 7482, 7489,
+ 7496, 7503, 7510, 7517
} ;
-static yyconst flex_int16_t yy_def[2613] =
+static yyconst flex_int16_t yy_def[2645] =
{ 0,
- 2598, 1, 2599, 2599, 2600, 2600, 2601, 2601, 2602, 2602,
- 2603, 2603, 2598, 2604, 2598, 2598, 2598, 2598, 2605, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2606, 2598, 2598, 2598, 2606, 2607, 2598, 2598,
- 2598, 2607, 2608, 2598, 2598, 2598, 2598, 2608, 2609, 2598,
- 2598, 2598, 2609, 2610, 2598, 2611, 2598, 2610, 2610, 2604,
- 2604, 2598, 2612, 2605, 2612, 2605, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2606,
- 2606, 2607, 2607, 2608, 2608, 2598, 2609, 2609, 2610, 2610,
- 2611, 2611, 2610, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2610, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2610, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2598, 2604,
- 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2610, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2598, 2604, 2598, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598,
- 2598, 2604, 2598, 2604, 2598, 2598, 2604, 2604, 2604, 2598,
-
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2598, 2604, 2604, 2604, 2598, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
- 2604, 2598, 2598, 2598, 2598, 2604, 2604, 2604, 2604, 2604,
- 2598, 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2598, 2598, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, 2604,
- 2598, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2598, 2604,
- 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598,
-
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2598, 2598, 2598, 2604, 2604,
- 2604, 2598, 2598, 2604, 2598, 2604, 2598, 2604, 2598, 2604,
- 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
-
- 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
- 2604, 2598, 2598, 2604, 2598, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604, 2604, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
- 2598, 2598, 2604, 2604, 2604, 2598, 2598, 2598, 2604, 2598,
- 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2598, 2598, 2604, 2598, 2598, 2604, 2604, 2604, 2598, 2604,
- 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2598, 2598, 2598, 2598, 2598, 2604, 2598,
- 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598,
- 2604, 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
-
- 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
- 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598,
- 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
- 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2598, 2598,
- 2604, 2604, 2604, 2604, 2604, 2598, 2598, 0, 2598, 2598,
-
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598
+ 2630, 1, 2631, 2631, 2632, 2632, 2633, 2633, 2634, 2634,
+ 2635, 2635, 2630, 2636, 2630, 2630, 2630, 2630, 2637, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2638, 2630, 2630, 2630, 2638, 2639, 2630, 2630,
+ 2630, 2639, 2640, 2630, 2630, 2630, 2630, 2640, 2641, 2630,
+ 2630, 2630, 2641, 2642, 2630, 2643, 2630, 2642, 2642, 2636,
+ 2636, 2630, 2644, 2637, 2644, 2637, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2638,
+ 2638, 2639, 2639, 2640, 2640, 2630, 2641, 2641, 2642, 2642,
+ 2643, 2643, 2642, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2642, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2642, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2642, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2642, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2630, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2642, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2630, 2636, 2636, 2642, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636,
+
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2636, 2630, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630,
+ 2630, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+
+ 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2630, 2630,
+ 2630, 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636,
+
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636,
+ 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2630, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636,
+
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2630, 2630, 2630, 2636, 2636, 2636, 2630,
+ 2630, 2636, 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2636,
+ 2636, 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+
+ 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2630, 2636, 2636, 2630, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2630,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2630, 2636, 2630, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630,
+
+ 2636, 2630, 2630, 2636, 2636, 2636, 2630, 2630, 2630, 2636,
+ 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
+ 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2630, 2630, 2636, 2630, 2630, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630, 2630, 2630,
+ 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
+ 2636, 2630, 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
+
+ 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
+ 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
+ 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 0,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630
} ;
-static yyconst flex_uint16_t yy_nxt[7501] =
+static yyconst flex_uint16_t yy_nxt[7592] =
{ 0,
14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
14, 14, 18, 20, 21, 22, 23, 24, 25, 14,
@@ -1329,52 +1338,52 @@ static yyconst flex_uint16_t yy_nxt[7501] =
171, 134, 135, 114, 173, 145, 177, 143, 141, 115,
71, 161, 116, 136, 132, 71, 198, 137, 172, 117,
123, 138, 71, 124, 133, 160, 71, 256, 134, 135,
- 125, 2598, 71, 177, 126, 127, 71, 178, 161, 71,
- 136, 2598, 71, 198, 137, 172, 71, 123, 138, 70,
+ 125, 2630, 71, 177, 126, 127, 71, 178, 161, 71,
+ 136, 2630, 71, 198, 137, 172, 71, 123, 138, 70,
124, 70, 70, 75, 70, 75, 75, 125, 75, 71,
70, 126, 127, 149, 178, 149, 149, 70, 149, 70,
70, 75, 70, 75, 75, 165, 75, 174, 70, 167,
- 168, 166, 75, 2598, 71, 175, 176, 179, 71, 180,
- 181, 152, 2598, 2598, 2598, 186, 71, 188, 2598, 197,
- 2598, 71, 165, 71, 174, 71, 167, 168, 166, 76,
+ 168, 166, 75, 2630, 71, 175, 176, 179, 71, 180,
+ 181, 152, 2630, 2630, 2630, 186, 71, 188, 2630, 197,
+ 2630, 71, 165, 71, 174, 71, 167, 168, 166, 76,
71, 71, 175, 176, 179, 182, 180, 181, 183, 187,
194, 189, 71, 196, 188, 195, 197, 71, 71, 191,
- 199, 184, 185, 192, 200, 2598, 71, 201, 2598, 71,
- 2598, 190, 182, 71, 71, 183, 187, 194, 189, 193,
+ 199, 184, 185, 192, 200, 2630, 71, 201, 2630, 71,
+ 2630, 190, 182, 71, 71, 183, 187, 194, 189, 193,
196, 71, 195, 71, 71, 202, 191, 199, 184, 185,
192, 200, 71, 203, 201, 204, 205, 206, 190, 209,
- 208, 207, 71, 210, 214, 71, 193, 71, 2598, 215,
+ 208, 207, 71, 210, 214, 71, 193, 71, 2630, 215,
- 71, 2598, 202, 222, 331, 2598, 71, 71, 71, 71,
+ 71, 2630, 202, 222, 331, 2630, 71, 71, 71, 71,
203, 219, 204, 205, 206, 71, 209, 208, 207, 211,
210, 214, 221, 223, 216, 71, 215, 224, 212, 71,
222, 71, 225, 226, 213, 217, 71, 71, 219, 218,
- 2598, 71, 71, 71, 229, 228, 211, 227, 71, 221,
+ 2630, 71, 71, 71, 229, 228, 211, 227, 71, 221,
223, 216, 231, 71, 224, 212, 71, 236, 232, 225,
226, 213, 217, 233, 234, 230, 218, 71, 239, 71,
- 71, 229, 228, 71, 227, 235, 2598, 2598, 71, 231,
- 71, 2598, 240, 2598, 236, 232, 2598, 237, 2598, 2598,
+ 71, 229, 228, 71, 227, 235, 2630, 2630, 71, 231,
+ 71, 2630, 240, 2630, 236, 232, 2630, 237, 2630, 2630,
233, 234, 230, 144, 238, 144, 144, 71, 144, 245,
71, 149, 235, 149, 149, 75, 149, 75, 75, 240,
75, 150, 242, 241, 237, 71, 71, 246, 243, 247,
- 248, 238, 71, 2598, 71, 244, 245, 71, 249, 252,
+ 248, 238, 71, 2630, 71, 244, 245, 71, 249, 252,
251, 250, 71, 255, 288, 253, 71, 71, 71, 242,
241, 254, 292, 152, 246, 243, 247, 248, 71, 257,
71, 267, 244, 258, 268, 249, 265, 251, 250, 71,
255, 71, 253, 71, 266, 272, 71, 270, 254, 269,
- 259, 2598, 71, 71, 71, 2598, 71, 71, 267, 273,
- 258, 268, 71, 265, 71, 278, 316, 2598, 71, 274,
- 2598, 266, 272, 275, 71, 271, 269, 259, 260, 71,
+ 259, 2630, 71, 71, 71, 2630, 71, 71, 267, 273,
+ 258, 268, 71, 265, 71, 278, 316, 2630, 71, 274,
+ 2630, 266, 272, 275, 71, 271, 269, 259, 260, 71,
289, 71, 71, 261, 276, 71, 273, 277, 262, 71,
279, 280, 278, 316, 263, 264, 274, 290, 285, 71,
- 275, 71, 271, 2598, 406, 260, 71, 289, 291, 294,
+ 275, 71, 271, 2630, 406, 260, 71, 289, 291, 294,
261, 276, 71, 71, 277, 262, 286, 279, 280, 281,
71, 263, 264, 71, 282, 285, 287, 293, 298, 71,
295, 71, 297, 296, 71, 291, 283, 71, 284, 71,
- 299, 71, 300, 286, 302, 71, 281, 2598, 71, 301,
+ 299, 71, 300, 286, 302, 71, 281, 2630, 71, 301,
71, 282, 303, 287, 293, 298, 305, 295, 71, 304,
296, 307, 306, 283, 71, 284, 71, 71, 308, 71,
309, 302, 71, 71, 71, 310, 301, 71, 311, 303,
@@ -1390,735 +1399,746 @@ static yyconst flex_uint16_t yy_nxt[7501] =
340, 343, 71, 71, 71, 71, 71, 335, 71, 337,
333, 341, 344, 347, 348, 349, 71, 350, 351, 353,
- 2598, 352, 2598, 71, 336, 368, 342, 340, 343, 71,
- 71, 71, 71, 354, 356, 71, 71, 357, 2598, 344,
+ 2630, 352, 2630, 71, 336, 368, 342, 340, 343, 71,
+ 71, 71, 71, 354, 356, 71, 71, 357, 2630, 344,
347, 348, 358, 363, 350, 351, 353, 71, 352, 355,
360, 71, 71, 361, 71, 362, 367, 71, 71, 71,
- 354, 356, 71, 364, 357, 365, 371, 2598, 71, 358,
+ 354, 356, 71, 364, 357, 365, 371, 2630, 71, 358,
363, 366, 369, 370, 71, 71, 355, 360, 376, 71,
361, 71, 362, 367, 372, 71, 374, 375, 377, 71,
364, 71, 365, 371, 71, 71, 379, 378, 366, 369,
381, 373, 71, 380, 390, 71, 71, 71, 382, 71,
71, 372, 71, 374, 375, 377, 383, 71, 384, 389,
- 385, 2598, 386, 379, 378, 71, 71, 381, 373, 71,
- 380, 387, 71, 388, 71, 382, 71, 391, 392, 2598,
+ 385, 2630, 386, 379, 378, 71, 71, 381, 373, 71,
+ 380, 387, 71, 388, 71, 382, 71, 391, 392, 2630,
71, 71, 398, 383, 397, 384, 389, 385, 71, 386,
- 2598, 71, 399, 71, 400, 2598, 2598, 71, 387, 393,
+ 2630, 71, 399, 71, 400, 2630, 2630, 71, 387, 393,
388, 71, 71, 407, 391, 392, 402, 394, 395, 398,
- 396, 397, 401, 403, 71, 2598, 2598, 71, 71, 399,
+ 396, 397, 401, 403, 71, 2630, 2630, 71, 71, 399,
71, 400, 404, 405, 410, 411, 393, 71, 71, 413,
407, 414, 417, 402, 394, 395, 71, 396, 408, 401,
403, 409, 412, 71, 415, 416, 418, 71, 71, 404,
405, 410, 411, 71, 71, 419, 71, 71, 414, 417,
- 71, 71, 1047, 71, 421, 408, 422, 420, 409, 412,
+ 71, 71, 1057, 71, 421, 408, 422, 420, 409, 412,
71, 415, 416, 418, 71, 424, 71, 423, 425, 426,
- 431, 427, 419, 2598, 71, 2598, 2598, 428, 429, 437,
- 430, 421, 71, 71, 420, 2598, 2598, 71, 71, 2598,
+ 431, 427, 419, 2630, 71, 2630, 2630, 428, 429, 437,
+ 430, 421, 71, 71, 420, 472, 71, 71, 71, 2630,
432, 71, 424, 71, 423, 436, 426, 431, 427, 438,
71, 439, 71, 433, 428, 429, 434, 430, 435, 440,
- 2598, 71, 445, 71, 71, 71, 441, 432, 446, 71,
- 471, 71, 436, 613, 71, 447, 438, 71, 439, 442,
- 433, 448, 443, 434, 444, 435, 440, 71, 449, 445,
- 71, 459, 451, 441, 71, 446, 460, 471, 466, 463,
-
- 71, 464, 447, 71, 450, 71, 442, 150, 448, 443,
- 71, 444, 71, 475, 71, 449, 461, 71, 459, 451,
- 71, 462, 2598, 460, 2598, 466, 463, 465, 464, 467,
- 469, 450, 452, 453, 476, 71, 470, 71, 2598, 472,
- 475, 71, 454, 468, 455, 456, 457, 71, 71, 458,
- 481, 71, 71, 479, 465, 473, 467, 71, 477, 452,
- 453, 476, 71, 470, 474, 71, 472, 478, 483, 454,
- 468, 455, 456, 457, 480, 71, 458, 482, 485, 71,
- 479, 487, 71, 71, 71, 477, 71, 71, 486, 484,
- 71, 474, 71, 491, 478, 483, 488, 489, 490, 2598,
-
- 71, 480, 71, 492, 482, 2598, 493, 495, 487, 494,
- 71, 499, 496, 2598, 71, 486, 484, 71, 71, 500,
- 491, 2598, 71, 488, 2598, 497, 71, 507, 511, 2598,
- 492, 71, 71, 493, 495, 71, 494, 71, 499, 496,
- 498, 502, 501, 503, 504, 71, 500, 510, 71, 509,
- 71, 508, 497, 71, 507, 505, 71, 506, 512, 513,
- 71, 515, 71, 518, 71, 71, 514, 498, 502, 501,
- 503, 504, 71, 71, 510, 517, 509, 71, 508, 522,
- 71, 519, 505, 71, 506, 512, 513, 516, 515, 71,
- 518, 520, 523, 514, 71, 521, 2598, 527, 524, 526,
-
- 528, 71, 517, 71, 71, 71, 525, 71, 519, 531,
- 2598, 71, 71, 532, 516, 71, 530, 71, 520, 523,
- 529, 71, 521, 533, 527, 524, 526, 528, 71, 71,
- 535, 71, 71, 525, 536, 534, 531, 539, 537, 71,
- 532, 71, 540, 530, 71, 71, 544, 529, 538, 71,
- 533, 541, 546, 71, 547, 71, 71, 535, 545, 548,
- 71, 536, 534, 550, 539, 537, 71, 71, 542, 540,
- 543, 71, 71, 544, 549, 538, 71, 71, 541, 551,
- 553, 547, 552, 555, 71, 545, 554, 558, 556, 2598,
- 550, 71, 562, 71, 559, 542, 71, 543, 71, 560,
-
- 71, 549, 561, 563, 71, 564, 551, 71, 71, 552,
- 555, 557, 71, 554, 558, 71, 71, 71, 565, 562,
- 71, 559, 566, 567, 2598, 71, 560, 575, 576, 561,
- 563, 71, 564, 71, 71, 577, 71, 578, 557, 2598,
- 71, 579, 2598, 2598, 2598, 565, 71, 2598, 2598, 566,
- 567, 568, 580, 71, 575, 576, 569, 582, 570, 71,
- 581, 584, 577, 602, 578, 587, 571, 583, 579, 572,
- 573, 71, 71, 586, 71, 585, 574, 71, 568, 580,
- 71, 589, 588, 569, 71, 570, 590, 581, 584, 71,
- 591, 71, 587, 571, 583, 71, 572, 573, 71, 71,
-
- 586, 595, 585, 574, 592, 71, 593, 71, 589, 588,
- 594, 596, 597, 590, 71, 71, 71, 591, 598, 599,
- 71, 601, 604, 71, 600, 2598, 603, 605, 595, 71,
- 71, 592, 614, 593, 71, 71, 616, 594, 596, 597,
- 71, 71, 71, 606, 150, 598, 599, 607, 601, 604,
- 609, 600, 608, 603, 605, 610, 71, 612, 611, 71,
- 615, 71, 618, 617, 71, 2598, 620, 621, 71, 71,
- 606, 630, 2598, 71, 607, 71, 71, 609, 71, 608,
- 619, 2598, 610, 71, 612, 611, 71, 615, 71, 618,
- 617, 71, 71, 620, 621, 622, 625, 624, 623, 627,
-
- 628, 626, 629, 71, 631, 632, 71, 619, 71, 633,
- 634, 635, 636, 71, 2598, 637, 71, 639, 642, 638,
- 71, 71, 622, 647, 624, 623, 627, 71, 71, 71,
- 641, 71, 71, 71, 71, 643, 644, 634, 635, 636,
- 640, 71, 637, 71, 639, 71, 638, 645, 71, 646,
- 71, 648, 649, 71, 654, 71, 71, 641, 71, 650,
- 656, 653, 643, 644, 651, 71, 655, 640, 652, 71,
- 71, 658, 657, 71, 645, 71, 646, 659, 648, 649,
- 71, 654, 71, 71, 71, 660, 650, 656, 653, 71,
- 2598, 651, 661, 655, 71, 652, 662, 2598, 658, 657,
-
- 665, 2598, 663, 667, 659, 670, 666, 668, 671, 669,
- 71, 675, 71, 2598, 71, 2598, 2598, 71, 677, 661,
- 71, 71, 71, 662, 664, 71, 672, 665, 71, 663,
- 667, 71, 670, 666, 668, 71, 669, 673, 676, 674,
- 679, 680, 71, 71, 71, 677, 678, 681, 71, 682,
- 71, 664, 684, 672, 71, 683, 685, 693, 2598, 71,
- 71, 689, 71, 686, 673, 676, 674, 679, 680, 699,
- 71, 687, 690, 678, 681, 71, 688, 71, 695, 694,
- 71, 71, 683, 685, 71, 71, 71, 71, 689, 71,
- 686, 696, 691, 692, 2598, 700, 71, 697, 706, 690,
-
- 71, 71, 702, 71, 701, 695, 694, 703, 2598, 704,
- 71, 2598, 698, 71, 705, 708, 71, 2598, 696, 691,
- 692, 71, 700, 71, 697, 706, 71, 2598, 2598, 707,
- 2598, 701, 715, 938, 71, 71, 704, 71, 709, 698,
- 71, 705, 708, 710, 711, 714, 712, 71, 713, 716,
- 71, 717, 71, 71, 71, 71, 707, 720, 718, 715,
- 71, 71, 719, 721, 71, 709, 71, 2598, 71, 71,
- 710, 711, 714, 712, 722, 713, 716, 71, 717, 723,
- 729, 724, 71, 725, 720, 718, 727, 71, 726, 719,
- 71, 728, 71, 731, 71, 71, 730, 71, 735, 732,
-
- 733, 722, 737, 71, 71, 761, 723, 729, 724, 71,
- 725, 71, 71, 727, 734, 726, 736, 71, 728, 738,
- 731, 71, 71, 730, 71, 735, 732, 733, 739, 737,
- 740, 741, 744, 742, 746, 2598, 71, 71, 743, 71,
- 71, 734, 747, 736, 745, 71, 738, 749, 748, 71,
- 71, 752, 71, 71, 750, 739, 71, 740, 741, 744,
- 742, 746, 71, 71, 150, 743, 751, 71, 755, 747,
- 71, 745, 71, 753, 749, 748, 754, 758, 752, 756,
- 759, 750, 71, 760, 71, 762, 71, 757, 763, 767,
- 765, 71, 71, 751, 764, 71, 766, 799, 71, 71,
-
- 753, 2598, 786, 754, 71, 71, 756, 759, 71, 71,
- 760, 71, 762, 768, 757, 763, 767, 765, 769, 770,
- 71, 764, 71, 776, 71, 778, 71, 2598, 71, 777,
- 2598, 781, 779, 783, 71, 71, 782, 2598, 1157, 71,
- 768, 2598, 2598, 71, 780, 769, 770, 771, 794, 71,
- 776, 772, 778, 71, 773, 784, 777, 71, 781, 779,
- 783, 774, 71, 782, 775, 785, 71, 71, 71, 71,
- 71, 780, 71, 795, 771, 794, 796, 2598, 772, 71,
- 804, 773, 784, 2416, 2417, 71, 800, 797, 774, 71,
- 801, 775, 785, 787, 788, 2598, 789, 802, 798, 790,
-
- 795, 803, 71, 796, 791, 805, 71, 804, 806, 71,
- 792, 793, 71, 800, 797, 807, 71, 801, 808, 71,
- 787, 788, 71, 789, 802, 798, 790, 71, 803, 71,
- 71, 791, 805, 71, 810, 806, 809, 792, 793, 811,
- 71, 812, 807, 813, 71, 808, 71, 814, 815, 71,
- 817, 816, 818, 820, 819, 2598, 824, 71, 825, 71,
- 71, 810, 71, 809, 71, 826, 811, 71, 812, 823,
- 813, 834, 827, 71, 814, 815, 71, 817, 816, 818,
- 71, 819, 821, 828, 829, 830, 831, 822, 71, 71,
- 71, 71, 826, 71, 71, 832, 823, 833, 71, 827,
-
- 835, 836, 71, 71, 837, 71, 843, 2598, 71, 2598,
- 828, 829, 830, 831, 71, 71, 839, 838, 71, 840,
- 71, 842, 832, 841, 833, 71, 2598, 835, 836, 844,
- 71, 847, 2598, 843, 71, 851, 71, 71, 71, 71,
- 845, 850, 848, 839, 838, 71, 840, 846, 842, 71,
- 841, 71, 849, 71, 71, 854, 844, 71, 847, 71,
- 71, 855, 851, 852, 856, 2598, 859, 845, 850, 848,
- 71, 853, 857, 71, 846, 858, 860, 863, 862, 849,
- 71, 71, 854, 71, 861, 71, 864, 71, 71, 71,
- 852, 856, 865, 859, 71, 71, 867, 868, 853, 857,
-
- 866, 71, 858, 860, 863, 862, 872, 869, 71, 71,
- 871, 861, 71, 864, 71, 71, 870, 876, 873, 865,
- 879, 874, 71, 867, 868, 71, 881, 866, 71, 71,
- 882, 71, 875, 71, 869, 877, 878, 871, 883, 71,
- 880, 889, 71, 870, 876, 873, 71, 71, 874, 71,
- 886, 890, 71, 71, 887, 892, 884, 882, 71, 875,
- 71, 888, 877, 878, 885, 883, 893, 880, 895, 71,
- 891, 71, 71, 71, 897, 71, 898, 886, 890, 71,
- 896, 887, 892, 884, 901, 894, 900, 71, 888, 71,
- 899, 885, 71, 903, 902, 71, 71, 891, 71, 71,
-
- 71, 897, 71, 150, 904, 906, 905, 896, 71, 71,
- 71, 901, 894, 900, 71, 907, 908, 899, 909, 2598,
- 903, 902, 918, 71, 71, 2598, 71, 2598, 71, 916,
- 917, 904, 906, 905, 71, 919, 922, 71, 920, 921,
- 2598, 2598, 907, 908, 2598, 909, 910, 923, 911, 918,
- 2598, 71, 912, 71, 913, 71, 916, 917, 71, 914,
- 71, 71, 919, 922, 915, 920, 921, 924, 928, 926,
- 71, 927, 925, 910, 923, 911, 932, 933, 929, 912,
- 71, 913, 71, 71, 931, 936, 914, 935, 930, 71,
- 939, 915, 937, 940, 71, 928, 926, 934, 927, 71,
-
- 71, 71, 952, 932, 933, 929, 71, 941, 71, 949,
- 71, 931, 948, 2598, 935, 930, 71, 71, 951, 71,
- 940, 953, 71, 2598, 934, 950, 960, 71, 71, 952,
- 954, 71, 2598, 71, 941, 942, 949, 955, 71, 948,
- 943, 958, 944, 71, 964, 951, 961, 956, 953, 71,
- 71, 957, 950, 945, 946, 71, 959, 954, 71, 71,
- 947, 71, 942, 962, 955, 970, 965, 943, 71, 944,
- 71, 71, 963, 961, 956, 2598, 71, 966, 957, 71,
- 945, 946, 967, 959, 968, 71, 71, 947, 71, 971,
- 962, 973, 969, 965, 974, 975, 977, 71, 972, 963,
-
- 71, 71, 71, 71, 966, 976, 71, 71, 71, 967,
- 978, 968, 71, 71, 71, 979, 971, 981, 973, 969,
- 990, 974, 975, 977, 980, 972, 982, 983, 71, 984,
- 71, 988, 976, 985, 71, 71, 71, 978, 989, 986,
- 987, 71, 2598, 991, 981, 993, 2598, 71, 992, 71,
- 994, 980, 71, 982, 983, 71, 984, 71, 988, 71,
- 985, 71, 71, 997, 71, 989, 986, 987, 995, 998,
- 991, 996, 999, 1002, 1000, 992, 1003, 71, 1001, 71,
- 1005, 2598, 71, 71, 1004, 71, 1006, 71, 2598, 1017,
- 997, 71, 71, 1008, 71, 995, 998, 1007, 996, 999,
-
- 1002, 1000, 2598, 71, 1009, 1001, 1010, 1011, 71, 2598,
- 71, 1004, 71, 1006, 1012, 71, 1015, 71, 1014, 1016,
- 1008, 71, 1013, 1018, 1007, 2598, 71, 71, 1021, 71,
- 1019, 1009, 1026, 1010, 1011, 1020, 71, 71, 1022, 71,
- 71, 1012, 1025, 1015, 71, 1014, 1016, 71, 71, 1013,
- 71, 1023, 71, 1024, 1027, 1021, 71, 1019, 2598, 71,
- 71, 1028, 1020, 1029, 71, 1022, 1030, 1031, 1032, 1025,
- 1034, 1033, 2598, 1039, 1040, 71, 1035, 1038, 1023, 71,
- 1024, 1043, 1041, 71, 2598, 71, 71, 1037, 1028, 71,
- 1029, 1036, 71, 1030, 71, 71, 71, 1034, 1033, 71,
-
- 71, 1042, 1044, 1035, 1038, 71, 71, 71, 71, 1041,
- 71, 1045, 1046, 1048, 1037, 1049, 1053, 1050, 1036, 1051,
- 2598, 71, 71, 71, 71, 71, 1052, 71, 1042, 1044,
- 1057, 1058, 1054, 71, 71, 1055, 1056, 1059, 1045, 1046,
- 1048, 1060, 1049, 71, 1050, 71, 1051, 71, 71, 71,
- 1061, 71, 71, 1052, 1062, 2598, 1063, 1057, 1058, 1054,
- 1064, 2598, 1055, 1056, 71, 1069, 1065, 1066, 1060, 1068,
- 1071, 1067, 1074, 1070, 2598, 2598, 1114, 71, 71, 1094,
- 71, 71, 71, 1063, 71, 71, 71, 1064, 71, 1072,
- 71, 71, 1069, 1065, 1066, 1073, 1068, 1071, 1067, 71,
-
- 1070, 71, 1075, 71, 1076, 1077, 71, 1078, 71, 1083,
- 1086, 2598, 2598, 71, 71, 71, 1072, 1084, 1085, 1079,
- 1090, 2598, 1073, 71, 1087, 1089, 71, 2598, 1080, 1075,
- 1081, 1076, 1077, 1082, 1078, 71, 1083, 1086, 71, 71,
- 1088, 71, 71, 71, 1084, 1085, 1079, 1090, 71, 71,
- 1091, 1087, 1089, 1092, 1093, 1080, 1095, 1081, 71, 1096,
- 1082, 1098, 71, 1097, 1099, 1101, 71, 1088, 2598, 2598,
- 2598, 2598, 2598, 71, 1102, 71, 1104, 1091, 71, 1105,
- 1092, 1093, 71, 1095, 71, 71, 1096, 1100, 1098, 71,
- 1097, 1099, 1101, 1103, 71, 1109, 71, 1110, 1107, 71,
-
- 1106, 1102, 1108, 1104, 71, 71, 1105, 1116, 71, 71,
- 1111, 71, 1112, 1113, 1100, 1115, 71, 71, 1119, 71,
- 1103, 1118, 1109, 1117, 1110, 1107, 71, 1106, 71, 1108,
- 71, 71, 1125, 71, 1116, 1124, 1120, 1111, 1122, 1112,
- 1113, 1121, 1115, 71, 1123, 1119, 71, 1132, 1118, 71,
- 1117, 1133, 1134, 1147, 2598, 1135, 2598, 71, 71, 1125,
- 2598, 71, 1124, 2598, 2598, 1122, 1136, 2598, 71, 71,
- 1138, 1123, 1126, 1137, 1132, 1127, 1128, 1143, 1133, 1139,
- 1129, 71, 1135, 1140, 71, 71, 1130, 1141, 71, 1142,
- 1131, 71, 71, 1136, 71, 71, 71, 1138, 1144, 1126,
-
- 1137, 71, 1127, 1128, 1143, 1145, 1139, 1129, 1148, 71,
- 1140, 71, 1146, 1130, 1141, 1149, 1142, 1131, 71, 1158,
- 71, 71, 1150, 2598, 1159, 1144, 1156, 1161, 1163, 1160,
- 2598, 1179, 1145, 1164, 2598, 71, 71, 71, 1165, 1146,
- 71, 71, 1149, 71, 1162, 71, 1158, 71, 1166, 1150,
- 1151, 1159, 71, 1156, 1161, 1152, 1160, 1153, 71, 1154,
- 71, 1155, 71, 1167, 1169, 1165, 1170, 1168, 71, 2598,
- 71, 1162, 71, 1171, 71, 1166, 71, 1151, 1176, 1173,
- 1175, 1178, 1152, 1172, 1153, 71, 1154, 71, 1155, 1174,
- 1167, 1169, 71, 1170, 1168, 1177, 71, 71, 71, 1180,
-
- 1171, 71, 71, 71, 1181, 1176, 1173, 1175, 1178, 1182,
- 1172, 71, 2598, 1183, 1186, 1185, 1174, 1184, 1187, 1188,
- 1192, 1189, 1177, 71, 1190, 71, 1180, 1191, 1193, 1196,
- 71, 71, 1195, 71, 71, 71, 1182, 71, 1194, 71,
- 1183, 71, 1185, 71, 1184, 1187, 71, 71, 1189, 1197,
- 1198, 1190, 1199, 71, 1191, 1193, 1196, 71, 1200, 1195,
- 71, 1201, 1203, 1202, 1204, 1194, 1206, 1205, 1207, 71,
- 1208, 71, 71, 1209, 71, 1210, 1197, 1198, 1217, 1199,
- 71, 71, 1213, 71, 71, 1200, 1218, 71, 1201, 1203,
- 1202, 1204, 71, 71, 1205, 1211, 1212, 1208, 71, 1214,
-
- 71, 1215, 1210, 71, 1219, 71, 71, 1216, 71, 71,
- 71, 71, 71, 1220, 1221, 1224, 1225, 1223, 71, 2598,
- 1222, 2598, 1211, 1212, 71, 71, 1214, 71, 1215, 71,
- 71, 1219, 1227, 1228, 1216, 1231, 1229, 1226, 71, 1230,
- 71, 1221, 1224, 1225, 1223, 71, 71, 1222, 71, 1232,
- 1233, 1234, 1239, 1235, 71, 1240, 1238, 71, 71, 1227,
- 1228, 71, 1231, 1229, 1226, 1236, 1230, 1246, 71, 1241,
- 1237, 71, 1242, 71, 71, 1243, 71, 1233, 1234, 1239,
- 1235, 71, 1240, 1238, 71, 1244, 1248, 1247, 1245, 1250,
- 1249, 1279, 71, 1251, 1246, 2598, 1241, 71, 2598, 1242,
-
- 71, 71, 1243, 1252, 71, 71, 1254, 71, 1257, 1280,
- 1253, 1260, 1244, 71, 1247, 1245, 1250, 1249, 71, 71,
- 1251, 71, 1255, 71, 1259, 1256, 2598, 1258, 71, 1263,
- 1252, 71, 71, 1254, 71, 1257, 71, 1253, 1260, 1261,
- 1269, 71, 2598, 2598, 71, 1262, 1265, 1264, 71, 1255,
- 71, 1259, 1256, 71, 1258, 71, 1263, 1266, 1267, 71,
- 1268, 1270, 71, 1274, 1271, 1273, 1261, 1269, 71, 71,
- 71, 1272, 1262, 1265, 1264, 1276, 2598, 1281, 1278, 1283,
- 71, 71, 1275, 71, 1266, 1267, 71, 1268, 1270, 71,
- 1274, 1271, 1273, 1277, 71, 1282, 71, 2598, 1272, 71,
-
- 71, 1284, 1276, 71, 1281, 1278, 71, 1285, 1286, 1275,
- 1287, 1289, 2598, 1290, 1288, 2598, 2598, 71, 2598, 2598,
- 1277, 71, 1282, 71, 71, 71, 71, 1292, 1284, 1291,
- 1293, 71, 1294, 1305, 1285, 1286, 71, 1287, 1289, 71,
- 1290, 1288, 1295, 1296, 1298, 71, 71, 1301, 1297, 1299,
- 71, 1300, 71, 1302, 1292, 71, 1291, 1293, 71, 1294,
- 1303, 71, 1308, 1304, 1307, 71, 1306, 71, 71, 1295,
- 71, 1309, 71, 1310, 1301, 71, 71, 1311, 1300, 1317,
- 1302, 71, 1314, 71, 1312, 71, 1313, 1303, 1318, 1308,
- 1304, 1307, 71, 1306, 71, 71, 1315, 1320, 1316, 1319,
-
- 1310, 1324, 71, 71, 1311, 71, 1317, 1321, 1322, 1314,
- 71, 1312, 71, 1313, 71, 1318, 1323, 1329, 1325, 71,
- 1331, 2598, 2598, 1315, 71, 1316, 1319, 71, 1324, 71,
- 71, 71, 71, 1326, 1321, 1322, 1330, 1327, 1332, 71,
- 1333, 2598, 1339, 1323, 1329, 1325, 1334, 1331, 71, 71,
- 1328, 71, 1335, 1336, 1338, 1337, 1341, 1342, 71, 1340,
- 1326, 71, 1343, 1330, 1327, 1332, 71, 71, 71, 1339,
- 1345, 71, 1346, 1334, 71, 1347, 71, 1328, 71, 1335,
- 1336, 1338, 1337, 1348, 71, 1344, 1340, 1349, 71, 1343,
- 1350, 71, 71, 1351, 1352, 2598, 1353, 1345, 71, 1346,
-
- 1354, 71, 1355, 1357, 71, 1356, 71, 71, 1359, 1358,
- 71, 71, 1344, 1360, 71, 71, 1361, 1350, 71, 1363,
- 1351, 1352, 71, 1353, 71, 1362, 71, 1354, 1364, 1355,
- 1357, 71, 1356, 1366, 71, 1359, 1358, 71, 71, 1367,
- 1360, 1365, 1368, 1361, 71, 1370, 71, 1369, 71, 1371,
- 1372, 71, 1362, 71, 1373, 1364, 1375, 1376, 71, 71,
- 1366, 1379, 1374, 71, 71, 1377, 1367, 1383, 1365, 1368,
- 71, 71, 1370, 1380, 1369, 71, 1371, 71, 71, 1381,
- 1378, 1373, 71, 1375, 1376, 71, 71, 71, 1379, 1374,
- 1382, 1384, 1377, 1387, 1383, 71, 1385, 71, 1388, 1386,
-
- 1380, 1389, 1390, 71, 1392, 2598, 1381, 1378, 71, 1391,
- 2598, 1393, 1394, 71, 1396, 71, 1397, 1382, 1384, 71,
- 1387, 2598, 71, 1385, 71, 1401, 1386, 1402, 1389, 1395,
- 71, 71, 71, 71, 71, 1398, 1391, 1399, 1393, 1394,
- 71, 1396, 71, 1397, 1403, 1400, 71, 1408, 71, 71,
- 2598, 1404, 1401, 71, 1402, 1409, 1395, 71, 71, 71,
- 1405, 2598, 1398, 1406, 1399, 1410, 1411, 1412, 2598, 71,
- 2598, 1403, 1400, 1413, 1414, 1407, 1417, 71, 1404, 71,
- 2598, 1415, 1409, 71, 71, 1416, 1419, 1405, 71, 1422,
- 1406, 1418, 1410, 1411, 1412, 71, 1420, 71, 71, 1423,
-
- 1413, 1425, 1407, 1417, 71, 71, 71, 71, 1415, 1421,
- 1424, 71, 1416, 1419, 1428, 1426, 71, 1427, 1418, 71,
- 1430, 71, 2598, 1420, 1429, 1433, 1436, 1431, 1432, 71,
- 1434, 71, 71, 71, 71, 71, 1421, 1424, 71, 71,
- 71, 71, 1426, 71, 1427, 1435, 71, 1430, 1437, 1438,
- 1440, 1429, 1433, 1436, 1431, 1432, 71, 1434, 1439, 1442,
- 71, 1441, 1443, 71, 1449, 71, 1445, 71, 1444, 71,
- 1446, 1447, 1435, 71, 2598, 1448, 1438, 1440, 71, 2598,
- 71, 1450, 71, 1452, 71, 1439, 71, 1459, 1441, 1443,
- 71, 1449, 71, 1445, 1451, 1444, 1455, 1446, 1447, 71,
-
- 1456, 1453, 1448, 71, 1454, 1457, 71, 71, 1450, 1458,
- 1452, 71, 71, 1460, 71, 1461, 1462, 1463, 1465, 71,
- 1466, 1451, 1467, 1455, 1464, 71, 1471, 1456, 1453, 71,
- 71, 1454, 1457, 1472, 1468, 1470, 1458, 1469, 71, 71,
- 71, 1473, 1461, 71, 1463, 1465, 71, 1466, 71, 1467,
- 1475, 1464, 71, 71, 1476, 1474, 1478, 1480, 71, 71,
- 71, 1468, 1470, 1477, 1469, 1481, 71, 71, 1473, 71,
- 1479, 71, 71, 1484, 71, 1482, 1483, 1475, 2598, 1485,
- 1489, 1476, 1474, 1478, 1480, 1495, 71, 1498, 1497, 71,
- 1477, 71, 1481, 1486, 71, 71, 1487, 1479, 1490, 1488,
-
- 1484, 1491, 1482, 1483, 71, 71, 1485, 1489, 1492, 1494,
- 71, 1499, 1496, 1493, 71, 71, 1500, 71, 1504, 71,
- 1486, 71, 71, 1487, 1501, 1490, 1488, 1502, 1491, 1503,
- 1505, 1506, 2598, 71, 71, 1508, 1494, 1507, 1499, 1496,
- 71, 1509, 71, 71, 71, 71, 1510, 1511, 71, 71,
- 71, 1501, 1513, 1512, 1502, 71, 1503, 1505, 1506, 1516,
- 1515, 71, 1508, 1514, 1507, 71, 71, 71, 1509, 71,
- 1518, 1517, 1519, 1510, 1511, 2598, 1521, 71, 1523, 1520,
- 1512, 1530, 1522, 71, 71, 71, 1516, 1515, 71, 71,
- 1514, 1524, 1525, 1526, 1527, 1529, 1528, 1541, 1517, 1519,
-
- 71, 71, 71, 71, 1534, 1523, 1520, 71, 71, 1522,
- 1532, 1545, 71, 71, 71, 71, 1531, 1535, 1524, 1525,
- 1526, 1527, 1529, 1528, 71, 71, 1533, 1536, 1539, 71,
- 71, 71, 1540, 1537, 71, 1538, 71, 1532, 71, 71,
- 1543, 1542, 1544, 1531, 1535, 1547, 1546, 71, 71, 71,
- 71, 1550, 1548, 1533, 1536, 1539, 71, 1549, 1552, 1540,
- 1537, 1551, 1538, 71, 1554, 1553, 2598, 1543, 1542, 1544,
- 71, 71, 71, 1546, 71, 71, 71, 1555, 71, 1548,
- 1558, 1556, 71, 71, 1549, 1552, 1557, 1559, 1551, 71,
- 71, 1554, 1553, 1562, 1560, 71, 1565, 1567, 1561, 1563,
-
- 1568, 2598, 71, 71, 1555, 71, 1566, 1558, 1556, 71,
- 71, 1570, 1564, 1557, 1559, 71, 1569, 71, 71, 71,
- 1562, 1560, 71, 1565, 71, 1561, 1563, 1571, 1572, 1582,
- 1573, 1574, 71, 1566, 71, 1575, 1577, 1576, 1570, 1564,
- 1578, 1579, 1580, 1569, 71, 1584, 71, 71, 1581, 1583,
- 1586, 1585, 1589, 71, 1571, 1572, 71, 1573, 71, 1588,
- 71, 71, 71, 71, 1576, 1590, 1591, 1578, 1579, 71,
- 1587, 71, 71, 71, 1596, 1581, 1583, 71, 1585, 71,
- 1598, 71, 71, 71, 1603, 1600, 1588, 1592, 1593, 1594,
- 1601, 71, 1590, 1597, 1595, 1602, 1599, 1587, 71, 1606,
-
- 71, 1596, 71, 71, 2598, 1610, 1605, 1607, 71, 71,
- 1604, 1603, 71, 1609, 1592, 1593, 1594, 71, 71, 71,
- 1597, 1595, 1602, 1599, 1612, 71, 71, 1615, 1608, 1611,
- 71, 71, 71, 1605, 1607, 71, 1613, 1604, 1616, 1614,
- 1609, 1617, 1618, 71, 71, 1619, 1620, 1621, 71, 1624,
- 71, 1612, 1622, 71, 1615, 1608, 1611, 2598, 71, 71,
- 1623, 71, 1627, 1613, 1628, 71, 1614, 71, 1617, 1618,
- 71, 1626, 71, 1620, 1621, 71, 1624, 1625, 71, 1622,
- 1630, 1629, 71, 1631, 71, 1632, 1633, 1623, 71, 1627,
- 2598, 1635, 1634, 1640, 1636, 1637, 71, 1638, 1626, 1639,
-
- 71, 71, 71, 71, 1625, 1641, 71, 1630, 1629, 71,
- 1642, 1643, 71, 71, 71, 71, 2598, 71, 1635, 1634,
- 1640, 1636, 1637, 71, 1638, 1646, 1639, 1644, 1645, 2598,
- 1650, 1648, 1641, 1652, 71, 1655, 71, 1642, 71, 1649,
- 71, 1647, 71, 71, 1653, 1651, 1654, 71, 71, 1659,
- 1661, 1656, 1646, 71, 1644, 1645, 71, 1650, 1648, 1664,
- 1652, 1660, 71, 71, 71, 71, 1649, 71, 1647, 1665,
- 1657, 1653, 1651, 1654, 71, 1658, 71, 1661, 1656, 1667,
- 1662, 1666, 1663, 1669, 1668, 1670, 71, 71, 1660, 71,
- 1671, 71, 1672, 1673, 2598, 71, 71, 1657, 1676, 1674,
-
- 71, 1675, 1658, 2598, 71, 1677, 1667, 1662, 1666, 1663,
- 71, 1668, 1678, 1680, 1679, 71, 71, 71, 1681, 1683,
- 71, 1684, 1682, 2598, 71, 71, 1674, 71, 1675, 71,
- 71, 1685, 1677, 1687, 1686, 71, 71, 1689, 1688, 1678,
- 1680, 1679, 71, 1690, 1691, 1692, 71, 1693, 1684, 1682,
- 71, 71, 71, 1694, 1695, 71, 1696, 1697, 1685, 2598,
- 1687, 1686, 71, 71, 1689, 1688, 1698, 1699, 1703, 1704,
- 71, 71, 1692, 2598, 71, 71, 71, 71, 2598, 71,
- 1694, 1695, 1700, 1696, 1697, 1701, 1702, 1705, 71, 1706,
- 71, 71, 1708, 1698, 1699, 1703, 71, 71, 1707, 1709,
-
- 71, 71, 1712, 1710, 1713, 71, 71, 1715, 1711, 1700,
- 71, 71, 1701, 1702, 1705, 1714, 1706, 71, 1724, 71,
- 71, 71, 1717, 1716, 2598, 1707, 1709, 71, 1720, 1712,
- 1710, 1713, 1719, 1718, 1721, 1711, 71, 71, 1722, 71,
- 1723, 71, 1714, 1729, 1727, 71, 71, 1725, 71, 1717,
- 1716, 1726, 71, 71, 71, 1720, 71, 1728, 71, 1719,
- 1718, 1721, 71, 1730, 1732, 1722, 1731, 1723, 1733, 1734,
- 71, 1727, 1736, 71, 1725, 71, 1737, 1735, 1726, 71,
- 1738, 1739, 2598, 2598, 1728, 1740, 1741, 71, 71, 71,
- 1730, 1732, 71, 1731, 1742, 71, 1734, 71, 71, 1736,
-
- 71, 71, 71, 1737, 1735, 1743, 71, 1738, 1739, 71,
- 1744, 1747, 1740, 1741, 1745, 1748, 1749, 1750, 71, 1757,
- 2598, 1742, 71, 1752, 1751, 1759, 71, 1746, 71, 1754,
- 71, 71, 1743, 1753, 2598, 71, 71, 1744, 1747, 1755,
- 1756, 1745, 1748, 71, 1750, 71, 1757, 71, 1758, 1761,
- 1752, 1751, 1759, 1760, 1746, 71, 1754, 1763, 1766, 1762,
- 1753, 71, 1764, 71, 2598, 71, 1755, 1756, 1765, 1767,
- 71, 71, 71, 1769, 71, 1758, 1761, 1768, 1771, 1772,
- 1760, 1770, 71, 71, 71, 1766, 1762, 1777, 71, 1764,
- 71, 71, 1774, 1773, 1775, 1765, 1767, 1778, 1786, 71,
-
- 1769, 71, 71, 1776, 1768, 1779, 1772, 71, 1770, 1781,
- 71, 71, 1782, 1783, 71, 1780, 71, 71, 1784, 1774,
- 1773, 1775, 71, 71, 1778, 71, 1785, 1793, 1787, 1790,
- 1776, 1788, 1779, 1789, 71, 1795, 1797, 71, 71, 1782,
- 1783, 71, 1780, 71, 1794, 1784, 1791, 71, 1796, 1792,
- 71, 71, 71, 1785, 1793, 1787, 1790, 71, 1788, 71,
- 1789, 1799, 71, 1797, 71, 1798, 71, 1800, 1801, 1803,
- 1802, 1794, 1804, 1791, 1805, 1796, 1792, 71, 71, 2598,
- 71, 71, 71, 71, 1807, 71, 1808, 1806, 1799, 71,
- 2598, 1809, 1798, 1813, 1800, 1801, 1803, 1802, 1811, 1804,
-
- 2598, 1805, 71, 1812, 1810, 71, 71, 71, 71, 1815,
- 1816, 1807, 71, 1808, 1806, 1814, 1817, 71, 1809, 71,
- 1813, 1818, 1820, 2598, 1819, 1811, 1822, 71, 1821, 1825,
- 1812, 1810, 71, 1823, 71, 1826, 1815, 71, 1824, 1827,
- 71, 1828, 1814, 1817, 1830, 71, 1834, 1829, 71, 1820,
- 71, 1819, 1835, 1822, 71, 1821, 1831, 2598, 1836, 1839,
- 71, 71, 1837, 71, 71, 71, 1827, 71, 1828, 1838,
- 1832, 71, 1840, 1834, 1829, 1841, 1842, 71, 71, 71,
- 1843, 1833, 71, 1831, 71, 1836, 1844, 1846, 1845, 1837,
- 1847, 71, 71, 2598, 71, 71, 1838, 1832, 71, 1840,
-
- 1848, 1849, 71, 1842, 1850, 71, 1854, 1851, 1833, 71,
- 71, 1852, 71, 1844, 1846, 1845, 71, 1847, 1855, 1853,
- 71, 1857, 71, 1856, 1858, 71, 1861, 1848, 1849, 71,
- 71, 1850, 1859, 71, 1851, 71, 1860, 2598, 1852, 1862,
- 71, 71, 1947, 71, 1863, 1855, 1853, 71, 1857, 1867,
- 1856, 1858, 71, 71, 1865, 71, 1864, 71, 71, 1859,
- 71, 1866, 1868, 1860, 1869, 1871, 1862, 1870, 1873, 71,
- 71, 1863, 1872, 1874, 71, 1876, 1867, 71, 1877, 71,
- 1878, 1865, 71, 1864, 1875, 1879, 71, 1881, 1866, 1868,
- 1880, 1869, 71, 1884, 1870, 1873, 71, 71, 71, 1872,
-
- 1874, 71, 1876, 1882, 71, 71, 1883, 71, 1887, 1885,
- 1886, 1875, 1879, 71, 1881, 71, 1888, 1880, 1890, 1889,
- 71, 71, 1891, 71, 1893, 1895, 1896, 1897, 1900, 1894,
- 1882, 71, 71, 1883, 71, 1887, 1885, 1886, 71, 1892,
- 71, 1899, 1898, 1888, 1902, 71, 1889, 71, 1905, 71,
- 71, 71, 71, 71, 1897, 71, 1894, 1901, 1903, 1904,
- 2598, 1906, 1908, 71, 2598, 71, 1892, 71, 1899, 1898,
- 1909, 71, 71, 1911, 1912, 1905, 1907, 1917, 71, 1910,
- 71, 71, 1915, 1913, 1901, 1903, 1904, 71, 1906, 71,
- 71, 71, 1914, 1916, 71, 1921, 71, 1909, 1923, 1918,
-
- 1911, 71, 1919, 1907, 71, 1920, 1910, 71, 1922, 1915,
- 1913, 1924, 1925, 71, 71, 71, 71, 71, 71, 1914,
- 1916, 1926, 71, 1927, 71, 1923, 1918, 1928, 1929, 1919,
- 1933, 1930, 1920, 2598, 1931, 1922, 2598, 1935, 1924, 1925,
- 1932, 71, 71, 71, 71, 1934, 1936, 71, 1926, 1937,
- 1927, 71, 71, 71, 1928, 1929, 71, 1933, 1930, 71,
- 1939, 1931, 1938, 1940, 1935, 71, 1941, 1932, 71, 2598,
- 1942, 71, 1934, 1936, 71, 1948, 1937, 1943, 1944, 1946,
- 71, 1945, 71, 1950, 1949, 1952, 1951, 1939, 71, 1938,
- 1940, 71, 71, 1941, 2598, 71, 71, 1942, 71, 71,
-
- 1959, 71, 1948, 2598, 1943, 1944, 1946, 1953, 1945, 1957,
- 1950, 1949, 71, 1951, 1955, 1954, 1956, 71, 1958, 1960,
- 71, 71, 1961, 1962, 1963, 1964, 1967, 71, 2598, 71,
- 1966, 71, 1965, 71, 1953, 71, 1957, 71, 71, 1970,
- 71, 1955, 1954, 1956, 1974, 1958, 1960, 71, 71, 1961,
- 1962, 1963, 1964, 1967, 71, 1968, 1969, 1966, 1971, 1965,
- 1972, 1975, 71, 1976, 1973, 1977, 71, 2598, 1978, 1981,
- 2598, 71, 1982, 1979, 1983, 2598, 71, 71, 71, 1984,
- 1985, 1995, 1968, 1969, 71, 71, 71, 1972, 71, 1980,
- 71, 1973, 1977, 71, 71, 1978, 1981, 71, 71, 1982,
-
- 1979, 1983, 71, 71, 1986, 1987, 1984, 71, 1989, 1991,
- 1988, 1990, 71, 71, 1993, 71, 1980, 1992, 71, 1997,
- 1994, 71, 71, 1998, 1996, 2000, 71, 1999, 71, 2001,
- 2009, 1986, 1987, 71, 71, 1989, 1991, 1988, 1990, 2002,
- 71, 1993, 71, 2004, 1992, 71, 1997, 1994, 71, 71,
- 1998, 1996, 2003, 2005, 1999, 2007, 2001, 71, 2006, 71,
- 2008, 2010, 71, 2011, 71, 71, 2002, 2013, 2012, 71,
- 2004, 2015, 2017, 2018, 2016, 2014, 71, 71, 2019, 2003,
- 2005, 71, 2007, 71, 71, 2006, 71, 2008, 2010, 2020,
- 71, 2023, 2021, 71, 71, 2012, 71, 2024, 2015, 71,
-
- 71, 2016, 2014, 71, 2022, 71, 2025, 2026, 2027, 71,
- 71, 2028, 2031, 71, 2029, 71, 2020, 2030, 2023, 2021,
- 2032, 71, 2034, 71, 2024, 2035, 71, 2033, 71, 71,
- 2038, 2022, 2598, 2025, 71, 2027, 71, 2036, 2037, 71,
- 2039, 2029, 2042, 71, 2030, 2040, 2041, 2032, 71, 2034,
- 2043, 2044, 71, 71, 2033, 71, 2045, 2038, 71, 71,
- 71, 2046, 2047, 2106, 2036, 2037, 2048, 2039, 71, 71,
- 2049, 71, 2040, 2041, 2051, 2050, 71, 71, 71, 2052,
- 2053, 2058, 2598, 71, 2054, 2055, 2060, 2598, 2046, 2047,
- 71, 2057, 71, 2048, 2056, 71, 71, 2049, 71, 71,
-
- 2598, 71, 2050, 71, 2061, 71, 71, 71, 2058, 71,
- 2059, 2054, 2055, 71, 2062, 71, 2063, 71, 2057, 2064,
- 2069, 2056, 71, 71, 2065, 2066, 2068, 71, 2067, 2072,
- 2070, 2061, 71, 71, 71, 2073, 2071, 2059, 71, 71,
- 2074, 2062, 71, 2063, 71, 71, 2064, 2069, 2075, 2076,
- 2077, 2065, 2066, 2068, 71, 2067, 2072, 2070, 2078, 2079,
- 2082, 71, 2073, 2071, 71, 2080, 2083, 2074, 2081, 71,
- 2084, 71, 71, 2085, 2086, 2075, 2076, 2077, 71, 2087,
- 71, 2088, 71, 71, 71, 71, 71, 2082, 71, 2089,
- 2091, 71, 2080, 2083, 71, 2081, 2090, 2084, 2092, 71,
-
- 2085, 2086, 2093, 71, 2094, 2095, 2087, 71, 2088, 2096,
- 2097, 2100, 2101, 2098, 2099, 2104, 2089, 2091, 71, 71,
- 71, 71, 71, 2090, 71, 2092, 71, 2103, 2105, 71,
- 2598, 2094, 71, 71, 2102, 71, 2096, 2097, 2100, 2101,
- 2098, 2099, 71, 2107, 2108, 71, 2110, 2113, 2598, 2109,
- 2114, 2111, 71, 2112, 2103, 71, 71, 71, 71, 2115,
- 71, 2102, 2116, 2117, 2118, 2119, 2598, 2598, 71, 71,
- 2107, 2108, 71, 2110, 2113, 71, 2109, 2114, 2111, 2123,
- 2112, 2120, 2124, 71, 2125, 2121, 71, 71, 71, 2116,
- 71, 2118, 2119, 71, 2122, 2126, 71, 2127, 2129, 2131,
-
- 2128, 71, 2132, 71, 71, 2130, 2123, 2133, 2120, 71,
- 71, 2125, 2121, 2134, 71, 2135, 71, 2137, 2136, 2139,
- 71, 2122, 2126, 71, 71, 2129, 71, 2128, 71, 2132,
- 2138, 2140, 2130, 71, 2133, 2141, 2598, 2142, 71, 2148,
- 2134, 2144, 71, 2143, 71, 2136, 71, 2145, 71, 2146,
- 2147, 2149, 71, 71, 2598, 71, 2150, 2138, 2140, 2157,
- 2154, 71, 71, 71, 2142, 2152, 2148, 71, 2144, 2153,
- 2143, 2151, 71, 71, 2145, 71, 2146, 2147, 2149, 71,
- 2155, 71, 71, 2150, 71, 2156, 71, 2154, 2158, 2159,
- 2161, 2160, 2152, 2163, 2162, 2598, 2153, 71, 2151, 71,
-
- 2164, 2167, 71, 71, 2165, 2168, 2169, 2155, 2166, 71,
- 2170, 2176, 2156, 71, 2171, 71, 2159, 2161, 2160, 2177,
- 71, 2162, 71, 71, 71, 71, 2174, 2164, 2167, 2172,
- 71, 2165, 71, 71, 2173, 2166, 2175, 2170, 71, 2179,
- 2178, 2171, 71, 71, 2180, 2181, 2177, 2182, 71, 2184,
- 2183, 2598, 2598, 2174, 2598, 2598, 71, 71, 71, 2185,
- 2186, 71, 71, 2175, 71, 71, 2179, 2178, 2191, 71,
- 2187, 2180, 2181, 71, 2182, 2188, 2184, 2183, 2189, 71,
- 2190, 71, 71, 2192, 2193, 2196, 2185, 2186, 2598, 71,
- 2198, 2195, 71, 2194, 71, 2191, 71, 2187, 71, 71,
-
- 71, 71, 2188, 2199, 2200, 2189, 2197, 2190, 71, 2204,
- 2192, 2193, 71, 2201, 71, 71, 2202, 2198, 2195, 2203,
- 2194, 71, 2205, 2206, 2598, 2207, 71, 2598, 71, 2208,
- 2199, 71, 71, 2197, 2210, 2209, 2204, 2211, 2598, 2214,
- 2201, 2215, 2212, 2202, 71, 2213, 2203, 2216, 71, 2217,
- 71, 71, 2207, 71, 71, 71, 2208, 71, 2218, 2222,
- 71, 2210, 2209, 2219, 2211, 71, 2214, 2221, 71, 2212,
- 71, 2220, 2213, 2223, 71, 2224, 71, 2225, 71, 2226,
- 2227, 2229, 2230, 2228, 2231, 71, 71, 2232, 2233, 2234,
- 2219, 71, 2598, 71, 2221, 71, 2235, 71, 2220, 71,
-
- 71, 2236, 2224, 2240, 71, 71, 2226, 71, 71, 2230,
- 2228, 2231, 71, 2237, 2238, 71, 2234, 71, 2239, 71,
- 2241, 71, 2244, 2243, 71, 71, 2245, 2242, 71, 71,
- 2240, 2247, 2246, 2248, 2598, 71, 2598, 2249, 2598, 2598,
- 2237, 2238, 2256, 2252, 2598, 2239, 71, 2598, 71, 71,
- 2243, 71, 71, 2245, 2242, 71, 2250, 2251, 2247, 2246,
- 2248, 71, 2253, 2255, 2249, 71, 71, 2254, 2258, 71,
- 2252, 71, 2257, 2259, 71, 2260, 71, 2261, 2598, 2262,
- 71, 71, 2263, 2250, 2251, 2264, 2266, 71, 2265, 2253,
- 2255, 2267, 71, 71, 2254, 2258, 71, 2598, 2268, 2257,
-
- 2259, 71, 2260, 71, 2261, 71, 2262, 2269, 71, 2263,
- 71, 2271, 2264, 2266, 71, 2265, 71, 2270, 2267, 2272,
- 2273, 2274, 2275, 2276, 71, 2268, 2279, 2278, 2280, 71,
- 2277, 2284, 2598, 2281, 2269, 71, 2285, 2288, 71, 2283,
- 2282, 2598, 71, 71, 2270, 71, 2272, 2273, 71, 2275,
- 71, 71, 71, 2279, 2278, 71, 71, 2277, 71, 2286,
- 2281, 2287, 2289, 71, 71, 2294, 2283, 2282, 2290, 2291,
- 2292, 71, 2293, 71, 2295, 2296, 2297, 2300, 71, 71,
- 71, 2298, 2301, 71, 2299, 71, 2286, 71, 2287, 2289,
- 2302, 2307, 2294, 71, 2303, 2290, 2291, 2292, 71, 2293,
-
- 71, 2295, 2296, 2297, 71, 2306, 2304, 71, 2298, 71,
- 2305, 2299, 71, 71, 2308, 2310, 2309, 71, 71, 2311,
- 2312, 2303, 2313, 71, 2315, 2314, 71, 71, 71, 2598,
- 2317, 2318, 2306, 2304, 71, 2320, 71, 2305, 71, 71,
- 2321, 2308, 71, 2309, 71, 2322, 2311, 2312, 2316, 2313,
- 71, 2319, 2314, 2323, 71, 2324, 71, 71, 2318, 71,
- 2325, 2326, 71, 71, 2327, 2329, 71, 2321, 2328, 71,
- 2330, 71, 2322, 71, 2332, 2316, 71, 2331, 2319, 2333,
- 2323, 2335, 2324, 71, 2338, 71, 2341, 2325, 2326, 2336,
- 71, 2327, 2329, 2334, 71, 2328, 2337, 71, 2339, 71,
-
- 71, 71, 2342, 2340, 2331, 71, 71, 71, 71, 2343,
- 2344, 71, 2345, 2341, 2346, 71, 2336, 2347, 71, 2348,
- 2334, 2352, 71, 2337, 2349, 2339, 71, 2350, 71, 2342,
- 2340, 2351, 71, 2353, 2355, 71, 2343, 2344, 71, 71,
- 2354, 71, 71, 2356, 2347, 2357, 2348, 2358, 71, 71,
- 71, 2349, 2359, 2360, 2350, 2361, 2362, 71, 2351, 2363,
- 2353, 2355, 2365, 2364, 71, 2368, 71, 2354, 2369, 2371,
- 2356, 71, 2370, 2372, 71, 2598, 71, 71, 71, 2359,
- 71, 71, 2361, 2362, 2373, 71, 2363, 2366, 2367, 2374,
- 2364, 2375, 71, 2376, 71, 71, 71, 71, 2377, 2370,
-
- 71, 2378, 71, 2380, 2379, 2382, 71, 2383, 2384, 2381,
- 71, 2373, 2386, 71, 2366, 2367, 2374, 71, 2375, 71,
- 71, 2388, 2387, 2389, 2385, 71, 71, 2391, 71, 2390,
- 71, 2379, 2382, 71, 2383, 71, 2381, 71, 2392, 2386,
- 71, 2393, 71, 2398, 2394, 71, 2395, 2396, 71, 2387,
- 2389, 2385, 2405, 71, 71, 2397, 2390, 71, 71, 71,
- 2399, 2400, 2402, 71, 2401, 2392, 71, 2411, 71, 71,
- 2398, 2394, 71, 2395, 2396, 2404, 2403, 71, 2409, 2405,
- 71, 71, 2397, 71, 71, 2406, 2407, 2399, 2400, 2402,
- 2408, 2401, 2410, 2412, 71, 71, 71, 2414, 2413, 71,
-
- 71, 2415, 2404, 2403, 2418, 2409, 2419, 2420, 2422, 2421,
- 2423, 2598, 2406, 2407, 2425, 2424, 71, 2408, 2428, 2410,
- 71, 71, 71, 2426, 71, 2413, 71, 71, 71, 2427,
- 71, 2418, 71, 71, 2420, 71, 2421, 2423, 71, 2429,
- 2430, 2425, 2424, 2431, 71, 2428, 2432, 71, 2435, 2439,
- 2426, 2433, 2437, 2436, 2434, 71, 2427, 2598, 2438, 2440,
- 71, 71, 2444, 2445, 2446, 71, 71, 71, 71, 71,
- 2431, 2441, 2442, 2432, 2443, 2447, 2439, 2448, 2433, 2449,
- 71, 2434, 71, 2450, 71, 2438, 2440, 2451, 2452, 71,
- 71, 71, 2453, 71, 71, 2454, 2455, 71, 2441, 2442,
-
- 71, 2443, 71, 2456, 71, 2458, 2449, 71, 71, 2457,
- 71, 2459, 71, 2460, 71, 2452, 2461, 2462, 71, 2453,
- 2463, 71, 2454, 2455, 2464, 71, 2465, 2466, 2598, 71,
- 71, 2469, 2458, 2467, 2468, 71, 2457, 71, 2459, 71,
- 2460, 71, 71, 2461, 2462, 71, 2470, 2471, 71, 2472,
- 71, 2464, 71, 2465, 2466, 71, 71, 2477, 2469, 2473,
- 2467, 2468, 2474, 2475, 2480, 2476, 71, 2479, 2478, 2481,
- 71, 2598, 71, 2470, 2471, 2488, 2472, 71, 71, 71,
- 71, 2484, 71, 71, 2477, 2489, 2473, 71, 2482, 2474,
- 2475, 2480, 2476, 71, 2479, 2478, 2481, 71, 2483, 2485,
-
- 2486, 2487, 71, 71, 2490, 2598, 2491, 71, 2484, 71,
- 2492, 71, 2489, 2493, 71, 2482, 2494, 2496, 2598, 2499,
- 2497, 71, 2495, 2498, 71, 2483, 2485, 2486, 2487, 71,
- 2501, 71, 71, 2491, 2503, 2598, 2500, 71, 2502, 2511,
- 71, 71, 71, 2494, 2496, 71, 2499, 2497, 71, 2495,
- 2498, 71, 2504, 2507, 2505, 2506, 2512, 2508, 2509, 2510,
- 71, 71, 71, 2500, 71, 2502, 71, 71, 2515, 2518,
- 2598, 71, 2520, 2598, 2513, 2514, 71, 71, 2517, 2504,
- 71, 2505, 2506, 71, 2508, 2509, 2510, 71, 71, 71,
- 2516, 71, 71, 2519, 71, 2515, 2518, 71, 2521, 2520,
-
- 71, 2513, 2514, 2524, 2522, 2517, 71, 2523, 2598, 2529,
- 2525, 71, 2532, 2526, 2527, 2531, 2528, 2516, 71, 2536,
- 2519, 71, 2530, 71, 71, 2521, 2533, 71, 2534, 2535,
- 2524, 2522, 71, 2537, 2523, 71, 71, 2525, 71, 2532,
- 2526, 2527, 2538, 2528, 71, 2539, 2536, 71, 71, 2530,
- 71, 71, 2540, 2533, 2541, 2534, 2535, 2542, 2543, 2544,
- 2545, 2548, 71, 2546, 71, 71, 71, 71, 2547, 2538,
- 2549, 71, 71, 2550, 2552, 71, 2551, 71, 2556, 2540,
- 2598, 2541, 71, 2598, 2542, 2543, 2544, 71, 2548, 2557,
- 2546, 71, 71, 2555, 2553, 2547, 71, 71, 2554, 2558,
-
- 2550, 2552, 71, 2551, 71, 2556, 71, 71, 2559, 71,
- 2560, 71, 2562, 71, 2561, 2566, 2557, 2563, 2564, 2567,
- 2555, 2553, 71, 71, 2569, 2554, 2558, 2565, 2568, 2570,
- 2598, 2598, 2571, 2572, 2576, 2559, 71, 2560, 71, 2562,
- 71, 2561, 2566, 71, 2563, 2564, 71, 71, 2574, 71,
- 71, 2569, 71, 71, 2565, 2568, 71, 2573, 2575, 2571,
- 2572, 71, 2598, 2577, 2578, 71, 71, 2579, 2580, 2581,
- 71, 71, 2582, 2583, 2584, 2574, 71, 71, 2586, 2585,
- 2587, 2589, 71, 2588, 2573, 2575, 71, 71, 2590, 71,
- 2577, 2578, 2591, 2596, 2579, 2580, 2581, 2598, 71, 2582,
-
- 71, 2584, 2592, 71, 71, 2586, 2585, 71, 71, 2593,
- 2588, 2597, 71, 2594, 2595, 71, 2598, 2598, 2598, 2591,
- 71, 71, 71, 2598, 71, 2598, 2598, 2598, 2598, 2592,
- 2598, 71, 2598, 2598, 2598, 2598, 2593, 2598, 71, 2598,
- 2594, 2595, 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, 2598,
- 74, 74, 74, 74, 140, 140, 2598, 2598, 2598, 140,
- 140, 142, 142, 2598, 2598, 142, 2598, 142, 144, 2598,
-
- 2598, 2598, 2598, 2598, 144, 147, 147, 2598, 2598, 2598,
- 147, 147, 149, 2598, 2598, 2598, 2598, 2598, 149, 151,
- 151, 2598, 151, 151, 151, 151, 75, 75, 2598, 75,
- 75, 75, 75, 13, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598
+ 946, 71, 472, 71, 71, 71, 447, 432, 448, 449,
+ 461, 71, 436, 71, 71, 2630, 438, 450, 439, 453,
+ 433, 71, 71, 434, 451, 435, 440, 441, 474, 442,
+ 71, 71, 71, 447, 462, 448, 449, 461, 463, 465,
+
+ 452, 71, 443, 464, 450, 444, 453, 445, 71, 446,
+ 471, 451, 71, 71, 441, 474, 442, 466, 477, 468,
+ 71, 462, 71, 150, 2630, 467, 465, 452, 473, 443,
+ 71, 71, 444, 71, 445, 71, 446, 454, 455, 469,
+ 470, 2630, 71, 483, 466, 477, 468, 456, 71, 457,
+ 458, 459, 467, 478, 460, 473, 479, 71, 480, 475,
+ 71, 482, 71, 71, 454, 455, 469, 470, 476, 485,
+ 71, 481, 484, 71, 456, 71, 457, 458, 459, 71,
+ 478, 460, 490, 479, 71, 480, 487, 486, 482, 498,
+ 488, 71, 71, 71, 489, 476, 485, 494, 481, 484,
+
+ 71, 491, 492, 2630, 71, 71, 493, 496, 71, 490,
+ 497, 495, 71, 71, 486, 501, 498, 488, 71, 502,
+ 71, 489, 71, 504, 494, 499, 509, 513, 503, 2630,
+ 71, 71, 71, 493, 496, 71, 505, 497, 495, 71,
+ 500, 71, 501, 506, 71, 511, 502, 510, 71, 71,
+ 504, 517, 499, 509, 507, 503, 508, 512, 514, 71,
+ 2630, 71, 524, 505, 71, 515, 516, 500, 71, 71,
+ 506, 519, 511, 71, 510, 71, 520, 521, 517, 523,
+ 518, 507, 522, 508, 512, 514, 71, 71, 525, 71,
+ 71, 527, 515, 516, 71, 526, 71, 71, 519, 71,
+
+ 534, 71, 528, 520, 521, 71, 523, 518, 529, 522,
+ 530, 71, 531, 71, 535, 525, 532, 71, 527, 533,
+ 71, 71, 526, 71, 536, 540, 71, 534, 537, 528,
+ 71, 71, 538, 543, 539, 529, 71, 530, 541, 531,
+ 71, 535, 71, 532, 71, 1168, 533, 548, 71, 549,
+ 542, 536, 540, 547, 71, 537, 71, 71, 71, 538,
+ 543, 539, 544, 546, 545, 541, 71, 71, 550, 552,
+ 71, 71, 551, 71, 555, 560, 549, 542, 553, 71,
+ 547, 554, 71, 557, 2630, 556, 558, 606, 71, 544,
+ 546, 545, 71, 561, 71, 563, 552, 71, 562, 551,
+
+ 71, 71, 560, 71, 564, 553, 71, 71, 554, 559,
+ 557, 565, 556, 567, 566, 71, 569, 568, 71, 71,
+ 561, 578, 563, 2630, 71, 562, 71, 71, 71, 71,
+ 577, 564, 580, 71, 581, 71, 559, 71, 565, 582,
+ 567, 566, 579, 569, 568, 570, 583, 584, 578, 585,
+ 571, 71, 572, 71, 588, 71, 71, 577, 71, 580,
+ 573, 581, 589, 574, 575, 71, 582, 71, 71, 579,
+ 576, 71, 570, 583, 584, 586, 585, 571, 591, 572,
+ 2630, 588, 592, 595, 71, 587, 71, 573, 590, 589,
+ 574, 575, 593, 597, 594, 71, 596, 576, 71, 600,
+
+ 599, 71, 602, 2630, 71, 591, 71, 71, 71, 592,
+ 595, 598, 587, 603, 71, 590, 71, 71, 71, 593,
+ 597, 594, 71, 596, 601, 604, 600, 599, 609, 602,
+ 605, 607, 71, 608, 71, 610, 71, 611, 598, 617,
+ 603, 612, 613, 71, 616, 71, 71, 614, 71, 71,
+ 71, 601, 604, 150, 615, 609, 618, 605, 607, 620,
+ 608, 71, 610, 71, 611, 71, 71, 619, 612, 613,
+ 621, 616, 622, 624, 614, 623, 634, 625, 628, 71,
+ 637, 615, 71, 632, 633, 71, 635, 71, 71, 71,
+ 636, 71, 675, 629, 619, 71, 71, 621, 630, 622,
+
+ 624, 71, 623, 626, 625, 628, 627, 631, 71, 638,
+ 71, 71, 71, 71, 71, 71, 639, 71, 640, 71,
+ 641, 71, 642, 643, 644, 71, 71, 71, 646, 645,
+ 626, 647, 71, 627, 631, 648, 638, 649, 71, 71,
+ 651, 650, 653, 639, 71, 640, 71, 641, 71, 642,
+ 643, 644, 71, 652, 71, 71, 645, 658, 647, 71,
+ 71, 654, 648, 665, 649, 657, 655, 659, 650, 653,
+ 656, 664, 71, 660, 71, 71, 71, 661, 662, 2630,
+ 652, 71, 666, 71, 658, 71, 663, 672, 654, 667,
+ 665, 71, 657, 655, 659, 71, 669, 656, 71, 71,
+
+ 660, 71, 670, 71, 661, 662, 71, 676, 671, 666,
+ 673, 668, 71, 663, 672, 674, 667, 677, 71, 71,
+ 679, 678, 71, 669, 71, 71, 680, 681, 71, 670,
+ 685, 682, 71, 686, 676, 671, 71, 673, 668, 683,
+ 684, 687, 674, 71, 677, 688, 689, 71, 678, 71,
+ 697, 71, 71, 680, 681, 71, 690, 685, 682, 691,
+ 693, 71, 694, 71, 692, 71, 683, 684, 687, 703,
+ 71, 695, 696, 689, 71, 699, 71, 71, 71, 71,
+ 698, 700, 71, 690, 705, 701, 2630, 693, 71, 694,
+ 704, 71, 706, 71, 708, 2630, 2630, 707, 695, 696,
+
+ 702, 71, 699, 71, 710, 71, 71, 698, 700, 71,
+ 711, 705, 701, 709, 712, 71, 713, 704, 71, 714,
+ 71, 708, 716, 715, 71, 71, 717, 702, 71, 71,
+ 71, 710, 71, 71, 718, 720, 719, 711, 725, 71,
+ 709, 712, 721, 713, 722, 723, 714, 71, 726, 716,
+ 715, 71, 71, 717, 71, 724, 71, 71, 727, 729,
+ 71, 718, 720, 719, 728, 730, 71, 71, 71, 721,
+ 71, 722, 723, 732, 71, 726, 733, 2630, 734, 731,
+ 2630, 71, 724, 737, 735, 727, 729, 71, 71, 71,
+ 736, 728, 730, 738, 740, 741, 742, 739, 71, 71,
+
+ 732, 749, 71, 733, 71, 734, 731, 71, 71, 71,
+ 737, 735, 743, 744, 745, 71, 71, 736, 747, 71,
+ 738, 740, 741, 742, 739, 746, 748, 71, 749, 750,
+ 751, 754, 753, 71, 71, 752, 71, 755, 756, 743,
+ 744, 745, 71, 757, 761, 747, 71, 71, 71, 764,
+ 71, 71, 746, 748, 150, 71, 750, 751, 754, 753,
+ 71, 71, 752, 758, 755, 756, 759, 760, 767, 762,
+ 757, 71, 766, 71, 765, 71, 71, 763, 768, 71,
+ 71, 772, 770, 769, 773, 71, 2630, 2630, 2630, 771,
+ 758, 792, 71, 759, 760, 71, 762, 71, 71, 766,
+
+ 71, 765, 784, 71, 763, 768, 71, 782, 774, 770,
+ 769, 773, 775, 71, 71, 776, 771, 71, 783, 71,
+ 71, 786, 71, 71, 789, 785, 2630, 787, 71, 784,
+ 2630, 2630, 788, 2630, 782, 774, 790, 804, 2630, 775,
+ 71, 805, 776, 777, 71, 783, 71, 778, 786, 71,
+ 779, 789, 785, 71, 787, 791, 800, 780, 71, 788,
+ 781, 71, 71, 790, 804, 71, 801, 2630, 71, 2630,
+ 777, 802, 71, 803, 778, 71, 806, 779, 71, 830,
+ 71, 807, 791, 800, 780, 808, 811, 781, 793, 794,
+ 2630, 795, 2630, 801, 796, 810, 71, 71, 802, 797,
+
+ 803, 809, 812, 806, 814, 798, 799, 71, 807, 813,
+ 71, 71, 808, 811, 71, 793, 794, 71, 795, 71,
+ 816, 796, 810, 820, 71, 819, 797, 71, 809, 812,
+ 815, 814, 798, 799, 71, 817, 813, 818, 71, 821,
+ 822, 824, 71, 71, 71, 71, 823, 816, 825, 71,
+ 820, 71, 819, 71, 826, 71, 71, 815, 827, 831,
+ 829, 832, 817, 828, 818, 833, 821, 822, 824, 836,
+ 71, 839, 837, 823, 834, 825, 835, 838, 71, 71,
+ 840, 71, 71, 843, 841, 71, 71, 829, 832, 842,
+ 71, 71, 833, 71, 71, 71, 836, 71, 839, 837,
+
+ 845, 834, 71, 835, 838, 844, 846, 71, 71, 847,
+ 848, 841, 850, 71, 849, 71, 842, 851, 71, 852,
+ 2630, 71, 853, 854, 71, 2630, 861, 845, 71, 856,
+ 71, 71, 844, 846, 71, 71, 847, 848, 71, 850,
+ 860, 849, 857, 855, 851, 71, 852, 71, 71, 853,
+ 854, 71, 858, 71, 2630, 862, 856, 864, 863, 865,
+ 859, 71, 2630, 71, 866, 71, 71, 860, 867, 857,
+ 855, 71, 869, 71, 868, 870, 71, 2630, 874, 858,
+ 71, 71, 862, 871, 864, 863, 865, 859, 872, 873,
+ 71, 866, 71, 71, 878, 867, 71, 877, 71, 869,
+
+ 875, 868, 870, 885, 876, 874, 879, 71, 71, 883,
+ 871, 880, 881, 71, 71, 872, 873, 71, 71, 71,
+ 890, 71, 887, 882, 877, 884, 889, 875, 886, 71,
+ 71, 876, 71, 879, 891, 71, 883, 888, 880, 881,
+ 894, 71, 71, 71, 71, 892, 898, 890, 896, 897,
+ 882, 895, 884, 893, 71, 886, 899, 71, 71, 901,
+ 71, 891, 71, 900, 888, 71, 903, 894, 906, 902,
+ 71, 908, 892, 898, 71, 896, 71, 71, 895, 904,
+ 893, 71, 905, 899, 909, 907, 912, 910, 71, 2630,
+ 900, 71, 71, 71, 71, 150, 902, 71, 908, 914,
+
+ 911, 943, 71, 915, 71, 924, 904, 71, 71, 905,
+ 71, 909, 907, 912, 910, 913, 71, 916, 925, 917,
+ 2630, 926, 71, 71, 71, 71, 914, 911, 943, 928,
+ 915, 71, 924, 71, 927, 930, 71, 931, 932, 929,
+ 2630, 71, 913, 933, 916, 925, 917, 918, 926, 919,
+ 71, 71, 71, 920, 934, 921, 928, 71, 2630, 2630,
+ 922, 927, 930, 935, 931, 923, 929, 71, 2630, 937,
+ 71, 71, 936, 939, 918, 940, 919, 941, 944, 938,
+ 920, 934, 921, 71, 71, 942, 71, 922, 71, 945,
+ 935, 71, 923, 947, 949, 71, 937, 948, 71, 936,
+
+ 939, 957, 940, 71, 941, 71, 938, 956, 2630, 960,
+ 71, 968, 942, 2630, 958, 959, 71, 2630, 2630, 962,
+ 2630, 949, 71, 71, 948, 71, 950, 71, 957, 966,
+ 71, 951, 961, 952, 956, 71, 960, 963, 71, 964,
+ 965, 958, 959, 71, 953, 954, 962, 71, 71, 969,
+ 71, 955, 71, 950, 71, 970, 71, 967, 951, 961,
+ 952, 971, 972, 71, 963, 973, 964, 965, 975, 974,
+ 978, 953, 954, 71, 977, 71, 969, 71, 955, 976,
+ 71, 979, 970, 980, 967, 71, 71, 71, 971, 981,
+ 983, 71, 973, 982, 71, 975, 974, 71, 984, 71,
+
+ 71, 977, 71, 71, 985, 71, 976, 987, 979, 986,
+ 980, 71, 998, 988, 991, 989, 981, 983, 990, 996,
+ 982, 992, 71, 71, 71, 984, 71, 71, 71, 993,
+ 994, 985, 995, 71, 997, 999, 986, 71, 1001, 71,
+ 988, 991, 989, 1002, 71, 990, 996, 1000, 992, 71,
+ 1003, 71, 71, 1004, 71, 1005, 993, 994, 71, 995,
+ 71, 997, 999, 1008, 1007, 1006, 1011, 1009, 1012, 1013,
+ 71, 71, 71, 1010, 1000, 71, 71, 1003, 71, 71,
+ 1004, 71, 1005, 1014, 1016, 71, 1017, 1015, 1018, 1021,
+ 1008, 1007, 1006, 71, 1009, 1012, 1019, 1020, 71, 71,
+
+ 1010, 71, 1025, 1026, 71, 1022, 71, 71, 71, 1023,
+ 1014, 1016, 1024, 1017, 1015, 1018, 1021, 1027, 71, 71,
+ 71, 1029, 1028, 1019, 1020, 1034, 71, 1033, 1030, 1035,
+ 71, 71, 1022, 71, 71, 71, 1023, 71, 1031, 1024,
+ 1032, 71, 1036, 1038, 1027, 71, 71, 71, 1029, 1028,
+ 1037, 1039, 71, 1040, 1033, 1030, 1041, 71, 71, 1043,
+ 1044, 71, 1042, 1049, 71, 1031, 1045, 1032, 71, 1036,
+ 1038, 1050, 71, 1047, 1052, 1046, 2630, 1037, 1039, 1048,
+ 71, 1053, 71, 71, 71, 71, 1043, 1044, 2630, 1042,
+ 71, 71, 1051, 1045, 71, 71, 71, 1054, 1055, 1056,
+
+ 1047, 1052, 1046, 71, 71, 71, 1048, 1058, 71, 1059,
+ 1060, 71, 1062, 1061, 71, 71, 71, 1063, 71, 1051,
+ 71, 1065, 1064, 1066, 1054, 1055, 1056, 71, 1068, 1067,
+ 1069, 1071, 1072, 71, 1058, 71, 1059, 1060, 71, 1062,
+ 1061, 1074, 2630, 1073, 71, 1070, 71, 1075, 1065, 1064,
+ 1066, 71, 71, 1078, 1076, 1068, 1067, 71, 1077, 1081,
+ 1084, 1079, 2630, 71, 71, 71, 71, 71, 1074, 71,
+ 1073, 71, 1070, 71, 1075, 71, 1080, 1082, 1085, 71,
+ 1078, 1076, 1083, 1086, 71, 1077, 1081, 71, 1079, 71,
+ 71, 71, 71, 1087, 1088, 2630, 1093, 1089, 1095, 1096,
+
+ 1124, 71, 2630, 1080, 1082, 1085, 1090, 1094, 1091, 1083,
+ 1086, 1092, 71, 1097, 71, 2630, 1104, 1100, 71, 71,
+ 1087, 1088, 71, 1093, 1089, 1095, 1096, 1098, 1099, 71,
+ 1102, 1105, 71, 1090, 1094, 1091, 71, 71, 1092, 71,
+ 1097, 1101, 1103, 71, 1100, 1107, 71, 1108, 1109, 71,
+ 71, 2630, 71, 71, 1098, 1099, 1106, 1102, 1105, 1110,
+ 1114, 1112, 2630, 71, 1115, 1111, 71, 71, 1101, 1103,
+ 71, 71, 1107, 71, 1108, 1109, 71, 1113, 1117, 71,
+ 71, 1119, 1116, 1106, 71, 1118, 1110, 1114, 1112, 71,
+ 71, 1115, 1111, 1121, 71, 1120, 1122, 1123, 1125, 1126,
+
+ 71, 1129, 71, 71, 1113, 1117, 1127, 71, 1119, 1116,
+ 1128, 71, 1118, 71, 1130, 71, 71, 1133, 71, 1131,
+ 1121, 1132, 1120, 1122, 1123, 1125, 1126, 1134, 1129, 71,
+ 71, 1135, 71, 1127, 1144, 2630, 1158, 1128, 1142, 2630,
+ 2630, 71, 1143, 1147, 1133, 1145, 71, 1159, 1132, 2630,
+ 2630, 2630, 71, 1146, 1134, 2630, 1148, 71, 1135, 1136,
+ 71, 71, 1137, 1138, 2630, 1142, 71, 1139, 71, 1143,
+ 1147, 71, 1145, 1140, 1149, 71, 1150, 1141, 71, 71,
+ 1146, 71, 1151, 1148, 1152, 1153, 1136, 1154, 1155, 1137,
+ 1138, 1160, 71, 1161, 1139, 1156, 71, 1167, 1157, 2630,
+
+ 1140, 1149, 71, 1150, 1141, 71, 71, 71, 71, 1151,
+ 71, 1152, 1153, 71, 1154, 1155, 71, 2630, 1160, 1170,
+ 1161, 1172, 1156, 71, 1167, 1157, 1162, 1169, 1171, 1173,
+ 71, 1163, 1179, 1164, 1174, 1165, 1176, 1166, 1178, 1175,
+ 71, 71, 71, 71, 71, 1177, 1170, 71, 1172, 1180,
+ 71, 71, 1182, 1162, 1169, 1171, 1173, 71, 1163, 1179,
+ 1164, 1181, 1165, 1176, 1166, 1178, 71, 71, 1183, 71,
+ 1184, 71, 1177, 1185, 1187, 1186, 1180, 1189, 1188, 1182,
+ 71, 71, 1190, 71, 1191, 1192, 71, 2630, 1181, 1193,
+ 1197, 1194, 71, 71, 2630, 1183, 71, 1184, 1195, 71,
+
+ 1185, 1187, 1186, 1198, 1189, 1188, 1199, 1200, 1203, 71,
+ 71, 1191, 71, 1196, 71, 71, 1193, 71, 1194, 1205,
+ 71, 71, 1201, 1207, 1204, 1195, 1202, 1206, 71, 71,
+ 1198, 71, 71, 71, 1200, 71, 1208, 1209, 1211, 1210,
+ 1196, 71, 2630, 1219, 1214, 71, 1205, 1212, 71, 1201,
+ 1207, 1204, 1216, 1202, 1206, 1213, 1217, 71, 1215, 71,
+ 71, 71, 1220, 1208, 1209, 1211, 1210, 71, 1221, 71,
+ 71, 1214, 1218, 71, 1212, 71, 71, 71, 1222, 1216,
+ 1223, 1224, 1213, 1217, 1225, 1215, 71, 1226, 1229, 71,
+ 71, 1232, 71, 1230, 71, 1221, 1227, 1228, 71, 1218,
+
+ 71, 1231, 1233, 71, 71, 1237, 2630, 1223, 1224, 1236,
+ 71, 1225, 71, 1234, 71, 1229, 71, 1238, 1232, 1235,
+ 71, 1240, 1239, 1227, 1228, 71, 71, 1242, 1241, 71,
+ 71, 71, 1237, 71, 71, 71, 1236, 1244, 1245, 1246,
+ 1234, 1243, 1252, 71, 1238, 1247, 1235, 71, 1240, 1239,
+ 71, 1249, 1248, 1251, 1242, 1241, 1250, 1253, 2630, 71,
+ 71, 71, 1254, 1259, 1244, 71, 1246, 71, 1243, 1252,
+ 71, 71, 1247, 1255, 71, 1257, 1256, 1261, 1258, 1248,
+ 1251, 1260, 2630, 71, 1253, 71, 2630, 1262, 71, 1254,
+ 1259, 1263, 1292, 1264, 71, 1265, 71, 71, 1270, 1267,
+
+ 1255, 71, 1257, 1256, 1266, 1258, 1268, 71, 1260, 71,
+ 71, 71, 1269, 71, 1262, 71, 1272, 1273, 1263, 71,
+ 1264, 71, 1265, 1271, 71, 1270, 1267, 1274, 1278, 1275,
+ 1276, 1266, 71, 1268, 2630, 1279, 71, 71, 1277, 1269,
+ 71, 71, 71, 1272, 1273, 71, 71, 71, 1280, 1282,
+ 1271, 1281, 1283, 2630, 1274, 1278, 1275, 1276, 1284, 71,
+ 71, 1285, 1279, 1286, 2630, 1277, 1287, 1290, 1289, 1291,
+ 71, 71, 71, 71, 1288, 1280, 1282, 1293, 1281, 1283,
+ 71, 71, 2630, 2630, 1294, 1284, 71, 1295, 1285, 71,
+ 1286, 71, 71, 1287, 1290, 1289, 1291, 1296, 1297, 1298,
+
+ 1302, 1288, 1300, 1299, 1301, 2630, 1303, 2630, 2630, 71,
+ 71, 1294, 71, 71, 1295, 71, 71, 71, 1305, 1306,
+ 71, 71, 2630, 1307, 71, 1297, 1298, 1302, 1304, 1300,
+ 1299, 1301, 71, 1303, 1308, 71, 71, 71, 1309, 1311,
+ 1313, 71, 71, 1310, 1312, 1305, 1306, 71, 1314, 1315,
+ 1307, 1316, 1319, 1317, 1318, 1304, 71, 71, 1321, 71,
+ 71, 1308, 1322, 71, 1320, 71, 71, 1313, 1323, 1324,
+ 71, 71, 1334, 2630, 1325, 1314, 1315, 71, 1316, 1326,
+ 1317, 1318, 71, 71, 71, 1321, 1327, 71, 1331, 1322,
+ 1328, 1320, 1329, 1330, 71, 1333, 1324, 1332, 71, 71,
+
+ 71, 1325, 1336, 71, 1335, 71, 1326, 2630, 2630, 1337,
+ 71, 2630, 1338, 1327, 71, 1331, 1343, 1328, 1339, 1329,
+ 1330, 71, 1333, 71, 1332, 71, 71, 1345, 1344, 1336,
+ 71, 1335, 71, 1340, 71, 1346, 1337, 1341, 71, 1338,
+ 71, 1347, 2630, 1343, 1348, 1339, 71, 1349, 2630, 1350,
+ 1342, 1356, 1351, 1355, 1345, 1344, 1352, 2630, 71, 1358,
+ 1340, 1353, 1346, 71, 1341, 71, 71, 1359, 71, 71,
+ 71, 1348, 71, 1354, 1349, 71, 1350, 1342, 71, 1351,
+ 71, 1357, 1361, 1352, 1360, 71, 1358, 2630, 1353, 71,
+ 71, 1362, 1363, 1364, 1359, 1365, 1369, 1366, 2630, 1367,
+
+ 1354, 1368, 71, 1371, 71, 1370, 71, 1372, 1357, 1375,
+ 71, 1360, 1379, 71, 71, 1374, 71, 71, 71, 71,
+ 1364, 71, 1365, 1369, 1366, 71, 1367, 71, 1368, 71,
+ 1371, 1373, 1370, 1376, 1372, 71, 1375, 1377, 1378, 71,
+ 1380, 1381, 1374, 71, 1382, 1384, 71, 1383, 71, 2630,
+ 71, 1387, 71, 1385, 1386, 1388, 1390, 1389, 1373, 71,
+ 1376, 71, 71, 71, 1377, 1378, 71, 1380, 1381, 71,
+ 71, 1382, 1384, 71, 1383, 1393, 71, 1394, 1387, 71,
+ 1385, 1386, 71, 1390, 1389, 1391, 1392, 1396, 71, 1395,
+ 1397, 1398, 1399, 71, 2630, 1402, 1401, 71, 71, 1400,
+
+ 2630, 1404, 1393, 71, 1394, 1403, 1406, 1408, 1411, 71,
+ 71, 71, 1391, 1392, 1396, 71, 1395, 1397, 1398, 1399,
+ 71, 71, 1402, 1401, 1405, 1410, 1400, 71, 1407, 1409,
+ 1414, 71, 1403, 71, 71, 1411, 1412, 71, 71, 1413,
+ 1415, 71, 1416, 71, 1417, 1419, 71, 1418, 1424, 71,
+ 2630, 1405, 1410, 2630, 71, 1407, 1409, 1414, 1430, 1425,
+ 71, 1421, 71, 1412, 1422, 71, 1413, 1415, 71, 1416,
+ 1420, 1417, 1419, 71, 1418, 1426, 1423, 71, 1427, 1433,
+ 71, 71, 1428, 1429, 71, 71, 1425, 1431, 1421, 1432,
+ 71, 1422, 2630, 71, 1434, 1435, 1438, 1420, 1439, 1441,
+
+ 71, 71, 1426, 1423, 71, 1427, 1433, 71, 71, 1428,
+ 1429, 1436, 1440, 71, 1431, 71, 1432, 1437, 1443, 71,
+ 1444, 1434, 1435, 1442, 71, 1453, 1445, 71, 71, 1447,
+ 71, 71, 1446, 1449, 71, 1448, 71, 2630, 1436, 1440,
+ 71, 71, 71, 1451, 1437, 1443, 71, 71, 71, 1452,
+ 1442, 1450, 1458, 1445, 1454, 1456, 1447, 71, 71, 1446,
+ 1449, 71, 1448, 71, 71, 1455, 1460, 1457, 71, 1461,
+ 1451, 1462, 71, 71, 1463, 2630, 1452, 1459, 1450, 71,
+ 1468, 1454, 1456, 71, 71, 1466, 1464, 71, 71, 71,
+ 1465, 2630, 1455, 1460, 1457, 71, 1461, 1467, 1462, 71,
+
+ 71, 1463, 1469, 71, 1459, 1470, 1472, 1468, 1471, 71,
+ 1475, 1473, 1466, 1464, 1474, 1476, 71, 1465, 71, 71,
+ 71, 1477, 1478, 1480, 1467, 1479, 1483, 1488, 1487, 1469,
+ 2630, 71, 1470, 1472, 1481, 1471, 1482, 71, 1473, 71,
+ 1489, 1474, 71, 1484, 71, 71, 71, 71, 1477, 71,
+ 1480, 71, 1479, 1483, 1485, 1487, 71, 1486, 1490, 71,
+ 1491, 1481, 1492, 1482, 1493, 71, 1497, 71, 1494, 2630,
+ 1484, 71, 71, 1495, 71, 71, 1496, 71, 71, 71,
+ 1498, 1485, 1502, 1499, 1486, 1490, 1500, 1491, 71, 1492,
+ 1501, 1493, 2630, 1497, 71, 1494, 1503, 2630, 1504, 1507,
+
+ 1495, 1505, 1506, 1496, 71, 71, 71, 1498, 71, 1502,
+ 1499, 71, 71, 1500, 1509, 1508, 71, 1501, 1511, 1510,
+ 1512, 1513, 1514, 1503, 71, 1504, 1507, 1515, 1505, 1506,
+ 71, 71, 1517, 1516, 1519, 1518, 1521, 2630, 1520, 1522,
+ 1531, 71, 1508, 2630, 1537, 1511, 71, 1533, 1513, 71,
+ 1525, 71, 71, 71, 71, 71, 71, 1523, 71, 71,
+ 1516, 1519, 1518, 1524, 71, 1520, 1522, 1526, 71, 1527,
+ 1529, 1528, 71, 1530, 1533, 71, 71, 1525, 1532, 1535,
+ 1534, 71, 2630, 71, 1523, 71, 71, 71, 71, 71,
+ 1524, 1538, 71, 1540, 1526, 1536, 1527, 1529, 1528, 1539,
+
+ 1530, 1542, 71, 1541, 1548, 1532, 1535, 1534, 71, 71,
+ 71, 1543, 1544, 1545, 1546, 1547, 71, 1549, 1538, 71,
+ 71, 1550, 1536, 1553, 71, 2630, 1539, 1555, 1542, 71,
+ 1541, 1548, 71, 71, 71, 71, 1551, 1552, 1543, 1544,
+ 1545, 1546, 1547, 1554, 71, 71, 1556, 71, 1550, 1558,
+ 71, 71, 1557, 1559, 1555, 1560, 71, 71, 1564, 1561,
+ 71, 71, 1562, 1551, 1552, 2630, 1566, 71, 1565, 1563,
+ 1554, 71, 1567, 1556, 71, 1569, 1558, 1572, 1571, 1557,
+ 1559, 1573, 1568, 1570, 2630, 71, 1561, 71, 71, 1562,
+ 71, 1577, 71, 71, 71, 1565, 1563, 1578, 71, 1567,
+
+ 71, 71, 71, 71, 1572, 1571, 1574, 1575, 1573, 1568,
+ 1570, 71, 1576, 71, 1579, 71, 71, 1582, 1577, 1580,
+ 1581, 71, 1586, 1587, 1578, 1584, 1585, 1593, 2630, 71,
+ 1583, 71, 71, 1574, 1575, 71, 1591, 1588, 71, 1576,
+ 1589, 1579, 71, 71, 1582, 1592, 1580, 1581, 71, 71,
+ 1594, 1590, 1584, 1585, 71, 71, 1596, 1583, 71, 1595,
+ 1599, 71, 1597, 1591, 1588, 1600, 71, 1589, 71, 1598,
+ 1601, 71, 1592, 1602, 1603, 71, 1604, 71, 1590, 1605,
+ 1606, 1607, 71, 71, 1610, 71, 1595, 71, 71, 1597,
+ 1608, 1615, 1600, 1609, 1617, 2630, 1598, 71, 71, 2630,
+
+ 1602, 1625, 71, 1604, 2630, 71, 71, 1606, 1607, 1619,
+ 1622, 71, 2630, 2630, 1620, 2630, 71, 71, 1615, 71,
+ 1609, 1611, 1612, 1613, 1616, 1618, 71, 1621, 1614, 1623,
+ 1624, 71, 71, 71, 2630, 71, 71, 1622, 1628, 1627,
+ 71, 71, 71, 1626, 71, 71, 71, 1629, 1611, 1612,
+ 1613, 1616, 1618, 1631, 1621, 1614, 1623, 1624, 1630, 71,
+ 1632, 71, 1634, 1633, 1635, 1628, 1627, 71, 71, 1639,
+ 1626, 1638, 1640, 2630, 71, 1636, 1637, 71, 2630, 71,
+ 1631, 1641, 1642, 1648, 71, 1630, 1644, 1632, 71, 1634,
+ 1633, 71, 1647, 71, 71, 1651, 71, 1650, 1638, 1640,
+
+ 71, 71, 1636, 1637, 1643, 71, 1645, 71, 1641, 1642,
+ 1646, 1649, 71, 1644, 71, 71, 1652, 71, 71, 1647,
+ 1653, 71, 1654, 1655, 1650, 1656, 1657, 71, 1658, 2630,
+ 1659, 1643, 71, 1645, 71, 1662, 1660, 1646, 1649, 1661,
+ 71, 71, 1663, 71, 71, 71, 1672, 71, 71, 1654,
+ 1655, 1664, 1656, 1657, 71, 1658, 1665, 1659, 71, 1666,
+ 1668, 71, 1662, 1660, 1669, 1670, 1661, 71, 71, 71,
+ 2630, 1671, 71, 1672, 71, 1667, 1673, 71, 1664, 71,
+ 1675, 1674, 71, 1665, 2630, 1677, 1666, 1668, 1676, 1679,
+ 1678, 1669, 1670, 1681, 1680, 1684, 1685, 71, 1671, 71,
+
+ 71, 71, 1667, 1673, 1686, 1687, 71, 71, 1674, 1690,
+ 1691, 71, 1677, 2630, 2630, 1676, 71, 1678, 1682, 1683,
+ 1681, 1680, 1694, 71, 1688, 71, 71, 71, 71, 1689,
+ 71, 1686, 1687, 1692, 1695, 1697, 71, 71, 1693, 1698,
+ 71, 1696, 71, 1699, 2630, 1682, 1683, 1703, 1701, 1700,
+ 71, 1688, 1705, 1702, 71, 71, 1689, 1715, 71, 1704,
+ 1712, 2630, 1697, 71, 71, 71, 71, 1706, 1696, 1708,
+ 1699, 71, 71, 1707, 1710, 1701, 1700, 71, 1711, 71,
+ 1702, 1709, 71, 1713, 71, 1714, 1704, 71, 71, 71,
+ 1716, 1717, 71, 1718, 1706, 1721, 1708, 1719, 71, 1720,
+
+ 1707, 1710, 1726, 71, 71, 1711, 1725, 2630, 1709, 1727,
+ 71, 71, 1714, 71, 71, 71, 1722, 1716, 1717, 71,
+ 1718, 71, 1721, 1723, 1719, 1724, 1720, 71, 71, 71,
+ 1730, 71, 1728, 1725, 1729, 1731, 1727, 1732, 71, 1733,
+ 71, 1734, 71, 1722, 1735, 1737, 2630, 1736, 71, 71,
+ 1723, 1746, 1724, 2630, 71, 71, 71, 71, 2630, 1728,
+ 1738, 1729, 1731, 1741, 1732, 1739, 1733, 71, 1734, 71,
+ 1742, 1735, 71, 71, 1736, 1743, 1740, 71, 71, 1744,
+ 1754, 1745, 2630, 1751, 1753, 1747, 1749, 1738, 71, 1748,
+ 1741, 71, 1739, 71, 71, 71, 71, 1742, 71, 1752,
+
+ 71, 1750, 1743, 1740, 1755, 71, 1744, 1754, 1745, 71,
+ 71, 1753, 1747, 1749, 71, 71, 1748, 1756, 1757, 1760,
+ 1758, 2630, 1759, 1761, 1762, 1763, 1752, 71, 1750, 71,
+ 1766, 71, 1765, 71, 2630, 1771, 71, 71, 71, 71,
+ 71, 1764, 71, 1770, 1756, 1757, 1760, 1758, 71, 1759,
+ 1761, 1762, 1763, 1767, 1769, 1772, 71, 1766, 71, 1765,
+ 1773, 71, 71, 1775, 71, 1774, 1768, 71, 1764, 1776,
+ 1770, 2630, 1777, 1778, 71, 1779, 71, 1781, 1786, 1780,
+ 1767, 1769, 1772, 1784, 71, 71, 2630, 1773, 1783, 71,
+ 1775, 1782, 1774, 1768, 71, 1788, 1776, 71, 71, 1777,
+
+ 1778, 71, 1779, 71, 1781, 71, 1780, 1785, 71, 71,
+ 1784, 1787, 71, 1790, 1789, 1783, 2630, 71, 1782, 1792,
+ 71, 1791, 1788, 1793, 1794, 1795, 1800, 2630, 71, 1804,
+ 71, 1796, 1797, 2630, 1785, 71, 1798, 2630, 1787, 71,
+ 1790, 1789, 1799, 71, 71, 71, 1792, 71, 1791, 1801,
+ 1793, 71, 1795, 71, 1802, 71, 71, 1803, 1796, 1797,
+ 1805, 71, 2630, 1798, 71, 1806, 71, 1809, 1810, 1799,
+ 1807, 2630, 1811, 2630, 1812, 71, 1801, 1816, 1808, 2630,
+ 1817, 1802, 71, 71, 1803, 1813, 71, 1805, 1814, 71,
+ 71, 1815, 1806, 1818, 71, 1810, 1819, 1807, 71, 1811,
+
+ 71, 1812, 71, 71, 1816, 1808, 71, 1817, 1822, 1820,
+ 1821, 1823, 1813, 1824, 71, 1814, 2630, 1828, 1815, 1825,
+ 71, 1831, 1826, 1819, 71, 71, 71, 71, 71, 1832,
+ 71, 71, 1827, 71, 1833, 1822, 1820, 1821, 1823, 1829,
+ 1824, 71, 1830, 71, 1828, 1840, 1825, 1834, 1831, 1826,
+ 1835, 71, 1837, 1842, 71, 71, 1832, 71, 1836, 1827,
+ 1839, 1833, 71, 1838, 71, 71, 1829, 1843, 1841, 1830,
+ 1844, 71, 71, 1849, 1834, 71, 1845, 1835, 71, 1837,
+ 71, 1850, 1846, 1847, 1851, 1836, 71, 1839, 1848, 1854,
+ 1838, 1852, 1853, 71, 1843, 1841, 71, 1844, 71, 71,
+
+ 1855, 1859, 1858, 1845, 1860, 71, 1861, 1863, 71, 1846,
+ 71, 1851, 2630, 71, 1856, 71, 71, 2630, 1852, 1853,
+ 71, 71, 1864, 1862, 1865, 1857, 71, 1855, 71, 1858,
+ 71, 1860, 71, 1861, 1866, 1867, 1868, 1870, 1869, 71,
+ 2630, 1856, 2630, 1874, 71, 71, 1871, 1872, 71, 1864,
+ 1862, 71, 1857, 1873, 1875, 71, 71, 71, 1878, 71,
+ 71, 1866, 1876, 1868, 1870, 1869, 1877, 71, 1879, 71,
+ 1874, 71, 1880, 1871, 1872, 1881, 71, 71, 1882, 71,
+ 1873, 1875, 1883, 1885, 71, 71, 1884, 2630, 1886, 1876,
+ 71, 71, 1887, 1877, 1888, 1879, 71, 71, 71, 1880,
+
+ 71, 1889, 1881, 1890, 71, 1882, 1891, 1892, 71, 1883,
+ 71, 71, 71, 1884, 1893, 1886, 1895, 1894, 1896, 1887,
+ 71, 1888, 71, 1897, 1901, 1898, 1899, 1902, 1889, 71,
+ 1890, 1900, 1904, 1891, 1892, 1903, 2630, 71, 71, 1905,
+ 71, 1893, 71, 71, 1894, 1896, 71, 71, 1908, 1909,
+ 1897, 71, 1898, 1899, 71, 1910, 1914, 71, 1900, 1904,
+ 1906, 1911, 1903, 1907, 1913, 71, 1905, 1912, 71, 1915,
+ 1917, 71, 1916, 1919, 71, 71, 1909, 71, 71, 71,
+ 71, 1920, 1910, 71, 1918, 1921, 1925, 1906, 1911, 1922,
+ 1907, 1913, 1924, 71, 1912, 1923, 71, 71, 1926, 1916,
+
+ 71, 1927, 71, 71, 2630, 1929, 71, 1930, 71, 1928,
+ 1933, 1918, 71, 71, 71, 1931, 1922, 1937, 71, 1924,
+ 1938, 1934, 1923, 1935, 1942, 1926, 71, 71, 71, 71,
+ 1932, 71, 1929, 1940, 1930, 71, 1928, 71, 1936, 1939,
+ 1941, 71, 1931, 71, 71, 71, 71, 1938, 1934, 1946,
+ 1935, 71, 1944, 1943, 1948, 1947, 1945, 1932, 1949, 1952,
+ 1940, 71, 71, 71, 71, 1936, 1939, 1941, 71, 1950,
+ 71, 71, 1951, 2630, 71, 1953, 71, 71, 1954, 1944,
+ 1943, 1948, 1947, 1945, 1955, 1949, 1952, 1956, 1957, 1958,
+ 71, 1959, 1964, 71, 2630, 1960, 1950, 71, 71, 1951,
+
+ 71, 1961, 1953, 71, 1962, 1954, 71, 1963, 1965, 71,
+ 1966, 1955, 71, 1967, 1956, 1957, 1958, 71, 1959, 71,
+ 1968, 1969, 1960, 71, 71, 1970, 71, 71, 1961, 1972,
+ 71, 1962, 1971, 1973, 1963, 1965, 1976, 1966, 71, 71,
+ 1967, 1974, 71, 71, 1975, 1978, 1977, 1968, 1969, 1979,
+ 71, 71, 1970, 1981, 71, 1982, 1972, 1980, 1983, 1971,
+ 71, 1985, 1986, 1976, 71, 71, 1988, 1984, 1974, 71,
+ 2630, 1975, 71, 1977, 71, 71, 1979, 71, 71, 1987,
+ 1981, 71, 1982, 1990, 1980, 1983, 1991, 1989, 71, 1986,
+ 1993, 1992, 1994, 1988, 1984, 71, 1995, 71, 71, 71,
+
+ 1996, 71, 1997, 1999, 1998, 2000, 1987, 2001, 2002, 2003,
+ 1990, 71, 71, 1991, 1989, 71, 2004, 1993, 1992, 1994,
+ 2006, 2009, 71, 1995, 2007, 71, 2005, 71, 71, 71,
+ 1999, 1998, 71, 71, 2008, 71, 2003, 71, 2010, 71,
+ 2011, 71, 71, 2004, 71, 2013, 2012, 2006, 2009, 2015,
+ 2630, 2007, 71, 2005, 2014, 2018, 71, 2016, 2017, 2019,
+ 71, 2008, 71, 2021, 71, 2010, 71, 71, 71, 2020,
+ 2025, 71, 2013, 2012, 2023, 2026, 2015, 71, 71, 2022,
+ 2035, 2014, 2018, 71, 2016, 2017, 2019, 2024, 2028, 2027,
+ 2029, 71, 71, 2030, 2031, 71, 2020, 2025, 71, 2033,
+
+ 71, 2023, 2037, 71, 2032, 71, 2022, 71, 71, 2034,
+ 2045, 2039, 71, 71, 2024, 2028, 2027, 2029, 71, 71,
+ 2030, 2031, 2036, 2038, 2040, 71, 2033, 2043, 2044, 71,
+ 2041, 2032, 71, 71, 2042, 2047, 2034, 71, 71, 2046,
+ 2048, 71, 71, 2051, 2052, 71, 71, 2049, 2054, 2036,
+ 2038, 2040, 71, 2630, 71, 71, 71, 2041, 71, 2053,
+ 2050, 2042, 2047, 2055, 2056, 71, 2046, 2048, 71, 71,
+ 2051, 71, 71, 2057, 2049, 2058, 71, 71, 2060, 2059,
+ 71, 2061, 2065, 71, 2630, 2062, 2053, 2050, 71, 2063,
+ 2055, 2056, 2064, 2067, 2068, 71, 2069, 2066, 2070, 2071,
+
+ 71, 2074, 2058, 2072, 71, 2060, 2059, 71, 71, 2065,
+ 71, 71, 2062, 2073, 2078, 71, 2063, 71, 71, 2064,
+ 2067, 71, 71, 71, 2066, 71, 71, 71, 2074, 2075,
+ 2072, 2076, 2077, 2079, 2080, 2081, 2083, 2082, 2084, 2630,
+ 2073, 71, 2086, 71, 2085, 71, 71, 2087, 2630, 71,
+ 71, 71, 2088, 2089, 71, 71, 2075, 71, 2076, 2077,
+ 71, 71, 2081, 2083, 2082, 2084, 71, 2091, 2090, 2086,
+ 71, 2085, 2093, 2092, 71, 71, 71, 2094, 2095, 2088,
+ 2089, 71, 2098, 2099, 2101, 71, 2096, 2630, 71, 2097,
+ 2103, 71, 2104, 2100, 2091, 2090, 71, 71, 71, 2093,
+
+ 2092, 71, 2102, 71, 2094, 2095, 2105, 2106, 71, 2098,
+ 2099, 2101, 71, 2096, 71, 71, 2097, 2103, 2107, 2104,
+ 2100, 2108, 2109, 2110, 2111, 2114, 2630, 2113, 2112, 2102,
+ 71, 71, 71, 71, 71, 71, 71, 2630, 2116, 71,
+ 2630, 2630, 2119, 2120, 71, 2107, 2115, 71, 2108, 2109,
+ 2110, 2111, 2114, 71, 2113, 2112, 71, 2117, 2118, 2121,
+ 2122, 2125, 2123, 2124, 71, 2116, 2126, 71, 71, 2119,
+ 71, 71, 71, 2115, 2127, 2630, 2133, 71, 71, 2131,
+ 2132, 71, 2128, 71, 2117, 2118, 2121, 71, 2125, 2123,
+ 2124, 71, 2129, 2126, 2130, 2134, 2137, 2136, 2135, 2630,
+
+ 2142, 2127, 71, 71, 71, 71, 71, 71, 71, 2128,
+ 71, 2141, 2140, 2138, 2630, 2144, 2143, 2146, 71, 2129,
+ 71, 2130, 2134, 2137, 2136, 2135, 2139, 71, 2630, 2145,
+ 2151, 2154, 2630, 71, 71, 71, 71, 71, 2141, 2140,
+ 2138, 71, 71, 2143, 2146, 2147, 2148, 2150, 2149, 2152,
+ 2153, 2156, 71, 2139, 71, 71, 2145, 71, 71, 71,
+ 2155, 71, 2157, 71, 2158, 2159, 2630, 2162, 2164, 2163,
+ 2166, 71, 2147, 2148, 2150, 2149, 2152, 2153, 2156, 71,
+ 2167, 2160, 2165, 71, 71, 71, 2161, 2155, 71, 2157,
+ 71, 71, 2159, 71, 71, 71, 2163, 71, 2168, 2630,
+
+ 2169, 2170, 71, 2171, 2172, 2173, 71, 2167, 2160, 2165,
+ 2174, 2175, 2177, 2161, 2630, 2630, 2176, 71, 71, 2630,
+ 2182, 2178, 71, 71, 2183, 71, 71, 2169, 2170, 71,
+ 2171, 2172, 2173, 71, 71, 2180, 2179, 2174, 2175, 2177,
+ 71, 2181, 71, 2176, 71, 2184, 71, 2182, 2178, 2185,
+ 2186, 2183, 2188, 71, 71, 2187, 2189, 71, 2190, 2191,
+ 2193, 2630, 2180, 2179, 2630, 71, 2192, 71, 2181, 2194,
+ 2195, 2196, 2184, 2197, 71, 71, 71, 71, 2199, 2188,
+ 2198, 71, 2187, 2189, 2200, 2190, 71, 2193, 71, 2201,
+ 2202, 71, 71, 2192, 71, 2204, 2194, 2195, 71, 2203,
+
+ 71, 2205, 71, 2206, 2207, 2199, 2208, 2198, 2630, 2630,
+ 2209, 2630, 71, 2210, 2212, 2630, 71, 2202, 71, 2211,
+ 2213, 71, 71, 2214, 71, 71, 2203, 71, 2205, 71,
+ 2206, 2207, 2219, 2208, 71, 71, 2217, 2209, 71, 2215,
+ 2210, 2212, 71, 2216, 2218, 71, 2211, 2213, 71, 2220,
+ 2214, 2224, 2221, 2228, 71, 2630, 2223, 71, 71, 2219,
+ 71, 2222, 71, 2217, 71, 2225, 2215, 71, 71, 2226,
+ 2216, 2218, 2227, 71, 2229, 2232, 2220, 2230, 71, 2221,
+ 71, 2234, 71, 2223, 71, 2233, 2231, 71, 2222, 71,
+ 2630, 2235, 2225, 71, 2236, 2238, 2226, 2237, 71, 2227,
+
+ 2239, 2229, 2232, 2242, 2230, 2243, 2240, 2244, 71, 71,
+ 71, 2245, 2246, 2231, 2241, 71, 71, 71, 2235, 71,
+ 2249, 2236, 2238, 71, 2237, 2250, 71, 2239, 2247, 71,
+ 2242, 2251, 71, 2240, 71, 71, 2248, 2252, 71, 71,
+ 2253, 2241, 2254, 71, 2255, 2256, 71, 2249, 2257, 71,
+ 2258, 2261, 71, 2259, 2262, 2247, 2630, 2630, 71, 2263,
+ 71, 71, 71, 2248, 2252, 2260, 2270, 2253, 2264, 71,
+ 71, 2255, 71, 2265, 2269, 2257, 2272, 71, 71, 2273,
+ 2259, 71, 71, 71, 2266, 2274, 2263, 2267, 71, 2268,
+ 2275, 2271, 2260, 71, 71, 71, 71, 2276, 71, 71,
+
+ 71, 2269, 2277, 2272, 71, 2630, 71, 71, 2278, 71,
+ 2630, 2266, 2274, 2282, 2267, 2281, 2268, 2275, 2271, 2285,
+ 2284, 71, 71, 2283, 2276, 2287, 2279, 2280, 2630, 2277,
+ 71, 2286, 71, 71, 2289, 2278, 71, 71, 2290, 71,
+ 2282, 2288, 2281, 2291, 71, 2292, 71, 2284, 2293, 71,
+ 2283, 2294, 2287, 2279, 2280, 2295, 2296, 71, 2286, 71,
+ 71, 2289, 71, 2297, 71, 2290, 2300, 2298, 2288, 71,
+ 2291, 71, 2292, 71, 71, 2293, 2301, 2299, 2294, 2302,
+ 2303, 71, 2295, 2296, 71, 2304, 2305, 2306, 71, 2308,
+ 2297, 2309, 2307, 71, 2298, 2630, 2312, 2310, 71, 2311,
+
+ 71, 2315, 2630, 2301, 2299, 71, 2302, 71, 71, 71,
+ 71, 2316, 2304, 71, 2306, 71, 2308, 71, 71, 2307,
+ 71, 2317, 2313, 2312, 2310, 2318, 2311, 2314, 2315, 71,
+ 2319, 2320, 2321, 71, 2322, 2323, 2330, 2630, 2316, 71,
+ 2325, 71, 2324, 71, 2331, 71, 2327, 2326, 71, 71,
+ 2328, 2332, 2318, 2329, 71, 2630, 2630, 2319, 2320, 2321,
+ 2336, 2322, 2323, 71, 71, 71, 71, 2325, 71, 2324,
+ 2333, 71, 2334, 2327, 2326, 2335, 71, 2328, 71, 71,
+ 2329, 2337, 71, 71, 2338, 2339, 2630, 2336, 71, 2340,
+ 2342, 2341, 2343, 2345, 2344, 2347, 71, 2333, 2630, 2334,
+
+ 71, 2348, 2335, 71, 2350, 2630, 71, 71, 2346, 71,
+ 71, 2338, 2339, 71, 71, 2349, 71, 2342, 2341, 2343,
+ 2351, 2344, 71, 2352, 2356, 71, 2353, 71, 2348, 2355,
+ 2354, 71, 71, 2357, 71, 2346, 2358, 71, 2359, 71,
+ 71, 2360, 2349, 2362, 2363, 2365, 2361, 2351, 71, 71,
+ 2352, 2356, 71, 2353, 71, 2364, 2355, 2354, 71, 2367,
+ 2357, 71, 2368, 2358, 2366, 2359, 2372, 2369, 71, 2371,
+ 71, 71, 71, 2361, 71, 71, 2370, 71, 2374, 2375,
+ 71, 71, 2364, 71, 2373, 2376, 2367, 2377, 2388, 71,
+ 2378, 2366, 71, 2372, 2369, 71, 2371, 71, 2381, 2383,
+
+ 2379, 2380, 2389, 2370, 2385, 2374, 71, 71, 71, 71,
+ 2384, 2373, 71, 71, 2377, 2382, 2387, 2378, 2386, 2630,
+ 71, 2391, 71, 71, 2390, 2381, 71, 2379, 2380, 71,
+ 71, 2385, 2392, 71, 71, 2393, 2394, 2384, 2395, 2396,
+ 2399, 71, 2382, 2387, 2630, 2386, 71, 2400, 71, 2402,
+ 2403, 2390, 2401, 71, 2397, 2398, 2404, 71, 71, 2392,
+ 71, 2630, 2393, 2394, 71, 2395, 2406, 71, 2407, 2408,
+ 2409, 71, 2405, 2411, 71, 2630, 71, 71, 71, 2401,
+ 2410, 2397, 2398, 2404, 2412, 71, 2413, 2415, 71, 2414,
+ 2416, 71, 71, 2406, 2417, 71, 71, 71, 2419, 2405,
+
+ 71, 71, 71, 71, 2418, 2420, 2421, 2410, 2423, 2424,
+ 2422, 2412, 2425, 2413, 71, 71, 2414, 2416, 2630, 2426,
+ 2630, 2417, 71, 71, 2630, 71, 2429, 71, 71, 2430,
+ 2431, 2418, 2420, 71, 2630, 2427, 2424, 2422, 2428, 71,
+ 71, 71, 71, 2443, 71, 71, 2426, 2432, 71, 2437,
+ 2433, 71, 2434, 2429, 2435, 2436, 2430, 2431, 71, 71,
+ 71, 71, 2427, 2441, 71, 2428, 71, 2440, 2438, 2439,
+ 71, 2444, 2446, 71, 2432, 2447, 2437, 2433, 71, 2434,
+ 2442, 2435, 2436, 2445, 2451, 71, 2450, 71, 2448, 2449,
+ 2441, 2452, 2453, 2454, 2440, 2438, 2439, 2459, 71, 71,
+
+ 71, 2455, 71, 2456, 2457, 71, 71, 2442, 2460, 71,
+ 2445, 71, 2461, 2450, 2458, 71, 71, 71, 2452, 2453,
+ 71, 71, 2462, 71, 2459, 2463, 71, 2467, 2455, 2464,
+ 2456, 2457, 2468, 2469, 71, 2460, 2470, 71, 71, 71,
+ 2465, 2458, 2471, 2466, 2472, 2476, 2473, 2475, 2630, 71,
+ 71, 71, 2463, 2474, 71, 71, 2464, 2477, 71, 71,
+ 2478, 2479, 2480, 2470, 2481, 71, 2482, 2465, 71, 2471,
+ 2466, 2472, 71, 2473, 2475, 71, 2483, 2485, 2484, 2488,
+ 2474, 2486, 71, 2487, 71, 2489, 2495, 71, 71, 71,
+ 71, 2481, 71, 71, 71, 71, 2490, 2491, 71, 2492,
+
+ 2493, 2496, 2630, 71, 2485, 2484, 71, 71, 2486, 71,
+ 2487, 2494, 2489, 2498, 71, 2497, 2503, 2501, 71, 2500,
+ 71, 71, 2499, 2490, 2491, 71, 2492, 2493, 2496, 2502,
+ 71, 71, 2506, 71, 2505, 71, 71, 71, 2494, 71,
+ 2498, 71, 2497, 2503, 2501, 2504, 2500, 71, 2507, 2499,
+ 2510, 2508, 71, 2512, 2509, 2513, 2502, 2511, 2517, 2506,
+ 2514, 2505, 71, 71, 71, 2515, 2516, 71, 71, 71,
+ 71, 2520, 2504, 71, 2522, 2507, 71, 2510, 2508, 71,
+ 2512, 2509, 2513, 71, 2511, 2517, 2519, 2514, 2518, 2521,
+ 2533, 2523, 2515, 2516, 2524, 71, 2525, 2526, 71, 71,
+
+ 2630, 71, 2527, 2528, 2529, 71, 2530, 71, 2531, 71,
+ 71, 2535, 2534, 2519, 2539, 2518, 2521, 71, 2523, 2543,
+ 2532, 71, 71, 71, 2526, 71, 71, 71, 71, 2527,
+ 2528, 2529, 71, 2530, 2536, 2531, 2537, 2538, 71, 2534,
+ 2540, 71, 71, 2541, 2542, 2544, 71, 2532, 71, 2547,
+ 2630, 71, 71, 2548, 2630, 2545, 2549, 71, 2546, 2630,
+ 71, 2536, 71, 2537, 2538, 2550, 71, 2540, 71, 71,
+ 2541, 2542, 71, 2552, 2551, 2554, 2547, 71, 2553, 2555,
+ 2548, 71, 2545, 2549, 2561, 2546, 71, 2557, 71, 71,
+ 2556, 2558, 2550, 71, 2559, 71, 2560, 2562, 71, 2563,
+
+ 2552, 2551, 2554, 71, 71, 2553, 2555, 2564, 2565, 71,
+ 2566, 71, 2568, 71, 2557, 2569, 2567, 2556, 2558, 71,
+ 71, 2559, 2570, 2560, 2562, 2571, 2574, 2572, 2573, 2577,
+ 71, 71, 71, 71, 2564, 2565, 71, 2566, 71, 2568,
+ 2575, 2630, 2580, 2567, 71, 2581, 71, 71, 71, 2570,
+ 71, 2576, 71, 2574, 2572, 2573, 2578, 2579, 2585, 71,
+ 2584, 71, 2582, 2587, 71, 2583, 71, 2575, 71, 2580,
+ 2588, 71, 71, 2586, 2590, 2630, 2589, 71, 2576, 2592,
+ 71, 71, 71, 2578, 2579, 2585, 2594, 2584, 71, 2582,
+ 2587, 2593, 2583, 2591, 71, 2595, 71, 2588, 71, 71,
+
+ 2586, 2590, 2596, 2589, 2599, 71, 2592, 2597, 2598, 2630,
+ 2600, 2601, 71, 2594, 2602, 2608, 71, 2605, 2593, 2603,
+ 2591, 71, 2595, 2604, 71, 71, 2606, 71, 2630, 2596,
+ 2630, 71, 71, 2630, 2597, 2598, 71, 2600, 2601, 71,
+ 2610, 71, 71, 71, 2605, 2614, 2603, 2607, 71, 2609,
+ 2604, 2611, 2612, 2606, 2615, 71, 2613, 71, 2616, 2619,
+ 71, 2617, 71, 2618, 71, 2621, 71, 2610, 2630, 71,
+ 2622, 71, 2614, 71, 2607, 2620, 2609, 2624, 2611, 2612,
+ 2623, 71, 2628, 2613, 2625, 2616, 71, 2629, 2617, 71,
+ 2618, 2630, 71, 2626, 2630, 71, 2630, 71, 2630, 71,
+
+ 71, 71, 2620, 2630, 2624, 2627, 71, 2623, 2630, 71,
+ 2630, 2625, 2630, 71, 71, 2630, 2630, 2630, 2630, 2630,
+ 2626, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2627, 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,
+ 2630, 74, 74, 74, 74, 140, 140, 2630, 2630, 2630,
+ 140, 140, 142, 142, 2630, 2630, 142, 2630, 142, 144,
+ 2630, 2630, 2630, 2630, 2630, 144, 147, 147, 2630, 2630,
+
+ 2630, 147, 147, 149, 2630, 2630, 2630, 2630, 2630, 149,
+ 151, 151, 2630, 151, 151, 151, 151, 75, 75, 2630,
+ 75, 75, 75, 75, 13, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630
} ;
-static yyconst flex_int16_t yy_chk[7501] =
+static yyconst flex_int16_t yy_chk[7592] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2128,10 +2148,10 @@ static yyconst flex_int16_t yy_chk[7501] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 3, 3, 3, 4,
4, 4, 5, 5, 6, 6, 5, 28, 6, 7,
- 7, 7, 7, 2604, 7, 8, 8, 8, 8, 28,
+ 7, 7, 7, 2636, 7, 8, 8, 8, 8, 28,
8, 9, 9, 9, 10, 10, 10, 15, 21, 24,
- 898, 15, 30, 3, 28, 149, 4, 47, 47, 5,
+ 906, 15, 30, 3, 28, 149, 4, 47, 47, 5,
19, 6, 19, 19, 30, 19, 72, 7, 147, 24,
72, 19, 24, 8, 21, 21, 24, 29, 9, 30,
25, 10, 11, 11, 11, 11, 11, 11, 12, 12,
@@ -2241,709 +2261,720 @@ static yyconst flex_int16_t yy_chk[7501] =
296, 300, 303, 302, 306, 307, 309, 297, 300, 297,
297, 301, 302, 305, 308, 310, 304, 307, 305, 308,
- 303, 309, 890, 310, 312, 300, 313, 311, 300, 303,
+ 303, 309, 898, 310, 312, 300, 313, 311, 300, 303,
306, 306, 307, 309, 311, 315, 312, 314, 316, 317,
320, 318, 310, 0, 314, 0, 0, 318, 319, 323,
- 319, 312, 890, 320, 311, 0, 0, 315, 313, 0,
+ 319, 312, 898, 320, 311, 345, 345, 315, 313, 0,
321, 317, 315, 318, 314, 322, 317, 320, 318, 324,
316, 325, 319, 321, 318, 319, 321, 319, 321, 325,
- 0, 323, 327, 322, 321, 325, 326, 321, 328, 327,
- 346, 324, 322, 476, 328, 329, 324, 346, 325, 326,
- 321, 330, 326, 321, 326, 321, 325, 329, 332, 327,
- 326, 335, 333, 326, 330, 328, 336, 346, 341, 338,
-
- 476, 339, 329, 335, 332, 333, 326, 339, 330, 326,
- 341, 326, 332, 349, 336, 332, 337, 349, 335, 333,
- 338, 337, 0, 336, 0, 341, 338, 340, 339, 342,
- 344, 332, 334, 334, 350, 340, 345, 345, 0, 347,
- 349, 350, 334, 343, 334, 334, 334, 342, 337, 334,
- 355, 343, 347, 353, 340, 348, 342, 334, 351, 334,
- 334, 350, 344, 345, 348, 351, 347, 352, 357, 334,
- 343, 334, 334, 334, 354, 353, 334, 356, 359, 352,
- 353, 361, 355, 357, 356, 351, 354, 348, 360, 358,
- 360, 348, 361, 364, 352, 357, 362, 363, 363, 0,
-
- 364, 354, 358, 365, 356, 0, 366, 368, 361, 367,
- 359, 371, 369, 0, 365, 360, 358, 366, 362, 372,
- 364, 0, 367, 362, 0, 370, 363, 377, 381, 0,
- 365, 372, 368, 366, 368, 369, 367, 371, 371, 369,
- 370, 374, 373, 375, 376, 377, 372, 380, 370, 379,
- 374, 378, 370, 373, 377, 376, 375, 376, 382, 383,
- 381, 385, 376, 388, 382, 380, 384, 370, 374, 373,
- 375, 376, 379, 378, 380, 387, 379, 388, 378, 392,
- 383, 389, 376, 385, 376, 382, 383, 386, 385, 384,
- 388, 390, 393, 384, 386, 391, 0, 397, 394, 396,
-
- 398, 387, 387, 389, 394, 390, 395, 398, 389, 401,
- 0, 392, 397, 402, 386, 393, 400, 396, 390, 393,
- 399, 391, 391, 403, 397, 394, 396, 398, 395, 399,
- 405, 400, 401, 395, 407, 404, 401, 410, 408, 402,
- 402, 404, 411, 400, 408, 403, 415, 399, 409, 411,
- 403, 412, 417, 415, 418, 410, 405, 405, 416, 419,
- 407, 407, 404, 421, 410, 408, 412, 409, 414, 411,
- 414, 416, 418, 415, 420, 409, 421, 414, 412, 422,
- 423, 418, 422, 425, 417, 416, 424, 427, 426, 0,
- 421, 419, 431, 424, 428, 414, 420, 414, 422, 429,
-
- 427, 420, 430, 432, 429, 433, 422, 425, 430, 422,
- 425, 426, 423, 424, 427, 431, 428, 433, 434, 431,
- 426, 428, 435, 436, 0, 432, 429, 438, 439, 430,
- 432, 436, 433, 435, 438, 440, 439, 441, 426, 0,
- 434, 442, 0, 0, 0, 434, 440, 0, 0, 435,
- 436, 437, 443, 442, 438, 439, 437, 445, 437, 441,
- 444, 446, 440, 465, 441, 449, 437, 445, 442, 437,
- 437, 444, 446, 448, 443, 447, 437, 437, 437, 443,
- 448, 451, 450, 437, 450, 437, 452, 444, 446, 445,
- 453, 449, 449, 437, 445, 465, 437, 437, 452, 447,
-
- 448, 457, 447, 437, 454, 453, 455, 451, 451, 450,
- 456, 458, 459, 452, 455, 456, 454, 453, 460, 461,
- 459, 464, 467, 457, 463, 0, 466, 468, 457, 458,
- 460, 454, 477, 455, 467, 468, 479, 456, 458, 459,
- 461, 466, 463, 469, 464, 460, 461, 470, 464, 467,
- 472, 463, 471, 466, 468, 473, 469, 475, 474, 470,
- 478, 471, 481, 480, 477, 0, 483, 484, 479, 473,
- 469, 491, 0, 472, 470, 478, 475, 472, 480, 471,
- 482, 0, 473, 474, 475, 474, 481, 478, 483, 481,
- 480, 484, 482, 483, 484, 485, 487, 486, 485, 488,
-
- 489, 487, 490, 491, 492, 493, 485, 482, 486, 494,
- 495, 496, 497, 488, 0, 498, 495, 500, 503, 499,
- 497, 500, 485, 508, 486, 485, 488, 489, 487, 490,
- 502, 492, 493, 496, 498, 504, 505, 495, 496, 497,
- 501, 494, 498, 499, 500, 505, 499, 506, 501, 507,
- 503, 509, 510, 502, 513, 508, 507, 502, 504, 511,
- 515, 512, 504, 505, 511, 510, 514, 501, 511, 506,
- 512, 517, 516, 509, 506, 514, 507, 518, 509, 510,
- 513, 513, 515, 511, 517, 519, 511, 515, 512, 518,
- 0, 511, 520, 514, 516, 511, 521, 0, 517, 516,
-
- 523, 0, 522, 525, 518, 528, 524, 526, 529, 527,
- 520, 533, 528, 0, 525, 0, 0, 519, 535, 520,
- 521, 526, 523, 521, 522, 522, 530, 523, 524, 522,
- 525, 527, 528, 524, 526, 529, 527, 531, 534, 532,
- 537, 538, 535, 533, 530, 535, 536, 539, 531, 540,
- 538, 522, 542, 530, 532, 541, 543, 549, 0, 534,
- 539, 546, 537, 544, 531, 534, 532, 537, 538, 554,
- 536, 545, 547, 536, 539, 546, 545, 541, 551, 550,
- 543, 540, 541, 543, 542, 544, 547, 550, 546, 549,
- 544, 552, 548, 548, 0, 555, 551, 553, 560, 547,
-
- 548, 554, 557, 545, 556, 551, 550, 557, 0, 558,
- 555, 0, 553, 552, 559, 562, 559, 0, 552, 548,
- 548, 553, 555, 560, 553, 560, 556, 0, 0, 561,
- 0, 556, 569, 782, 557, 558, 558, 561, 563, 553,
- 562, 559, 562, 564, 565, 568, 566, 563, 567, 570,
- 569, 571, 564, 565, 566, 567, 561, 574, 572, 569,
- 571, 570, 573, 575, 782, 563, 572, 0, 568, 574,
- 564, 565, 568, 566, 576, 567, 570, 573, 571, 577,
- 583, 578, 576, 579, 574, 572, 581, 577, 580, 573,
- 578, 582, 579, 585, 581, 575, 584, 580, 589, 586,
-
- 587, 576, 591, 583, 584, 615, 577, 583, 578, 585,
- 579, 587, 589, 581, 588, 580, 590, 582, 582, 592,
- 585, 586, 588, 584, 591, 589, 586, 587, 593, 591,
- 594, 595, 598, 596, 600, 0, 590, 615, 597, 592,
- 595, 588, 601, 590, 599, 598, 592, 603, 602, 600,
- 593, 606, 594, 596, 604, 593, 597, 594, 595, 598,
- 596, 600, 599, 606, 601, 597, 605, 604, 609, 601,
- 603, 599, 602, 607, 603, 602, 608, 611, 606, 610,
- 612, 604, 608, 614, 605, 616, 607, 610, 617, 621,
- 619, 614, 616, 605, 618, 609, 620, 648, 612, 619,
-
- 607, 0, 641, 608, 611, 610, 610, 612, 621, 618,
- 614, 617, 616, 622, 610, 617, 621, 619, 623, 624,
- 623, 618, 622, 627, 648, 633, 624, 0, 620, 630,
- 0, 636, 634, 638, 641, 627, 637, 0, 992, 630,
- 622, 0, 0, 633, 635, 623, 624, 625, 643, 638,
- 627, 625, 633, 634, 625, 639, 630, 636, 636, 634,
- 638, 625, 637, 637, 625, 640, 992, 635, 639, 625,
- 643, 635, 640, 644, 625, 643, 645, 0, 625, 644,
- 653, 625, 639, 2382, 2382, 645, 649, 646, 625, 646,
- 650, 625, 640, 642, 642, 0, 642, 651, 647, 642,
-
- 644, 652, 653, 645, 642, 654, 649, 653, 655, 651,
- 642, 642, 2382, 649, 646, 656, 650, 650, 657, 642,
- 642, 642, 647, 642, 651, 647, 642, 652, 652, 654,
- 655, 642, 654, 657, 659, 655, 658, 642, 642, 660,
- 656, 661, 656, 662, 658, 657, 660, 663, 664, 661,
- 666, 665, 667, 669, 668, 0, 673, 659, 674, 666,
- 664, 659, 662, 658, 665, 675, 660, 667, 661, 672,
- 662, 683, 676, 663, 663, 664, 668, 666, 665, 667,
- 669, 668, 670, 677, 678, 679, 680, 670, 673, 675,
- 674, 672, 675, 676, 679, 681, 672, 682, 683, 676,
-
- 684, 685, 677, 678, 686, 682, 693, 0, 680, 0,
- 677, 678, 679, 680, 670, 681, 689, 687, 684, 690,
- 685, 692, 681, 691, 682, 687, 0, 684, 685, 694,
- 693, 697, 0, 693, 689, 701, 686, 690, 701, 692,
- 695, 700, 698, 689, 687, 691, 690, 696, 692, 696,
- 691, 694, 699, 695, 698, 704, 694, 697, 697, 700,
- 699, 705, 701, 702, 706, 0, 709, 695, 700, 698,
- 706, 702, 707, 709, 696, 708, 710, 713, 712, 699,
- 704, 708, 704, 710, 711, 712, 714, 702, 705, 711,
- 702, 706, 715, 709, 707, 713, 717, 718, 702, 707,
-
- 716, 715, 708, 710, 713, 712, 722, 719, 716, 714,
- 721, 711, 718, 714, 717, 719, 720, 726, 723, 715,
- 729, 724, 726, 717, 718, 723, 731, 716, 724, 720,
- 732, 721, 725, 722, 719, 727, 728, 721, 733, 725,
- 730, 738, 727, 720, 726, 723, 733, 730, 724, 728,
- 735, 739, 729, 732, 736, 741, 734, 732, 731, 725,
- 736, 737, 727, 728, 734, 733, 742, 730, 744, 741,
- 740, 734, 735, 738, 746, 739, 747, 735, 739, 740,
- 745, 736, 741, 734, 750, 743, 749, 737, 737, 745,
- 748, 734, 743, 752, 751, 744, 746, 740, 742, 751,
-
- 752, 746, 748, 747, 753, 756, 754, 745, 756, 749,
- 750, 750, 743, 749, 754, 757, 759, 748, 760, 0,
- 752, 751, 764, 759, 760, 0, 753, 0, 757, 762,
- 763, 753, 756, 754, 764, 765, 768, 765, 766, 767,
- 0, 0, 757, 759, 0, 760, 761, 769, 761, 764,
- 0, 767, 761, 763, 761, 762, 762, 763, 768, 761,
- 769, 766, 765, 768, 761, 766, 767, 770, 773, 771,
- 761, 772, 770, 761, 769, 761, 776, 777, 774, 761,
- 773, 761, 771, 777, 775, 780, 761, 779, 774, 776,
- 783, 761, 781, 784, 772, 773, 771, 778, 772, 770,
-
- 774, 784, 791, 776, 777, 774, 775, 785, 779, 788,
- 778, 775, 787, 0, 779, 774, 785, 780, 790, 781,
- 784, 792, 783, 0, 778, 789, 800, 787, 791, 791,
- 793, 788, 0, 790, 785, 786, 788, 794, 789, 787,
- 786, 797, 786, 792, 804, 790, 801, 795, 792, 793,
- 794, 796, 789, 786, 786, 795, 798, 793, 800, 796,
- 786, 786, 786, 802, 794, 810, 805, 786, 797, 786,
- 801, 802, 803, 801, 795, 0, 804, 806, 796, 798,
- 786, 786, 807, 798, 808, 806, 803, 786, 805, 811,
- 802, 813, 809, 805, 814, 815, 817, 810, 812, 803,
-
- 807, 814, 808, 809, 806, 816, 812, 811, 815, 807,
- 818, 808, 816, 813, 817, 819, 811, 823, 813, 809,
- 832, 814, 815, 817, 821, 812, 824, 825, 818, 826,
- 823, 830, 816, 827, 824, 821, 825, 818, 831, 828,
- 829, 826, 0, 833, 823, 836, 0, 819, 835, 830,
- 836, 821, 832, 824, 825, 827, 826, 833, 830, 835,
- 827, 828, 829, 838, 831, 831, 828, 829, 837, 839,
- 833, 837, 840, 843, 841, 835, 844, 836, 842, 840,
- 846, 0, 839, 841, 845, 843, 847, 838, 0, 859,
- 838, 845, 842, 849, 837, 837, 839, 848, 837, 840,
-
- 843, 841, 0, 848, 850, 842, 851, 852, 844, 0,
- 847, 845, 846, 847, 853, 849, 857, 851, 856, 858,
- 849, 859, 854, 860, 848, 0, 850, 857, 863, 852,
- 861, 850, 868, 851, 852, 862, 853, 854, 864, 856,
- 858, 853, 867, 857, 862, 856, 858, 864, 861, 854,
- 860, 865, 863, 866, 869, 863, 867, 861, 0, 865,
- 866, 870, 862, 871, 868, 864, 873, 874, 875, 867,
- 877, 876, 0, 882, 883, 873, 878, 881, 865, 877,
- 866, 886, 884, 870, 0, 871, 869, 880, 870, 876,
- 871, 879, 881, 873, 884, 875, 880, 877, 876, 874,
-
- 878, 885, 887, 878, 881, 882, 883, 879, 886, 884,
- 887, 888, 889, 891, 880, 892, 897, 893, 879, 894,
- 0, 894, 891, 885, 888, 893, 896, 889, 885, 887,
- 902, 903, 899, 892, 896, 900, 901, 904, 888, 889,
- 891, 905, 892, 897, 893, 899, 894, 900, 905, 903,
- 906, 901, 902, 896, 907, 0, 908, 902, 903, 899,
- 909, 0, 900, 901, 904, 914, 910, 911, 905, 913,
- 916, 912, 919, 915, 0, 0, 959, 914, 908, 938,
- 911, 915, 906, 908, 912, 909, 907, 909, 910, 917,
- 916, 913, 914, 910, 911, 918, 913, 916, 912, 919,
-
- 915, 917, 920, 918, 921, 922, 938, 923, 959, 926,
- 929, 0, 0, 921, 923, 920, 917, 927, 928, 924,
- 933, 0, 918, 929, 930, 932, 922, 0, 924, 920,
- 924, 921, 922, 924, 923, 926, 926, 929, 928, 927,
- 931, 924, 933, 932, 927, 928, 924, 933, 930, 931,
- 934, 930, 932, 935, 936, 924, 939, 924, 934, 940,
- 924, 942, 936, 941, 943, 945, 940, 931, 0, 0,
- 0, 0, 0, 945, 946, 935, 948, 934, 939, 949,
- 935, 936, 943, 939, 942, 941, 940, 944, 942, 946,
- 941, 943, 945, 947, 949, 953, 948, 954, 951, 944,
-
- 950, 946, 952, 948, 951, 947, 949, 961, 950, 954,
- 955, 952, 956, 957, 944, 960, 953, 955, 964, 956,
- 947, 963, 953, 962, 954, 951, 961, 950, 960, 952,
- 962, 957, 969, 964, 961, 968, 965, 955, 966, 956,
- 957, 965, 960, 963, 967, 964, 966, 971, 963, 968,
- 962, 972, 973, 986, 0, 974, 0, 967, 969, 969,
- 0, 971, 968, 0, 0, 966, 975, 0, 965, 972,
- 977, 967, 970, 976, 971, 970, 970, 982, 972, 978,
- 970, 974, 974, 979, 973, 986, 970, 980, 975, 981,
- 970, 976, 977, 975, 970, 982, 981, 977, 983, 970,
-
- 976, 978, 970, 970, 982, 984, 978, 970, 987, 979,
- 979, 980, 985, 970, 980, 988, 981, 970, 984, 993,
- 983, 985, 989, 0, 995, 983, 991, 997, 999, 996,
- 0, 1014, 984, 999, 0, 993, 997, 988, 1000, 985,
- 987, 996, 988, 1000, 998, 989, 993, 995, 1001, 989,
- 990, 995, 991, 991, 997, 990, 996, 990, 1014, 990,
- 999, 990, 998, 1002, 1004, 1000, 1005, 1003, 990, 0,
- 1001, 998, 1004, 1006, 1005, 1001, 1002, 990, 1011, 1008,
- 1010, 1013, 990, 1007, 990, 1003, 990, 1011, 990, 1009,
- 1002, 1004, 1006, 1005, 1003, 1012, 1007, 1012, 1010, 1015,
-
- 1006, 1008, 1009, 1013, 1016, 1011, 1008, 1010, 1013, 1017,
- 1007, 1015, 0, 1019, 1022, 1021, 1009, 1020, 1023, 1024,
- 1028, 1025, 1012, 1021, 1026, 1023, 1015, 1027, 1029, 1033,
- 1026, 1016, 1031, 1027, 1017, 1029, 1017, 1019, 1030, 1020,
- 1019, 1022, 1021, 1025, 1020, 1023, 1024, 1028, 1025, 1034,
- 1035, 1026, 1036, 1033, 1027, 1029, 1033, 1031, 1037, 1031,
- 1030, 1038, 1040, 1039, 1041, 1030, 1044, 1042, 1045, 1035,
- 1046, 1034, 1039, 1047, 1036, 1048, 1034, 1035, 1056, 1036,
- 1037, 1042, 1051, 1040, 1041, 1037, 1057, 1038, 1038, 1040,
- 1039, 1041, 1046, 1048, 1042, 1049, 1050, 1046, 1044, 1052,
-
- 1045, 1054, 1048, 1049, 1058, 1047, 1052, 1055, 1054, 1051,
- 1056, 1055, 1050, 1060, 1061, 1063, 1064, 1062, 1057, 0,
- 1061, 0, 1049, 1050, 1062, 1058, 1052, 1061, 1054, 1064,
- 1063, 1058, 1066, 1067, 1055, 1070, 1068, 1065, 1068, 1069,
- 1067, 1061, 1063, 1064, 1062, 1060, 1065, 1061, 1069, 1071,
- 1072, 1073, 1078, 1075, 1072, 1079, 1077, 1070, 1066, 1066,
- 1067, 1075, 1070, 1068, 1065, 1076, 1069, 1083, 1079, 1080,
- 1076, 1078, 1081, 1073, 1077, 1081, 1071, 1072, 1073, 1078,
- 1075, 1080, 1079, 1077, 1081, 1082, 1085, 1084, 1082, 1087,
- 1086, 1117, 1083, 1088, 1083, 0, 1080, 1076, 0, 1081,
-
- 1084, 1088, 1081, 1089, 1089, 1087, 1091, 1082, 1095, 1118,
- 1090, 1098, 1082, 1086, 1084, 1082, 1087, 1086, 1085, 1090,
- 1088, 1095, 1092, 1117, 1097, 1093, 0, 1096, 1091, 1101,
- 1089, 1092, 1093, 1091, 1098, 1095, 1096, 1090, 1098, 1099,
- 1107, 1118, 0, 0, 1101, 1100, 1103, 1102, 1099, 1092,
- 1097, 1097, 1093, 1100, 1096, 1102, 1101, 1104, 1105, 1103,
- 1106, 1108, 1107, 1112, 1109, 1111, 1099, 1107, 1106, 1104,
- 1105, 1110, 1100, 1103, 1102, 1114, 0, 1119, 1116, 1122,
- 1110, 1108, 1113, 1111, 1104, 1105, 1109, 1106, 1108, 1112,
- 1112, 1109, 1111, 1115, 1113, 1120, 1114, 0, 1110, 1115,
-
- 1116, 1123, 1114, 1119, 1119, 1116, 1122, 1124, 1125, 1113,
- 1126, 1128, 0, 1129, 1127, 0, 0, 1125, 0, 0,
- 1115, 1120, 1120, 1126, 1123, 1124, 1127, 1131, 1123, 1130,
- 1132, 1128, 1133, 1142, 1124, 1125, 1130, 1126, 1128, 1129,
- 1129, 1127, 1134, 1135, 1136, 1133, 1131, 1138, 1135, 1136,
- 1134, 1137, 1132, 1139, 1131, 1138, 1130, 1132, 1137, 1133,
- 1140, 1139, 1145, 1141, 1144, 1142, 1143, 1143, 1140, 1134,
- 1141, 1146, 1144, 1147, 1138, 1135, 1136, 1148, 1137, 1154,
- 1139, 1147, 1151, 1145, 1149, 1148, 1150, 1140, 1155, 1145,
- 1141, 1144, 1149, 1143, 1150, 1151, 1152, 1157, 1153, 1156,
-
- 1147, 1161, 1152, 1146, 1148, 1154, 1154, 1158, 1159, 1151,
- 1153, 1149, 1155, 1150, 1156, 1155, 1160, 1165, 1162, 1161,
- 1167, 0, 0, 1152, 1157, 1153, 1156, 1167, 1161, 1158,
- 1160, 1159, 1162, 1163, 1158, 1159, 1166, 1163, 1168, 1165,
- 1169, 0, 1175, 1160, 1165, 1162, 1170, 1167, 1166, 1168,
- 1163, 1175, 1171, 1172, 1174, 1173, 1177, 1178, 1163, 1176,
- 1163, 1174, 1180, 1166, 1163, 1168, 1176, 1169, 1170, 1175,
- 1183, 1180, 1184, 1170, 1171, 1185, 1172, 1163, 1173, 1171,
- 1172, 1174, 1173, 1187, 1178, 1182, 1176, 1189, 1177, 1180,
- 1190, 1182, 1183, 1191, 1193, 0, 1194, 1183, 1184, 1184,
-
- 1195, 1190, 1196, 1198, 1191, 1197, 1195, 1185, 1200, 1199,
- 1187, 1199, 1182, 1201, 1189, 1198, 1202, 1190, 1193, 1204,
- 1191, 1193, 1194, 1194, 1196, 1203, 1201, 1195, 1205, 1196,
- 1198, 1197, 1197, 1207, 1200, 1200, 1199, 1203, 1202, 1208,
- 1201, 1206, 1209, 1202, 1208, 1211, 1204, 1210, 1206, 1212,
- 1214, 1205, 1203, 1211, 1215, 1205, 1217, 1217, 1209, 1207,
- 1207, 1220, 1216, 1215, 1217, 1218, 1208, 1224, 1206, 1209,
- 1210, 1212, 1211, 1221, 1210, 1216, 1212, 1214, 1218, 1222,
- 1219, 1215, 1219, 1217, 1217, 1224, 1222, 1220, 1220, 1216,
- 1223, 1225, 1218, 1228, 1224, 1221, 1226, 1223, 1229, 1227,
-
- 1221, 1230, 1231, 1226, 1234, 0, 1222, 1219, 1230, 1233,
- 0, 1235, 1236, 1225, 1239, 1228, 1240, 1223, 1225, 1235,
- 1228, 0, 1233, 1226, 1227, 1244, 1227, 1245, 1230, 1238,
- 1229, 1234, 1238, 1236, 1231, 1241, 1233, 1242, 1235, 1236,
- 1239, 1239, 1240, 1240, 1246, 1243, 1242, 1249, 1241, 1244,
- 0, 1247, 1244, 1245, 1245, 1250, 1238, 1243, 1247, 1246,
- 1248, 0, 1241, 1248, 1242, 1251, 1252, 1253, 0, 1253,
- 0, 1246, 1243, 1254, 1255, 1248, 1258, 1250, 1247, 1249,
- 0, 1256, 1250, 1251, 1248, 1257, 1260, 1248, 1252, 1263,
- 1248, 1259, 1251, 1252, 1253, 1260, 1261, 1254, 1258, 1264,
-
- 1254, 1266, 1248, 1258, 1261, 1259, 1255, 1256, 1256, 1262,
- 1265, 1257, 1257, 1260, 1269, 1267, 1262, 1268, 1259, 1267,
- 1271, 1263, 0, 1261, 1270, 1274, 1277, 1272, 1273, 1271,
- 1275, 1264, 1265, 1266, 1272, 1273, 1262, 1265, 1274, 1268,
- 1277, 1269, 1267, 1275, 1268, 1276, 1270, 1271, 1278, 1279,
- 1281, 1270, 1274, 1277, 1272, 1273, 1279, 1275, 1280, 1284,
- 1276, 1282, 1285, 1281, 1291, 1280, 1287, 1282, 1286, 1285,
- 1288, 1289, 1276, 1291, 0, 1290, 1279, 1281, 1290, 0,
- 1278, 1292, 1288, 1294, 1289, 1280, 1284, 1301, 1282, 1285,
- 1286, 1291, 1287, 1287, 1293, 1286, 1296, 1288, 1289, 1292,
-
- 1298, 1295, 1290, 1294, 1295, 1298, 1293, 1296, 1292, 1300,
- 1294, 1300, 1298, 1302, 1301, 1303, 1304, 1305, 1307, 1295,
- 1308, 1293, 1309, 1296, 1306, 1305, 1312, 1298, 1295, 1307,
- 1309, 1295, 1298, 1313, 1310, 1311, 1300, 1310, 1308, 1303,
- 1302, 1314, 1303, 1304, 1305, 1307, 1306, 1308, 1314, 1309,
- 1316, 1306, 1310, 1311, 1317, 1315, 1319, 1322, 1312, 1316,
- 1313, 1310, 1311, 1318, 1310, 1323, 1322, 1317, 1314, 1315,
- 1321, 1319, 1321, 1326, 1318, 1324, 1325, 1316, 0, 1327,
- 1329, 1317, 1315, 1319, 1322, 1335, 1324, 1338, 1337, 1329,
- 1318, 1323, 1323, 1327, 1325, 1326, 1328, 1321, 1330, 1328,
-
- 1326, 1331, 1324, 1325, 1330, 1327, 1327, 1329, 1332, 1334,
- 1331, 1339, 1336, 1332, 1328, 1337, 1340, 1335, 1345, 1338,
- 1327, 1336, 1334, 1328, 1341, 1330, 1328, 1343, 1331, 1344,
- 1346, 1347, 0, 1339, 1343, 1350, 1334, 1347, 1339, 1336,
- 1332, 1351, 1344, 1350, 1346, 1341, 1352, 1353, 1340, 1351,
- 1345, 1341, 1355, 1354, 1343, 1347, 1344, 1346, 1347, 1358,
- 1357, 1353, 1350, 1356, 1347, 1352, 1354, 1358, 1351, 1357,
- 1360, 1359, 1361, 1352, 1353, 0, 1364, 1356, 1366, 1362,
- 1354, 1374, 1365, 1361, 1355, 1359, 1358, 1357, 1362, 1365,
- 1356, 1367, 1368, 1369, 1370, 1373, 1371, 1385, 1359, 1361,
-
- 1371, 1366, 1360, 1364, 1378, 1366, 1362, 1373, 1374, 1365,
- 1376, 1389, 1370, 1367, 1368, 1369, 1375, 1379, 1367, 1368,
- 1369, 1370, 1373, 1371, 1375, 1376, 1377, 1380, 1383, 1385,
- 1379, 1378, 1384, 1381, 1377, 1382, 1383, 1376, 1389, 1384,
- 1387, 1386, 1388, 1375, 1379, 1391, 1390, 1380, 1381, 1387,
- 1382, 1395, 1393, 1377, 1380, 1383, 1386, 1394, 1397, 1384,
- 1381, 1396, 1382, 1388, 1399, 1398, 0, 1387, 1386, 1388,
- 1390, 1399, 1391, 1390, 1393, 1394, 1396, 1400, 1395, 1393,
- 1403, 1401, 1400, 1397, 1394, 1397, 1402, 1404, 1396, 1398,
- 1401, 1399, 1398, 1407, 1405, 1402, 1409, 1411, 1406, 1408,
-
- 1412, 0, 1403, 1409, 1400, 1404, 1410, 1403, 1401, 1405,
- 1406, 1414, 1408, 1402, 1404, 1407, 1413, 1408, 1410, 1414,
- 1407, 1405, 1413, 1409, 1411, 1406, 1408, 1415, 1416, 1426,
- 1417, 1418, 1412, 1410, 1415, 1419, 1421, 1420, 1414, 1408,
- 1422, 1423, 1424, 1413, 1420, 1429, 1422, 1423, 1425, 1427,
- 1431, 1430, 1434, 1416, 1415, 1416, 1417, 1417, 1418, 1433,
- 1430, 1426, 1419, 1421, 1420, 1435, 1436, 1422, 1423, 1424,
- 1432, 1425, 1432, 1427, 1438, 1425, 1427, 1429, 1430, 1434,
- 1440, 1438, 1431, 1433, 1445, 1443, 1433, 1437, 1437, 1437,
- 1443, 1435, 1435, 1439, 1437, 1444, 1441, 1432, 1436, 1448,
-
- 1439, 1438, 1437, 1441, 0, 1452, 1447, 1449, 1444, 1445,
- 1446, 1445, 1440, 1451, 1437, 1437, 1437, 1443, 1447, 1451,
- 1439, 1437, 1444, 1441, 1454, 1449, 1446, 1457, 1450, 1453,
- 1453, 1448, 1452, 1447, 1449, 1450, 1455, 1446, 1458, 1456,
- 1451, 1461, 1463, 1455, 1456, 1464, 1465, 1466, 1463, 1469,
- 1454, 1454, 1467, 1457, 1457, 1450, 1453, 0, 1465, 1461,
- 1468, 1468, 1473, 1455, 1474, 1458, 1456, 1466, 1461, 1463,
- 1467, 1471, 1464, 1465, 1466, 1469, 1469, 1470, 1470, 1467,
- 1476, 1475, 1471, 1477, 1473, 1478, 1479, 1468, 1475, 1473,
- 0, 1481, 1480, 1486, 1482, 1483, 1474, 1484, 1471, 1485,
-
- 1476, 1482, 1486, 1483, 1470, 1487, 1487, 1476, 1475, 1481,
- 1488, 1489, 1484, 1479, 1480, 1477, 0, 1478, 1481, 1480,
- 1486, 1482, 1483, 1485, 1484, 1492, 1485, 1490, 1491, 0,
- 1496, 1494, 1487, 1499, 1490, 1502, 1488, 1488, 1494, 1495,
- 1491, 1492, 1496, 1489, 1500, 1498, 1501, 1495, 1492, 1505,
- 1507, 1503, 1492, 1498, 1490, 1491, 1499, 1496, 1494, 1510,
- 1499, 1506, 1502, 1507, 1501, 1500, 1495, 1506, 1492, 1511,
- 1504, 1500, 1498, 1501, 1503, 1504, 1505, 1507, 1503, 1513,
- 1508, 1512, 1509, 1514, 1513, 1515, 1504, 1508, 1506, 1509,
- 1515, 1510, 1516, 1517, 0, 1513, 1511, 1504, 1520, 1518,
-
- 1518, 1519, 1504, 0, 1512, 1522, 1513, 1508, 1512, 1509,
- 1514, 1513, 1523, 1525, 1524, 1525, 1519, 1515, 1526, 1528,
- 1522, 1529, 1527, 0, 1516, 1517, 1518, 1527, 1519, 1524,
- 1520, 1531, 1522, 1533, 1532, 1523, 1529, 1536, 1535, 1523,
- 1525, 1524, 1532, 1537, 1538, 1539, 1531, 1540, 1529, 1527,
- 1526, 1528, 1539, 1541, 1542, 1533, 1543, 1544, 1531, 0,
- 1533, 1532, 1535, 1536, 1536, 1535, 1546, 1548, 1553, 1554,
- 1537, 1538, 1539, 0, 1541, 1544, 1542, 1543, 0, 1540,
- 1541, 1542, 1549, 1543, 1544, 1551, 1552, 1555, 1546, 1556,
- 1553, 1548, 1558, 1546, 1548, 1553, 1554, 1549, 1557, 1559,
-
- 1551, 1552, 1562, 1560, 1563, 1555, 1559, 1565, 1561, 1549,
- 1562, 1556, 1551, 1552, 1555, 1564, 1556, 1561, 1576, 1558,
- 1557, 1560, 1568, 1566, 0, 1557, 1559, 1563, 1570, 1562,
- 1560, 1563, 1569, 1568, 1571, 1561, 1566, 1564, 1572, 1565,
- 1573, 1569, 1564, 1583, 1581, 1576, 1570, 1578, 1568, 1568,
- 1566, 1579, 1571, 1572, 1573, 1570, 1581, 1582, 1578, 1569,
- 1568, 1571, 1579, 1584, 1586, 1572, 1585, 1573, 1587, 1588,
- 1582, 1581, 1591, 1584, 1578, 1583, 1592, 1590, 1579, 1591,
- 1593, 1594, 0, 0, 1582, 1595, 1596, 1594, 1588, 1586,
- 1584, 1586, 1585, 1585, 1597, 1587, 1588, 1590, 1593, 1591,
-
- 1595, 1596, 1592, 1592, 1590, 1598, 1598, 1593, 1594, 1597,
- 1599, 1602, 1595, 1596, 1600, 1603, 1604, 1605, 1602, 1613,
- 0, 1597, 1599, 1607, 1606, 1615, 1605, 1600, 1613, 1609,
- 1603, 1606, 1598, 1608, 0, 1600, 1609, 1599, 1602, 1611,
- 1612, 1600, 1603, 1604, 1605, 1615, 1613, 1607, 1614, 1618,
- 1607, 1606, 1615, 1617, 1600, 1608, 1609, 1621, 1624, 1620,
- 1608, 1611, 1622, 1622, 0, 1612, 1611, 1612, 1623, 1625,
- 1614, 1617, 1620, 1627, 1618, 1614, 1618, 1626, 1629, 1630,
- 1617, 1628, 1627, 1624, 1621, 1624, 1620, 1636, 1628, 1622,
- 1623, 1625, 1632, 1631, 1634, 1623, 1625, 1637, 1644, 1626,
-
- 1627, 1630, 1634, 1635, 1626, 1638, 1630, 1631, 1628, 1640,
- 1629, 1632, 1641, 1642, 1636, 1639, 1635, 1638, 1643, 1632,
- 1631, 1634, 1639, 1637, 1637, 1644, 1643, 1650, 1645, 1648,
- 1635, 1646, 1638, 1647, 1641, 1652, 1654, 1643, 1642, 1641,
- 1642, 1640, 1639, 1645, 1651, 1643, 1649, 1648, 1653, 1649,
- 1651, 1654, 1650, 1643, 1650, 1645, 1648, 1646, 1646, 1647,
- 1647, 1657, 1652, 1654, 1649, 1656, 1653, 1658, 1660, 1662,
- 1661, 1651, 1663, 1649, 1664, 1653, 1649, 1661, 1662, 0,
- 1656, 1663, 1660, 1657, 1667, 1664, 1668, 1666, 1657, 1658,
- 0, 1670, 1656, 1674, 1658, 1660, 1662, 1661, 1672, 1663,
-
- 0, 1664, 1666, 1673, 1670, 1674, 1667, 1673, 1668, 1676,
- 1677, 1667, 1670, 1668, 1666, 1675, 1678, 1675, 1670, 1672,
- 1674, 1679, 1681, 0, 1680, 1672, 1683, 1676, 1682, 1685,
- 1673, 1670, 1680, 1684, 1678, 1686, 1676, 1677, 1684, 1687,
- 1683, 1688, 1675, 1678, 1692, 1681, 1694, 1689, 1679, 1681,
- 1682, 1680, 1695, 1683, 1689, 1682, 1693, 0, 1696, 1699,
- 1688, 1685, 1697, 1687, 1694, 1684, 1687, 1686, 1688, 1698,
- 1693, 1692, 1700, 1694, 1689, 1701, 1702, 1697, 1698, 1695,
- 1703, 1693, 1693, 1693, 1696, 1696, 1705, 1707, 1706, 1697,
- 1709, 1699, 1709, 0, 1700, 1706, 1698, 1693, 1702, 1700,
-
- 1710, 1711, 1701, 1702, 1712, 1711, 1716, 1713, 1693, 1705,
- 1707, 1714, 1703, 1705, 1707, 1706, 1712, 1709, 1717, 1715,
- 1714, 1719, 1710, 1718, 1720, 1720, 1723, 1710, 1711, 1713,
- 1715, 1712, 1721, 1716, 1713, 1718, 1722, 0, 1714, 1725,
- 1721, 1717, 1814, 1719, 1726, 1717, 1715, 1725, 1719, 1730,
- 1718, 1720, 1726, 1723, 1728, 1730, 1727, 1728, 1722, 1721,
- 1727, 1729, 1731, 1722, 1732, 1735, 1725, 1734, 1737, 1729,
- 1732, 1726, 1736, 1738, 1814, 1740, 1730, 1731, 1741, 1734,
- 1742, 1728, 1737, 1727, 1739, 1743, 1738, 1745, 1729, 1731,
- 1744, 1732, 1735, 1747, 1734, 1737, 1736, 1743, 1739, 1736,
-
- 1738, 1740, 1740, 1746, 1744, 1741, 1746, 1742, 1751, 1748,
- 1750, 1739, 1743, 1745, 1745, 1751, 1752, 1744, 1754, 1753,
- 1747, 1746, 1755, 1752, 1757, 1759, 1760, 1761, 1765, 1758,
- 1746, 1748, 1750, 1746, 1753, 1751, 1748, 1750, 1758, 1756,
- 1761, 1764, 1762, 1752, 1767, 1754, 1753, 1756, 1770, 1755,
- 1762, 1757, 1759, 1760, 1761, 1765, 1758, 1766, 1768, 1769,
- 0, 1771, 1772, 1764, 0, 1766, 1756, 1768, 1764, 1762,
- 1773, 1767, 1770, 1775, 1776, 1770, 1771, 1782, 1773, 1774,
- 1769, 1775, 1780, 1778, 1766, 1768, 1769, 1771, 1771, 1772,
- 1778, 1774, 1779, 1781, 1780, 1787, 1779, 1773, 1789, 1783,
-
- 1775, 1776, 1784, 1771, 1782, 1785, 1774, 1783, 1788, 1780,
- 1778, 1790, 1791, 1791, 1784, 1788, 1781, 1785, 1789, 1779,
- 1781, 1792, 1787, 1793, 1790, 1789, 1783, 1794, 1796, 1784,
- 1800, 1797, 1785, 0, 1798, 1788, 0, 1802, 1790, 1791,
- 1799, 1793, 1799, 1796, 1800, 1801, 1803, 1792, 1792, 1804,
- 1793, 1801, 1794, 1797, 1794, 1796, 1798, 1800, 1797, 1802,
- 1806, 1798, 1805, 1807, 1802, 1807, 1808, 1799, 1803, 0,
- 1809, 1804, 1801, 1803, 1805, 1815, 1804, 1810, 1811, 1813,
- 1808, 1812, 1806, 1819, 1817, 1821, 1820, 1806, 1809, 1805,
- 1807, 1817, 1813, 1808, 0, 1810, 1811, 1809, 1815, 1812,
-
- 1827, 1819, 1815, 0, 1810, 1811, 1813, 1822, 1812, 1825,
- 1819, 1817, 1820, 1820, 1823, 1822, 1823, 1821, 1826, 1828,
- 1825, 1823, 1829, 1831, 1832, 1833, 1837, 1827, 0, 1826,
- 1836, 1828, 1834, 1822, 1822, 1832, 1825, 1833, 1831, 1840,
- 1829, 1823, 1822, 1823, 1845, 1826, 1828, 1834, 1837, 1829,
- 1831, 1832, 1833, 1837, 1836, 1838, 1839, 1836, 1842, 1834,
- 1843, 1846, 1838, 1847, 1844, 1848, 1840, 0, 1849, 1852,
- 0, 1839, 1853, 1850, 1855, 0, 1845, 1852, 1848, 1856,
- 1857, 1868, 1838, 1839, 1843, 1842, 1844, 1843, 1850, 1851,
- 1847, 1844, 1848, 1846, 1849, 1849, 1852, 1855, 1853, 1853,
-
- 1850, 1855, 1851, 1856, 1858, 1859, 1856, 1857, 1862, 1864,
- 1860, 1863, 1859, 1868, 1866, 1862, 1851, 1865, 1863, 1870,
- 1867, 1866, 1864, 1872, 1869, 1874, 1858, 1873, 1870, 1875,
- 1886, 1858, 1859, 1860, 1872, 1862, 1864, 1860, 1863, 1876,
- 1865, 1866, 1867, 1880, 1865, 1869, 1870, 1867, 1875, 1873,
- 1872, 1869, 1879, 1881, 1873, 1883, 1875, 1874, 1882, 1882,
- 1885, 1887, 1886, 1888, 1876, 1879, 1876, 1892, 1889, 1880,
- 1880, 1897, 1899, 1901, 1898, 1894, 1887, 1881, 1903, 1879,
- 1881, 1883, 1883, 1885, 1894, 1882, 1889, 1885, 1887, 1904,
- 1888, 1907, 1905, 1897, 1892, 1889, 1898, 1909, 1897, 1899,
-
- 1901, 1898, 1894, 1905, 1906, 1909, 1910, 1911, 1913, 1906,
- 1903, 1914, 1918, 1907, 1915, 1904, 1904, 1916, 1907, 1905,
- 1919, 1910, 1922, 1915, 1909, 1923, 1913, 1920, 1919, 1916,
- 1926, 1906, 0, 1910, 1911, 1913, 1920, 1924, 1925, 1918,
- 1927, 1915, 1930, 1914, 1916, 1928, 1929, 1919, 1922, 1922,
- 1931, 1932, 1923, 1927, 1920, 1926, 1933, 1926, 1928, 1924,
- 1925, 1934, 1935, 1999, 1924, 1925, 1936, 1927, 1929, 1930,
- 1937, 1935, 1928, 1929, 1939, 1938, 1934, 1931, 1932, 1940,
- 1941, 1946, 0, 1933, 1942, 1943, 1948, 0, 1934, 1935,
- 1938, 1945, 1936, 1936, 1944, 1999, 1937, 1937, 1945, 1942,
-
- 0, 1939, 1938, 1946, 1949, 1943, 1940, 1941, 1946, 1944,
- 1947, 1942, 1943, 1948, 1950, 1950, 1951, 1947, 1945, 1952,
- 1957, 1944, 1949, 1951, 1953, 1954, 1956, 1953, 1955, 1961,
- 1958, 1949, 1957, 1952, 1961, 1962, 1960, 1947, 1954, 1962,
- 1963, 1950, 1958, 1951, 1956, 1960, 1952, 1957, 1964, 1965,
- 1966, 1953, 1954, 1956, 1955, 1955, 1961, 1958, 1967, 1968,
- 1973, 1964, 1962, 1960, 1963, 1969, 1974, 1963, 1972, 1973,
- 1975, 1965, 1966, 1977, 1978, 1964, 1965, 1966, 1975, 1979,
- 1977, 1980, 1974, 1978, 1979, 1967, 1968, 1973, 1980, 1981,
- 1983, 1969, 1969, 1974, 1972, 1972, 1982, 1975, 1984, 1983,
-
- 1977, 1978, 1986, 1982, 1987, 1988, 1979, 1981, 1980, 1989,
- 1990, 1993, 1994, 1991, 1992, 1997, 1981, 1983, 1989, 1990,
- 1993, 1994, 1987, 1982, 1984, 1984, 1992, 1996, 1998, 1986,
- 0, 1987, 1988, 1991, 1995, 1996, 1989, 1990, 1993, 1994,
- 1991, 1992, 1997, 2000, 2001, 1995, 2003, 2006, 0, 2002,
- 2007, 2004, 2000, 2005, 1996, 1998, 2001, 2002, 2004, 2008,
- 2005, 1995, 2009, 2010, 2012, 2014, 0, 0, 2003, 2006,
- 2000, 2001, 2012, 2003, 2006, 2007, 2002, 2007, 2004, 2020,
- 2005, 2015, 2021, 2014, 2022, 2016, 2008, 2009, 2015, 2009,
- 2010, 2012, 2014, 2016, 2019, 2023, 2022, 2024, 2027, 2029,
-
- 2025, 2019, 2030, 2020, 2023, 2028, 2020, 2032, 2015, 2021,
- 2027, 2022, 2016, 2033, 2032, 2034, 2030, 2037, 2036, 2039,
- 2033, 2019, 2023, 2025, 2024, 2027, 2029, 2025, 2028, 2030,
- 2038, 2040, 2028, 2036, 2032, 2041, 0, 2046, 2038, 2055,
- 2033, 2048, 2034, 2047, 2037, 2036, 2039, 2049, 2047, 2050,
- 2054, 2056, 2055, 2040, 0, 2048, 2057, 2038, 2040, 2065,
- 2062, 2049, 2041, 2046, 2046, 2059, 2055, 2050, 2048, 2061,
- 2047, 2058, 2054, 2056, 2049, 2057, 2050, 2054, 2056, 2058,
- 2063, 2061, 2062, 2057, 2059, 2064, 2065, 2062, 2066, 2067,
- 2069, 2068, 2059, 2071, 2070, 0, 2061, 2064, 2058, 2069,
-
- 2072, 2075, 2063, 2070, 2073, 2076, 2077, 2063, 2074, 2067,
- 2080, 2085, 2064, 2068, 2081, 2066, 2067, 2069, 2068, 2086,
- 2074, 2070, 2072, 2075, 2080, 2071, 2083, 2072, 2075, 2082,
- 2073, 2073, 2076, 2077, 2082, 2074, 2084, 2080, 2081, 2088,
- 2087, 2081, 2086, 2085, 2089, 2090, 2086, 2091, 2083, 2094,
- 2092, 0, 0, 2083, 0, 0, 2089, 2088, 2084, 2096,
- 2097, 2082, 2087, 2084, 2090, 2092, 2088, 2087, 2102, 2091,
- 2098, 2089, 2090, 2094, 2091, 2099, 2094, 2092, 2100, 2098,
- 2101, 2096, 2097, 2103, 2106, 2109, 2096, 2097, 0, 2099,
- 2111, 2108, 2106, 2107, 2102, 2102, 2100, 2098, 2101, 2108,
-
- 2107, 2103, 2099, 2112, 2113, 2100, 2110, 2101, 2111, 2119,
- 2103, 2106, 2109, 2114, 2110, 2112, 2116, 2111, 2108, 2118,
- 2107, 2114, 2120, 2121, 0, 2122, 2118, 0, 2116, 2123,
- 2112, 2113, 2119, 2110, 2126, 2125, 2119, 2128, 0, 2132,
- 2114, 2133, 2129, 2116, 2122, 2130, 2118, 2134, 2126, 2136,
- 2121, 2123, 2122, 2125, 2120, 2129, 2123, 2130, 2138, 2144,
- 2128, 2126, 2125, 2140, 2128, 2132, 2132, 2143, 2133, 2129,
- 2140, 2142, 2130, 2145, 2134, 2146, 2136, 2147, 2142, 2148,
- 2149, 2151, 2152, 2150, 2153, 2138, 2144, 2154, 2155, 2156,
- 2140, 2152, 0, 2143, 2143, 2150, 2159, 2153, 2142, 2146,
-
- 2145, 2159, 2146, 2163, 2147, 2148, 2148, 2149, 2151, 2152,
- 2150, 2153, 2156, 2160, 2161, 2155, 2156, 2160, 2162, 2154,
- 2164, 2161, 2167, 2166, 2163, 2162, 2170, 2165, 2159, 2165,
- 2163, 2172, 2171, 2174, 0, 2174, 0, 2175, 0, 0,
- 2160, 2161, 2181, 2177, 0, 2162, 2166, 0, 2170, 2167,
- 2166, 2171, 2164, 2170, 2165, 2172, 2176, 2176, 2172, 2171,
- 2174, 2175, 2178, 2180, 2175, 2177, 2176, 2179, 2183, 2181,
- 2177, 2178, 2182, 2184, 2179, 2185, 2180, 2186, 0, 2187,
- 2182, 2184, 2188, 2176, 2176, 2189, 2191, 2183, 2190, 2178,
- 2180, 2192, 2192, 2191, 2179, 2183, 2189, 0, 2193, 2182,
-
- 2184, 2185, 2185, 2186, 2186, 2187, 2187, 2194, 2188, 2188,
- 2190, 2197, 2189, 2191, 2194, 2190, 2193, 2195, 2192, 2198,
- 2199, 2201, 2202, 2203, 2195, 2193, 2207, 2205, 2208, 2199,
- 2204, 2212, 0, 2209, 2194, 2207, 2212, 2219, 2197, 2211,
- 2210, 0, 2202, 2198, 2195, 2205, 2198, 2199, 2201, 2202,
- 2203, 2211, 2204, 2207, 2205, 2208, 2209, 2204, 2210, 2213,
- 2209, 2214, 2220, 2212, 2219, 2230, 2211, 2210, 2221, 2224,
- 2226, 2224, 2228, 2213, 2231, 2232, 2234, 2237, 2228, 2214,
- 2220, 2235, 2238, 2221, 2235, 2226, 2213, 2230, 2214, 2220,
- 2239, 2245, 2230, 2232, 2240, 2221, 2224, 2226, 2234, 2228,
-
- 2231, 2231, 2232, 2234, 2237, 2243, 2241, 2235, 2235, 2238,
- 2242, 2235, 2240, 2241, 2246, 2248, 2247, 2239, 2242, 2249,
- 2250, 2240, 2251, 2245, 2253, 2252, 2250, 2243, 2249, 0,
- 2255, 2257, 2243, 2241, 2252, 2259, 2246, 2242, 2247, 2257,
- 2260, 2246, 2248, 2247, 2251, 2261, 2249, 2250, 2254, 2251,
- 2254, 2258, 2252, 2262, 2260, 2263, 2253, 2255, 2257, 2261,
- 2264, 2265, 2259, 2258, 2266, 2268, 2268, 2260, 2267, 2265,
- 2269, 2264, 2261, 2263, 2272, 2254, 2262, 2270, 2258, 2273,
- 2262, 2277, 2263, 2266, 2281, 2270, 2284, 2264, 2265, 2278,
- 2267, 2266, 2268, 2275, 2284, 2267, 2279, 2269, 2282, 2275,
-
- 2278, 2272, 2286, 2283, 2270, 2282, 2273, 2283, 2277, 2287,
- 2289, 2281, 2290, 2284, 2291, 2289, 2278, 2292, 2279, 2293,
- 2275, 2297, 2287, 2279, 2294, 2282, 2293, 2295, 2286, 2286,
- 2283, 2296, 2294, 2298, 2303, 2292, 2287, 2289, 2296, 2290,
- 2299, 2291, 2295, 2304, 2292, 2305, 2293, 2306, 2297, 2303,
- 2304, 2294, 2307, 2308, 2295, 2309, 2311, 2298, 2296, 2312,
- 2298, 2303, 2314, 2313, 2309, 2316, 2299, 2299, 2318, 2321,
- 2304, 2313, 2319, 2322, 2306, 0, 2307, 2305, 2311, 2307,
- 2319, 2312, 2309, 2311, 2323, 2308, 2312, 2315, 2315, 2324,
- 2313, 2325, 2316, 2326, 2314, 2318, 2321, 2315, 2327, 2319,
-
- 2322, 2328, 2324, 2331, 2329, 2336, 2323, 2337, 2339, 2334,
- 2336, 2323, 2341, 2325, 2315, 2315, 2324, 2334, 2325, 2341,
- 2326, 2343, 2342, 2344, 2340, 2327, 2329, 2348, 2328, 2347,
- 2331, 2329, 2336, 2337, 2337, 2339, 2334, 2340, 2349, 2341,
- 2342, 2350, 2347, 2356, 2351, 2344, 2353, 2354, 2343, 2342,
- 2344, 2340, 2364, 2353, 2354, 2355, 2347, 2349, 2356, 2348,
- 2357, 2359, 2361, 2364, 2360, 2349, 2351, 2373, 2350, 2361,
- 2356, 2351, 2360, 2353, 2354, 2363, 2362, 2355, 2367, 2364,
- 2359, 2357, 2355, 2362, 2363, 2365, 2365, 2357, 2359, 2361,
- 2366, 2360, 2370, 2374, 2373, 2365, 2366, 2379, 2375, 2370,
-
- 2367, 2381, 2363, 2362, 2383, 2367, 2385, 2386, 2389, 2387,
- 2390, 0, 2365, 2365, 2392, 2391, 2386, 2366, 2396, 2370,
- 2374, 2375, 2387, 2394, 2379, 2375, 2392, 2383, 2381, 2395,
- 2390, 2383, 2394, 2385, 2386, 2389, 2387, 2390, 2391, 2397,
- 2398, 2392, 2391, 2399, 2396, 2396, 2400, 2395, 2402, 2405,
- 2394, 2401, 2403, 2402, 2401, 2399, 2395, 0, 2404, 2406,
- 2404, 2405, 2410, 2413, 2416, 2406, 2397, 2398, 2400, 2401,
- 2399, 2407, 2408, 2400, 2409, 2417, 2405, 2418, 2401, 2420,
- 2402, 2401, 2409, 2421, 2403, 2404, 2406, 2423, 2424, 2410,
- 2413, 2416, 2425, 2407, 2408, 2426, 2427, 2420, 2407, 2408,
-
- 2424, 2409, 2417, 2428, 2418, 2432, 2420, 2425, 2427, 2431,
- 2421, 2433, 2433, 2434, 2423, 2424, 2435, 2437, 2431, 2425,
- 2438, 2426, 2426, 2427, 2439, 2435, 2440, 2441, 0, 2432,
- 2428, 2449, 2432, 2442, 2443, 2441, 2431, 2439, 2433, 2434,
- 2434, 2437, 2442, 2435, 2437, 2443, 2452, 2453, 2440, 2454,
- 2452, 2439, 2438, 2440, 2441, 2449, 2454, 2460, 2449, 2455,
- 2442, 2443, 2457, 2458, 2463, 2459, 2457, 2462, 2461, 2464,
- 2453, 0, 2455, 2452, 2453, 2471, 2454, 2464, 2463, 2458,
- 2461, 2467, 2460, 2467, 2460, 2472, 2455, 2459, 2465, 2457,
- 2458, 2463, 2459, 2462, 2462, 2461, 2464, 2465, 2466, 2468,
-
- 2469, 2470, 2471, 2472, 2473, 0, 2474, 2469, 2467, 2466,
- 2475, 2468, 2472, 2476, 2470, 2465, 2477, 2479, 0, 2482,
- 2480, 2482, 2478, 2481, 2477, 2466, 2468, 2469, 2470, 2478,
- 2484, 2473, 2474, 2474, 2486, 0, 2483, 2475, 2485, 2498,
- 2476, 2479, 2480, 2477, 2479, 2481, 2482, 2480, 2483, 2478,
- 2481, 2485, 2487, 2494, 2489, 2491, 2499, 2495, 2496, 2497,
- 2487, 2486, 2484, 2483, 2491, 2485, 2489, 2497, 2502, 2506,
- 0, 2498, 2509, 0, 2500, 2501, 2502, 2496, 2505, 2487,
- 2494, 2489, 2491, 2495, 2495, 2496, 2497, 2500, 2499, 2501,
- 2504, 2505, 2506, 2508, 2509, 2502, 2506, 2504, 2510, 2509,
-
- 2508, 2500, 2501, 2513, 2511, 2505, 2510, 2512, 0, 2518,
- 2514, 2513, 2521, 2515, 2516, 2520, 2517, 2504, 2511, 2525,
- 2508, 2512, 2519, 2516, 2517, 2510, 2522, 2525, 2523, 2524,
- 2513, 2511, 2514, 2526, 2512, 2515, 2518, 2514, 2521, 2521,
- 2515, 2516, 2527, 2517, 2519, 2528, 2525, 2520, 2522, 2519,
- 2523, 2524, 2530, 2522, 2531, 2523, 2524, 2532, 2533, 2534,
- 2535, 2538, 2531, 2536, 2527, 2526, 2533, 2534, 2537, 2527,
- 2540, 2536, 2528, 2541, 2542, 2530, 2541, 2532, 2546, 2530,
- 0, 2531, 2537, 0, 2532, 2533, 2534, 2538, 2538, 2547,
- 2536, 2541, 2535, 2545, 2543, 2537, 2542, 2540, 2544, 2548,
-
- 2541, 2542, 2543, 2541, 2546, 2546, 2544, 2545, 2550, 2550,
- 2551, 2547, 2553, 2548, 2552, 2557, 2547, 2554, 2555, 2558,
- 2545, 2543, 2552, 2557, 2560, 2544, 2548, 2556, 2559, 2561,
- 0, 0, 2562, 2563, 2568, 2550, 2551, 2551, 2553, 2553,
- 2555, 2552, 2557, 2554, 2554, 2555, 2558, 2556, 2565, 2560,
- 2559, 2560, 2562, 2563, 2556, 2559, 2561, 2564, 2566, 2562,
- 2563, 2568, 0, 2569, 2571, 2564, 2566, 2572, 2573, 2574,
- 2565, 2569, 2575, 2577, 2578, 2565, 2573, 2574, 2580, 2579,
- 2581, 2584, 2578, 2582, 2564, 2566, 2571, 2579, 2585, 2572,
- 2569, 2571, 2586, 2594, 2572, 2573, 2574, 0, 2575, 2575,
-
- 2577, 2578, 2588, 2582, 2580, 2580, 2579, 2581, 2584, 2591,
- 2582, 2595, 2586, 2592, 2593, 2585, 0, 0, 0, 2586,
- 2594, 2592, 2593, 0, 2588, 0, 0, 0, 0, 2588,
- 0, 2591, 0, 0, 0, 0, 2591, 0, 2595, 0,
- 2592, 2593, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2600,
- 2600, 2600, 2600, 2600, 2600, 2600, 2601, 2601, 2601, 2601,
- 2601, 2601, 2601, 2602, 2602, 2602, 2602, 2602, 2602, 2602,
- 2603, 2603, 2603, 2603, 2603, 2603, 2603, 2605, 2605, 0,
- 2605, 2605, 2605, 2605, 2606, 2606, 0, 0, 0, 2606,
- 2606, 2607, 2607, 0, 0, 2607, 0, 2607, 2608, 0,
-
- 0, 0, 0, 0, 2608, 2609, 2609, 0, 0, 0,
- 2609, 2609, 2610, 0, 0, 0, 0, 0, 2610, 2611,
- 2611, 0, 2611, 2611, 2611, 2611, 2612, 2612, 0, 2612,
- 2612, 2612, 2612, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
- 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598
+ 788, 323, 345, 322, 321, 325, 327, 321, 328, 329,
+ 335, 324, 322, 327, 328, 0, 324, 330, 325, 333,
+ 321, 329, 335, 321, 332, 321, 325, 326, 347, 326,
+ 330, 788, 333, 327, 336, 328, 329, 335, 337, 338,
+
+ 332, 347, 326, 337, 330, 326, 333, 326, 332, 326,
+ 344, 332, 336, 326, 326, 347, 326, 339, 349, 341,
+ 338, 336, 349, 339, 0, 340, 338, 332, 346, 326,
+ 337, 341, 326, 340, 326, 346, 326, 334, 334, 342,
+ 343, 0, 344, 355, 339, 349, 341, 334, 343, 334,
+ 334, 334, 340, 350, 334, 346, 351, 342, 352, 348,
+ 350, 354, 334, 351, 334, 334, 342, 343, 348, 357,
+ 352, 353, 356, 354, 334, 355, 334, 334, 334, 356,
+ 350, 334, 362, 351, 357, 352, 359, 358, 354, 369,
+ 360, 348, 360, 353, 361, 348, 357, 365, 353, 356,
+
+ 358, 363, 363, 0, 362, 361, 364, 367, 365, 362,
+ 368, 366, 369, 364, 358, 371, 369, 360, 359, 372,
+ 367, 361, 366, 374, 365, 370, 377, 381, 373, 0,
+ 363, 372, 374, 364, 367, 368, 375, 368, 366, 373,
+ 370, 371, 371, 376, 377, 379, 372, 378, 370, 375,
+ 374, 385, 370, 377, 376, 373, 376, 380, 382, 381,
+ 0, 376, 392, 375, 382, 383, 384, 370, 379, 378,
+ 376, 387, 379, 385, 378, 380, 388, 389, 385, 391,
+ 386, 376, 390, 376, 380, 382, 383, 386, 393, 384,
+ 388, 395, 383, 384, 392, 394, 390, 387, 387, 389,
+
+ 402, 394, 396, 388, 389, 391, 391, 386, 397, 390,
+ 398, 393, 399, 395, 403, 393, 400, 398, 395, 401,
+ 396, 399, 394, 397, 404, 409, 402, 402, 405, 396,
+ 404, 400, 407, 412, 408, 397, 403, 398, 410, 399,
+ 408, 403, 401, 400, 409, 1000, 401, 417, 412, 418,
+ 411, 404, 409, 416, 405, 405, 410, 411, 407, 407,
+ 412, 408, 414, 415, 414, 410, 416, 418, 419, 421,
+ 415, 414, 420, 1000, 423, 427, 418, 411, 422, 417,
+ 416, 422, 421, 425, 0, 424, 426, 467, 427, 414,
+ 415, 414, 424, 428, 420, 430, 421, 422, 429, 420,
+
+ 419, 430, 427, 429, 431, 422, 423, 425, 422, 426,
+ 425, 432, 424, 434, 433, 428, 436, 435, 426, 467,
+ 428, 439, 430, 0, 436, 429, 433, 431, 435, 439,
+ 438, 431, 441, 432, 442, 434, 426, 438, 432, 443,
+ 434, 433, 440, 436, 435, 437, 444, 445, 439, 446,
+ 437, 443, 437, 440, 448, 441, 442, 438, 445, 441,
+ 437, 442, 449, 437, 437, 448, 443, 446, 444, 440,
+ 437, 437, 437, 444, 445, 447, 446, 437, 451, 437,
+ 0, 448, 452, 455, 452, 447, 449, 437, 450, 449,
+ 437, 437, 453, 457, 454, 450, 456, 437, 455, 460,
+
+ 459, 457, 462, 0, 451, 451, 454, 447, 456, 452,
+ 455, 458, 447, 463, 462, 450, 458, 460, 453, 453,
+ 457, 454, 459, 456, 461, 465, 460, 459, 470, 462,
+ 466, 468, 461, 469, 463, 471, 470, 472, 458, 478,
+ 463, 473, 474, 465, 477, 469, 468, 475, 471, 472,
+ 473, 461, 465, 466, 476, 470, 479, 466, 468, 481,
+ 469, 475, 471, 477, 472, 474, 478, 480, 473, 474,
+ 482, 477, 483, 485, 475, 484, 493, 486, 488, 476,
+ 496, 476, 480, 491, 492, 482, 494, 484, 479, 488,
+ 495, 481, 531, 489, 480, 485, 483, 482, 489, 483,
+
+ 485, 486, 484, 487, 486, 488, 487, 490, 493, 497,
+ 491, 492, 496, 494, 487, 497, 498, 495, 499, 531,
+ 500, 490, 501, 502, 503, 489, 499, 502, 505, 504,
+ 487, 506, 503, 487, 490, 507, 497, 508, 498, 500,
+ 510, 509, 512, 498, 507, 499, 501, 500, 509, 501,
+ 502, 503, 504, 511, 506, 512, 504, 515, 506, 508,
+ 505, 513, 507, 522, 508, 514, 513, 516, 509, 512,
+ 513, 521, 510, 517, 514, 511, 516, 518, 519, 0,
+ 511, 522, 523, 515, 515, 513, 520, 528, 513, 524,
+ 522, 519, 514, 513, 516, 517, 525, 513, 520, 518,
+
+ 517, 528, 526, 521, 518, 519, 523, 532, 527, 523,
+ 529, 524, 524, 520, 528, 530, 524, 533, 525, 527,
+ 535, 534, 530, 525, 526, 532, 536, 537, 533, 526,
+ 541, 538, 529, 542, 532, 527, 534, 529, 524, 539,
+ 540, 543, 530, 541, 533, 544, 545, 536, 534, 540,
+ 551, 537, 535, 536, 537, 538, 546, 541, 538, 547,
+ 548, 539, 549, 543, 547, 542, 539, 540, 543, 556,
+ 545, 550, 550, 545, 548, 553, 549, 544, 546, 550,
+ 552, 554, 551, 546, 558, 555, 0, 548, 552, 549,
+ 557, 547, 559, 553, 560, 0, 0, 559, 550, 550,
+
+ 555, 556, 553, 554, 562, 557, 558, 552, 554, 555,
+ 563, 558, 555, 561, 564, 561, 565, 557, 563, 566,
+ 560, 560, 568, 567, 559, 565, 569, 555, 566, 562,
+ 568, 562, 567, 569, 570, 572, 571, 563, 577, 564,
+ 561, 564, 573, 565, 574, 575, 566, 572, 578, 568,
+ 567, 573, 574, 569, 571, 576, 578, 570, 579, 581,
+ 575, 570, 572, 571, 580, 582, 579, 576, 581, 573,
+ 577, 574, 575, 584, 582, 578, 585, 0, 586, 583,
+ 0, 584, 576, 589, 587, 579, 581, 580, 583, 585,
+ 588, 580, 582, 590, 592, 593, 594, 591, 588, 589,
+
+ 584, 601, 592, 585, 586, 586, 583, 587, 591, 593,
+ 589, 587, 595, 596, 597, 590, 594, 588, 599, 601,
+ 590, 592, 593, 594, 591, 598, 600, 599, 601, 602,
+ 603, 606, 605, 596, 595, 604, 597, 607, 608, 595,
+ 596, 597, 602, 609, 613, 599, 600, 598, 603, 615,
+ 604, 608, 598, 600, 605, 606, 602, 603, 606, 605,
+ 607, 609, 604, 610, 607, 608, 611, 612, 619, 614,
+ 609, 613, 618, 612, 616, 610, 615, 614, 620, 611,
+ 618, 624, 622, 621, 625, 620, 0, 0, 0, 623,
+ 610, 645, 616, 611, 612, 614, 614, 622, 623, 618,
+
+ 619, 616, 637, 625, 614, 620, 621, 631, 626, 622,
+ 621, 625, 627, 624, 627, 628, 623, 626, 634, 631,
+ 637, 639, 628, 645, 642, 638, 0, 640, 634, 637,
+ 0, 0, 641, 0, 631, 626, 643, 651, 0, 627,
+ 642, 652, 628, 629, 639, 634, 638, 629, 639, 643,
+ 629, 642, 638, 640, 640, 644, 647, 629, 641, 641,
+ 629, 651, 644, 643, 651, 629, 648, 0, 652, 0,
+ 629, 649, 648, 650, 629, 650, 653, 629, 647, 677,
+ 649, 654, 644, 647, 629, 655, 658, 629, 646, 646,
+ 0, 646, 0, 648, 646, 657, 653, 655, 649, 646,
+
+ 650, 656, 659, 653, 661, 646, 646, 654, 654, 660,
+ 658, 677, 655, 658, 646, 646, 646, 657, 646, 661,
+ 663, 646, 657, 667, 659, 666, 646, 656, 656, 659,
+ 662, 661, 646, 646, 660, 664, 660, 665, 662, 668,
+ 669, 671, 664, 663, 666, 665, 670, 663, 672, 667,
+ 667, 668, 666, 669, 673, 670, 671, 662, 674, 678,
+ 676, 679, 664, 674, 665, 680, 668, 669, 671, 683,
+ 672, 686, 684, 670, 681, 672, 682, 685, 683, 686,
+ 687, 673, 676, 690, 688, 679, 680, 676, 679, 689,
+ 674, 678, 680, 681, 684, 682, 683, 685, 686, 684,
+
+ 693, 681, 688, 682, 685, 691, 694, 687, 689, 695,
+ 696, 688, 698, 691, 697, 690, 689, 699, 693, 700,
+ 0, 700, 701, 702, 694, 0, 709, 693, 696, 704,
+ 699, 695, 691, 694, 698, 702, 695, 696, 697, 698,
+ 708, 697, 705, 703, 699, 705, 700, 704, 701, 701,
+ 702, 703, 706, 709, 0, 710, 704, 712, 711, 713,
+ 706, 710, 0, 712, 714, 708, 713, 708, 715, 705,
+ 703, 714, 717, 715, 716, 718, 706, 0, 722, 706,
+ 711, 716, 710, 719, 712, 711, 713, 706, 720, 721,
+ 717, 714, 719, 722, 726, 715, 720, 725, 718, 717,
+
+ 723, 716, 718, 733, 724, 722, 727, 721, 723, 731,
+ 719, 728, 729, 727, 731, 720, 721, 724, 725, 729,
+ 738, 726, 735, 730, 725, 732, 737, 723, 734, 728,
+ 730, 724, 732, 727, 739, 733, 731, 736, 728, 729,
+ 741, 734, 739, 738, 736, 740, 745, 738, 743, 744,
+ 730, 742, 732, 740, 735, 734, 746, 742, 737, 748,
+ 740, 739, 741, 747, 736, 746, 750, 741, 753, 749,
+ 745, 755, 740, 745, 743, 743, 749, 747, 742, 751,
+ 740, 744, 752, 746, 756, 754, 759, 757, 751, 0,
+ 747, 748, 757, 750, 755, 753, 749, 754, 755, 762,
+
+ 758, 785, 762, 763, 752, 768, 751, 758, 759, 752,
+ 756, 756, 754, 759, 757, 760, 763, 765, 769, 766,
+ 0, 770, 785, 760, 765, 766, 762, 758, 785, 772,
+ 763, 768, 768, 770, 771, 774, 771, 775, 776, 773,
+ 0, 769, 760, 776, 765, 769, 766, 767, 770, 767,
+ 775, 773, 772, 767, 777, 767, 772, 774, 0, 0,
+ 767, 771, 774, 778, 775, 767, 773, 777, 0, 780,
+ 776, 767, 779, 781, 767, 782, 767, 783, 786, 780,
+ 767, 777, 767, 783, 779, 784, 778, 767, 782, 787,
+ 778, 780, 767, 789, 791, 781, 780, 790, 784, 779,
+
+ 781, 794, 782, 791, 783, 790, 780, 793, 0, 797,
+ 786, 806, 784, 0, 795, 796, 787, 0, 0, 799,
+ 0, 791, 793, 794, 790, 789, 792, 795, 794, 803,
+ 796, 792, 798, 792, 793, 797, 797, 800, 799, 801,
+ 802, 795, 796, 806, 792, 792, 799, 801, 802, 807,
+ 800, 792, 792, 792, 798, 808, 803, 804, 792, 798,
+ 792, 809, 810, 808, 800, 811, 801, 802, 813, 812,
+ 816, 792, 792, 807, 815, 809, 807, 812, 792, 814,
+ 804, 817, 808, 818, 804, 815, 813, 811, 809, 819,
+ 821, 818, 811, 820, 810, 813, 812, 814, 822, 817,
+
+ 820, 815, 816, 821, 823, 822, 814, 825, 817, 824,
+ 818, 819, 838, 827, 831, 829, 819, 821, 830, 836,
+ 820, 832, 823, 831, 827, 822, 830, 824, 829, 833,
+ 834, 823, 835, 832, 837, 839, 824, 836, 842, 825,
+ 827, 831, 829, 842, 838, 830, 836, 841, 832, 839,
+ 843, 833, 834, 843, 835, 844, 833, 834, 841, 835,
+ 837, 837, 839, 847, 846, 845, 850, 848, 851, 852,
+ 842, 846, 847, 849, 841, 851, 843, 843, 845, 844,
+ 843, 848, 844, 853, 855, 849, 856, 854, 857, 860,
+ 847, 846, 845, 854, 848, 851, 858, 859, 850, 857,
+
+ 849, 852, 865, 866, 860, 862, 855, 853, 856, 863,
+ 853, 855, 864, 856, 854, 857, 860, 867, 858, 859,
+ 863, 869, 868, 858, 859, 874, 862, 873, 870, 875,
+ 866, 868, 862, 864, 865, 867, 863, 870, 871, 864,
+ 872, 873, 876, 879, 867, 869, 871, 872, 869, 868,
+ 877, 880, 879, 881, 873, 870, 882, 874, 880, 884,
+ 885, 875, 883, 890, 876, 871, 886, 872, 884, 876,
+ 879, 891, 877, 888, 893, 887, 0, 877, 880, 889,
+ 883, 894, 888, 882, 885, 881, 884, 885, 0, 883,
+ 886, 887, 892, 886, 889, 890, 893, 895, 896, 897,
+
+ 888, 893, 887, 891, 892, 895, 889, 899, 894, 900,
+ 901, 896, 904, 902, 897, 902, 899, 905, 901, 892,
+ 904, 908, 907, 909, 895, 896, 897, 900, 911, 910,
+ 912, 914, 915, 908, 899, 907, 900, 901, 909, 904,
+ 902, 917, 0, 916, 905, 913, 911, 918, 908, 907,
+ 909, 910, 913, 921, 919, 911, 910, 912, 920, 924,
+ 927, 922, 0, 914, 915, 916, 917, 919, 917, 918,
+ 916, 920, 913, 922, 918, 921, 923, 925, 928, 924,
+ 921, 919, 926, 929, 923, 920, 924, 927, 922, 925,
+ 926, 928, 929, 930, 931, 0, 934, 932, 936, 937,
+
+ 967, 931, 0, 923, 925, 928, 932, 935, 932, 926,
+ 929, 932, 937, 938, 930, 0, 946, 941, 936, 932,
+ 930, 931, 934, 934, 932, 936, 937, 939, 940, 935,
+ 943, 947, 967, 932, 935, 932, 939, 938, 932, 941,
+ 938, 942, 944, 946, 941, 949, 940, 950, 951, 942,
+ 944, 0, 943, 947, 939, 940, 948, 943, 947, 952,
+ 956, 954, 0, 948, 957, 953, 951, 949, 942, 944,
+ 950, 952, 949, 953, 950, 951, 954, 955, 959, 957,
+ 956, 961, 958, 948, 959, 960, 952, 956, 954, 955,
+ 958, 957, 953, 963, 960, 962, 964, 965, 968, 969,
+
+ 963, 972, 961, 964, 955, 959, 970, 962, 961, 958,
+ 971, 968, 960, 970, 973, 965, 972, 975, 969, 973,
+ 963, 974, 962, 964, 965, 968, 969, 976, 972, 974,
+ 975, 977, 971, 970, 981, 0, 994, 971, 979, 0,
+ 0, 976, 980, 984, 975, 982, 973, 995, 974, 0,
+ 0, 0, 979, 983, 976, 0, 985, 977, 977, 978,
+ 980, 984, 978, 978, 0, 979, 981, 978, 994, 980,
+ 984, 982, 982, 978, 986, 983, 987, 978, 985, 995,
+ 983, 978, 988, 985, 988, 989, 978, 990, 991, 978,
+ 978, 996, 989, 997, 978, 992, 986, 999, 993, 0,
+
+ 978, 986, 987, 987, 978, 990, 988, 993, 992, 988,
+ 991, 988, 989, 996, 990, 991, 997, 0, 996, 1003,
+ 997, 1005, 992, 999, 999, 993, 998, 1001, 1004, 1006,
+ 1005, 998, 1011, 998, 1007, 998, 1008, 998, 1010, 1007,
+ 1004, 1008, 1003, 1001, 998, 1009, 1003, 1006, 1005, 1012,
+ 1011, 1010, 1014, 998, 1001, 1004, 1006, 1012, 998, 1011,
+ 998, 1013, 998, 1008, 998, 1010, 1007, 1009, 1015, 1013,
+ 1016, 1014, 1009, 1017, 1019, 1018, 1012, 1021, 1020, 1014,
+ 1020, 1015, 1022, 1019, 1023, 1024, 1017, 0, 1013, 1025,
+ 1030, 1027, 1016, 1018, 0, 1015, 1023, 1016, 1028, 1021,
+
+ 1017, 1019, 1018, 1031, 1021, 1020, 1032, 1033, 1036, 1022,
+ 1031, 1023, 1024, 1029, 1025, 1027, 1025, 1030, 1027, 1038,
+ 1028, 1029, 1034, 1040, 1037, 1028, 1035, 1039, 1034, 1033,
+ 1031, 1037, 1035, 1032, 1033, 1036, 1042, 1043, 1045, 1044,
+ 1029, 1038, 0, 1054, 1048, 1039, 1038, 1046, 1040, 1034,
+ 1040, 1037, 1050, 1035, 1039, 1047, 1051, 1045, 1049, 1043,
+ 1042, 1044, 1055, 1042, 1043, 1045, 1044, 1049, 1056, 1046,
+ 1048, 1048, 1052, 1050, 1046, 1054, 1051, 1047, 1057, 1050,
+ 1058, 1059, 1047, 1051, 1060, 1049, 1052, 1061, 1065, 1059,
+ 1056, 1068, 1065, 1066, 1055, 1056, 1062, 1064, 1058, 1052,
+
+ 1060, 1067, 1070, 1062, 1064, 1073, 0, 1058, 1059, 1072,
+ 1057, 1060, 1068, 1071, 1061, 1065, 1072, 1074, 1068, 1071,
+ 1073, 1076, 1075, 1062, 1064, 1066, 1071, 1078, 1077, 1078,
+ 1074, 1075, 1073, 1067, 1070, 1077, 1072, 1080, 1081, 1082,
+ 1071, 1079, 1088, 1082, 1074, 1083, 1071, 1076, 1076, 1075,
+ 1079, 1086, 1085, 1087, 1078, 1077, 1086, 1089, 0, 1080,
+ 1085, 1088, 1090, 1093, 1080, 1081, 1082, 1083, 1079, 1088,
+ 1089, 1087, 1083, 1091, 1090, 1092, 1091, 1095, 1092, 1085,
+ 1087, 1094, 0, 1086, 1089, 1091, 0, 1096, 1093, 1090,
+ 1093, 1097, 1127, 1098, 1094, 1099, 1099, 1092, 1105, 1101,
+
+ 1091, 1098, 1092, 1091, 1100, 1092, 1102, 1097, 1094, 1095,
+ 1096, 1105, 1103, 1100, 1096, 1102, 1107, 1108, 1097, 1103,
+ 1098, 1101, 1099, 1106, 1127, 1105, 1101, 1109, 1113, 1110,
+ 1111, 1100, 1106, 1102, 0, 1114, 1109, 1110, 1112, 1103,
+ 1108, 1113, 1107, 1107, 1108, 1111, 1112, 1114, 1115, 1117,
+ 1106, 1116, 1118, 0, 1109, 1113, 1110, 1111, 1119, 1116,
+ 1115, 1120, 1114, 1121, 0, 1112, 1122, 1125, 1124, 1126,
+ 1120, 1117, 1118, 1125, 1123, 1115, 1117, 1128, 1116, 1118,
+ 1119, 1121, 0, 0, 1129, 1119, 1123, 1130, 1120, 1124,
+ 1121, 1126, 1122, 1122, 1125, 1124, 1126, 1132, 1133, 1134,
+
+ 1138, 1123, 1136, 1135, 1137, 0, 1139, 0, 0, 1128,
+ 1129, 1129, 1135, 1130, 1130, 1136, 1137, 1134, 1141, 1142,
+ 1138, 1133, 0, 1143, 1132, 1133, 1134, 1138, 1140, 1136,
+ 1135, 1137, 1139, 1139, 1144, 1140, 1143, 1141, 1145, 1146,
+ 1147, 1142, 1144, 1145, 1146, 1141, 1142, 1147, 1148, 1149,
+ 1143, 1150, 1153, 1151, 1152, 1140, 1148, 1149, 1155, 1150,
+ 1151, 1144, 1156, 1152, 1154, 1154, 1155, 1147, 1157, 1158,
+ 1145, 1146, 1168, 0, 1159, 1148, 1149, 1158, 1150, 1160,
+ 1151, 1152, 1159, 1156, 1153, 1155, 1161, 1160, 1165, 1156,
+ 1162, 1154, 1163, 1164, 1161, 1167, 1158, 1166, 1163, 1168,
+
+ 1157, 1159, 1170, 1162, 1169, 1164, 1160, 0, 0, 1171,
+ 1167, 0, 1172, 1161, 1165, 1165, 1176, 1162, 1173, 1163,
+ 1164, 1166, 1167, 1171, 1166, 1170, 1169, 1178, 1177, 1170,
+ 1172, 1169, 1173, 1174, 1178, 1179, 1171, 1174, 1176, 1172,
+ 1177, 1180, 0, 1176, 1181, 1173, 1179, 1182, 0, 1183,
+ 1174, 1189, 1184, 1188, 1178, 1177, 1185, 0, 1174, 1193,
+ 1174, 1186, 1179, 1185, 1174, 1193, 1181, 1194, 1180, 1182,
+ 1186, 1181, 1183, 1187, 1182, 1184, 1183, 1174, 1189, 1184,
+ 1187, 1191, 1196, 1185, 1195, 1188, 1193, 0, 1186, 1194,
+ 1191, 1198, 1200, 1201, 1194, 1202, 1207, 1204, 0, 1205,
+
+ 1187, 1206, 1207, 1209, 1201, 1208, 1202, 1210, 1191, 1213,
+ 1195, 1195, 1217, 1206, 1196, 1212, 1210, 1212, 1198, 1200,
+ 1201, 1204, 1202, 1207, 1204, 1205, 1205, 1208, 1206, 1209,
+ 1209, 1211, 1208, 1214, 1210, 1213, 1213, 1215, 1216, 1217,
+ 1218, 1219, 1212, 1211, 1220, 1222, 1214, 1221, 1219, 0,
+ 1216, 1225, 1221, 1223, 1224, 1227, 1229, 1228, 1211, 1215,
+ 1214, 1222, 1224, 1218, 1215, 1216, 1228, 1218, 1219, 1229,
+ 1220, 1220, 1222, 1225, 1221, 1231, 1223, 1232, 1225, 1232,
+ 1223, 1224, 1227, 1229, 1228, 1230, 1230, 1234, 1231, 1233,
+ 1235, 1236, 1237, 1230, 0, 1240, 1239, 1235, 1236, 1238,
+
+ 0, 1242, 1231, 1239, 1232, 1241, 1244, 1247, 1251, 1234,
+ 1237, 1251, 1230, 1230, 1234, 1233, 1233, 1235, 1236, 1237,
+ 1240, 1238, 1240, 1239, 1243, 1249, 1238, 1241, 1246, 1248,
+ 1254, 1243, 1241, 1242, 1247, 1251, 1252, 1248, 1244, 1253,
+ 1255, 1246, 1256, 1254, 1257, 1259, 1249, 1258, 1262, 1255,
+ 0, 1243, 1249, 0, 1256, 1246, 1248, 1254, 1268, 1263,
+ 1259, 1261, 1252, 1252, 1261, 1253, 1253, 1255, 1257, 1256,
+ 1260, 1257, 1259, 1258, 1258, 1264, 1261, 1260, 1265, 1271,
+ 1262, 1263, 1266, 1267, 1266, 1261, 1263, 1269, 1261, 1270,
+ 1268, 1261, 0, 1264, 1272, 1273, 1276, 1260, 1277, 1279,
+
+ 1265, 1271, 1264, 1261, 1273, 1265, 1271, 1267, 1272, 1266,
+ 1267, 1274, 1278, 1269, 1269, 1270, 1270, 1275, 1281, 1274,
+ 1282, 1272, 1273, 1280, 1275, 1291, 1283, 1280, 1276, 1285,
+ 1277, 1279, 1284, 1287, 1278, 1286, 1285, 0, 1274, 1278,
+ 1281, 1284, 1286, 1289, 1275, 1281, 1287, 1282, 1283, 1290,
+ 1280, 1288, 1297, 1283, 1292, 1294, 1285, 1291, 1289, 1284,
+ 1287, 1292, 1286, 1290, 1288, 1293, 1299, 1295, 1294, 1300,
+ 1289, 1301, 1293, 1295, 1302, 0, 1290, 1298, 1288, 1297,
+ 1307, 1292, 1294, 1301, 1298, 1305, 1303, 1302, 1299, 1303,
+ 1304, 0, 1293, 1299, 1295, 1300, 1300, 1306, 1301, 1304,
+
+ 1307, 1302, 1308, 1305, 1298, 1308, 1311, 1307, 1309, 1306,
+ 1314, 1311, 1305, 1303, 1313, 1315, 1313, 1304, 1311, 1309,
+ 1308, 1316, 1317, 1319, 1306, 1318, 1322, 1326, 1325, 1308,
+ 0, 1319, 1308, 1311, 1320, 1309, 1321, 1314, 1311, 1318,
+ 1327, 1313, 1315, 1323, 1322, 1316, 1325, 1321, 1316, 1317,
+ 1319, 1323, 1318, 1322, 1324, 1325, 1320, 1324, 1328, 1326,
+ 1329, 1320, 1330, 1321, 1331, 1328, 1336, 1327, 1332, 0,
+ 1323, 1330, 1324, 1333, 1329, 1336, 1335, 1331, 1335, 1332,
+ 1337, 1324, 1341, 1338, 1324, 1328, 1339, 1329, 1333, 1330,
+ 1340, 1331, 0, 1336, 1338, 1332, 1341, 0, 1342, 1344,
+
+ 1333, 1342, 1343, 1335, 1339, 1344, 1337, 1337, 1341, 1341,
+ 1338, 1343, 1340, 1339, 1346, 1345, 1342, 1340, 1348, 1346,
+ 1349, 1350, 1351, 1341, 1345, 1342, 1344, 1352, 1342, 1343,
+ 1350, 1348, 1354, 1353, 1357, 1355, 1359, 0, 1358, 1360,
+ 1370, 1357, 1345, 0, 1376, 1348, 1346, 1372, 1350, 1351,
+ 1364, 1358, 1349, 1360, 1372, 1353, 1355, 1361, 1364, 1352,
+ 1353, 1357, 1355, 1361, 1354, 1358, 1360, 1365, 1359, 1366,
+ 1368, 1367, 1370, 1369, 1372, 1365, 1376, 1364, 1371, 1374,
+ 1373, 1361, 0, 1368, 1361, 1367, 1369, 1374, 1366, 1373,
+ 1361, 1377, 1371, 1380, 1365, 1375, 1366, 1368, 1367, 1378,
+
+ 1369, 1382, 1377, 1381, 1389, 1371, 1374, 1373, 1378, 1375,
+ 1381, 1383, 1384, 1385, 1386, 1387, 1389, 1390, 1377, 1387,
+ 1380, 1391, 1375, 1394, 1382, 0, 1378, 1396, 1382, 1391,
+ 1381, 1389, 1386, 1383, 1384, 1385, 1392, 1393, 1383, 1384,
+ 1385, 1386, 1387, 1395, 1390, 1393, 1397, 1396, 1391, 1399,
+ 1394, 1392, 1398, 1400, 1396, 1401, 1395, 1399, 1405, 1402,
+ 1400, 1397, 1403, 1392, 1393, 0, 1407, 1398, 1406, 1404,
+ 1395, 1403, 1409, 1397, 1402, 1411, 1399, 1414, 1413, 1398,
+ 1400, 1415, 1410, 1412, 0, 1405, 1402, 1401, 1415, 1403,
+ 1404, 1419, 1406, 1407, 1409, 1406, 1404, 1420, 1412, 1409,
+
+ 1410, 1414, 1411, 1413, 1414, 1413, 1416, 1417, 1415, 1410,
+ 1412, 1416, 1418, 1419, 1421, 1420, 1417, 1424, 1419, 1422,
+ 1423, 1418, 1427, 1428, 1420, 1425, 1426, 1434, 0, 1421,
+ 1424, 1422, 1425, 1416, 1417, 1424, 1432, 1429, 1426, 1418,
+ 1430, 1421, 1423, 1429, 1424, 1433, 1422, 1423, 1430, 1427,
+ 1435, 1431, 1425, 1426, 1434, 1428, 1437, 1424, 1431, 1436,
+ 1440, 1432, 1438, 1432, 1429, 1441, 1436, 1430, 1438, 1439,
+ 1442, 1433, 1433, 1443, 1445, 1439, 1446, 1435, 1431, 1447,
+ 1448, 1449, 1448, 1437, 1452, 1446, 1436, 1440, 1441, 1438,
+ 1450, 1454, 1441, 1451, 1456, 0, 1439, 1443, 1454, 0,
+
+ 1443, 1464, 1442, 1446, 0, 1449, 1445, 1448, 1449, 1459,
+ 1461, 1447, 0, 0, 1459, 0, 1452, 1450, 1454, 1451,
+ 1451, 1453, 1453, 1453, 1455, 1457, 1456, 1460, 1453, 1462,
+ 1463, 1455, 1457, 1464, 0, 1461, 1453, 1461, 1467, 1466,
+ 1460, 1459, 1463, 1465, 1467, 1462, 1466, 1468, 1453, 1453,
+ 1453, 1455, 1457, 1470, 1460, 1453, 1462, 1463, 1469, 1469,
+ 1471, 1465, 1473, 1472, 1474, 1467, 1466, 1471, 1472, 1481,
+ 1465, 1480, 1482, 0, 1468, 1477, 1479, 1480, 0, 1470,
+ 1470, 1483, 1484, 1491, 1482, 1469, 1486, 1471, 1473, 1473,
+ 1472, 1474, 1490, 1477, 1479, 1494, 1481, 1493, 1480, 1482,
+
+ 1484, 1483, 1477, 1479, 1485, 1485, 1487, 1487, 1483, 1484,
+ 1488, 1492, 1486, 1486, 1490, 1491, 1495, 1493, 1492, 1490,
+ 1496, 1488, 1497, 1498, 1493, 1499, 1500, 1494, 1501, 0,
+ 1502, 1485, 1499, 1487, 1500, 1505, 1503, 1488, 1492, 1504,
+ 1504, 1498, 1506, 1501, 1497, 1503, 1516, 1496, 1495, 1497,
+ 1498, 1507, 1499, 1500, 1502, 1501, 1508, 1502, 1507, 1509,
+ 1511, 1505, 1505, 1503, 1512, 1513, 1504, 1511, 1508, 1516,
+ 0, 1515, 1512, 1516, 1506, 1509, 1517, 1513, 1507, 1515,
+ 1519, 1518, 1509, 1508, 0, 1521, 1509, 1511, 1520, 1522,
+ 1521, 1512, 1513, 1524, 1523, 1527, 1528, 1517, 1515, 1518,
+
+ 1523, 1521, 1509, 1517, 1529, 1530, 1524, 1519, 1518, 1532,
+ 1533, 1520, 1521, 0, 0, 1520, 1522, 1521, 1525, 1526,
+ 1524, 1523, 1535, 1528, 1531, 1525, 1526, 1527, 1530, 1531,
+ 1529, 1529, 1530, 1534, 1536, 1538, 1532, 1533, 1534, 1539,
+ 1531, 1537, 1537, 1541, 0, 1525, 1526, 1545, 1543, 1542,
+ 1538, 1531, 1547, 1544, 1535, 1544, 1531, 1559, 1541, 1546,
+ 1556, 0, 1538, 1543, 1546, 1534, 1536, 1548, 1537, 1551,
+ 1541, 1539, 1542, 1550, 1554, 1543, 1542, 1551, 1555, 1545,
+ 1544, 1552, 1548, 1557, 1547, 1558, 1546, 1556, 1550, 1559,
+ 1560, 1561, 1558, 1562, 1548, 1567, 1551, 1563, 1554, 1565,
+
+ 1550, 1554, 1573, 1552, 1555, 1555, 1572, 0, 1552, 1574,
+ 1557, 1560, 1558, 1561, 1562, 1563, 1568, 1560, 1561, 1567,
+ 1562, 1565, 1567, 1570, 1563, 1571, 1565, 1574, 1572, 1573,
+ 1577, 1568, 1575, 1572, 1576, 1578, 1574, 1579, 1570, 1580,
+ 1571, 1581, 1578, 1568, 1582, 1584, 0, 1583, 1580, 1581,
+ 1570, 1595, 1571, 0, 1575, 1579, 1576, 1577, 0, 1575,
+ 1585, 1576, 1578, 1588, 1579, 1587, 1580, 1582, 1581, 1583,
+ 1589, 1582, 1588, 1585, 1583, 1590, 1587, 1584, 1595, 1591,
+ 1605, 1592, 0, 1602, 1604, 1597, 1600, 1585, 1589, 1598,
+ 1588, 1587, 1587, 1590, 1591, 1592, 1597, 1589, 1600, 1603,
+
+ 1598, 1601, 1590, 1587, 1606, 1605, 1591, 1605, 1592, 1603,
+ 1604, 1604, 1597, 1600, 1601, 1602, 1598, 1607, 1609, 1612,
+ 1610, 0, 1611, 1613, 1614, 1615, 1603, 1610, 1601, 1613,
+ 1618, 1606, 1617, 1617, 0, 1623, 1607, 1612, 1609, 1614,
+ 1615, 1616, 1618, 1622, 1607, 1609, 1612, 1610, 1611, 1611,
+ 1613, 1614, 1615, 1619, 1621, 1624, 1616, 1618, 1622, 1617,
+ 1625, 1621, 1623, 1627, 1624, 1626, 1619, 1625, 1616, 1628,
+ 1622, 0, 1630, 1631, 1619, 1632, 1628, 1634, 1641, 1633,
+ 1619, 1621, 1624, 1638, 1632, 1627, 0, 1625, 1637, 1626,
+ 1627, 1636, 1626, 1619, 1630, 1643, 1628, 1634, 1631, 1630,
+
+ 1631, 1633, 1632, 1637, 1634, 1641, 1633, 1640, 1638, 1636,
+ 1638, 1642, 1642, 1645, 1644, 1637, 0, 1643, 1636, 1647,
+ 1640, 1646, 1643, 1648, 1649, 1650, 1656, 0, 1647, 1660,
+ 1648, 1651, 1652, 0, 1640, 1645, 1654, 0, 1642, 1644,
+ 1645, 1644, 1655, 1646, 1654, 1651, 1647, 1650, 1646, 1657,
+ 1648, 1652, 1650, 1656, 1658, 1655, 1649, 1659, 1651, 1652,
+ 1661, 1660, 0, 1654, 1659, 1662, 1658, 1664, 1665, 1655,
+ 1663, 0, 1666, 0, 1667, 1657, 1657, 1670, 1663, 0,
+ 1671, 1658, 1661, 1665, 1659, 1668, 1671, 1661, 1669, 1663,
+ 1662, 1669, 1662, 1672, 1664, 1665, 1673, 1663, 1666, 1666,
+
+ 1667, 1667, 1670, 1668, 1670, 1663, 1669, 1671, 1677, 1674,
+ 1676, 1678, 1668, 1680, 1673, 1669, 0, 1684, 1669, 1681,
+ 1672, 1688, 1682, 1673, 1674, 1676, 1681, 1680, 1684, 1689,
+ 1677, 1682, 1683, 1678, 1692, 1677, 1674, 1676, 1678, 1686,
+ 1680, 1683, 1687, 1688, 1684, 1699, 1681, 1692, 1688, 1682,
+ 1694, 1689, 1696, 1701, 1686, 1692, 1689, 1687, 1695, 1683,
+ 1698, 1692, 1695, 1697, 1696, 1697, 1686, 1702, 1700, 1687,
+ 1703, 1694, 1699, 1707, 1692, 1702, 1704, 1694, 1698, 1696,
+ 1701, 1708, 1705, 1706, 1709, 1695, 1700, 1698, 1706, 1714,
+ 1697, 1710, 1711, 1703, 1702, 1700, 1705, 1703, 1704, 1711,
+
+ 1715, 1717, 1716, 1704, 1718, 1707, 1719, 1721, 1709, 1705,
+ 1710, 1709, 0, 1708, 1715, 1706, 1714, 0, 1710, 1711,
+ 1716, 1719, 1722, 1720, 1723, 1715, 1715, 1715, 1717, 1716,
+ 1718, 1718, 1720, 1719, 1724, 1725, 1727, 1729, 1728, 1721,
+ 0, 1715, 0, 1734, 1722, 1728, 1731, 1732, 1731, 1722,
+ 1720, 1723, 1715, 1733, 1735, 1734, 1724, 1733, 1738, 1727,
+ 1729, 1724, 1736, 1727, 1729, 1728, 1737, 1725, 1739, 1732,
+ 1734, 1736, 1740, 1731, 1732, 1741, 1735, 1737, 1742, 1742,
+ 1733, 1735, 1743, 1745, 1740, 1738, 1744, 0, 1747, 1736,
+ 1743, 1739, 1748, 1737, 1749, 1739, 1747, 1741, 1749, 1740,
+
+ 1748, 1750, 1741, 1751, 1750, 1742, 1752, 1753, 1744, 1743,
+ 1745, 1751, 1752, 1744, 1754, 1747, 1757, 1756, 1758, 1748,
+ 1754, 1749, 1753, 1759, 1763, 1760, 1761, 1764, 1750, 1756,
+ 1751, 1762, 1766, 1752, 1753, 1765, 0, 1759, 1760, 1767,
+ 1761, 1754, 1758, 1757, 1756, 1758, 1766, 1765, 1769, 1770,
+ 1759, 1763, 1760, 1761, 1764, 1772, 1776, 1762, 1762, 1766,
+ 1768, 1773, 1765, 1768, 1775, 1767, 1767, 1774, 1773, 1777,
+ 1779, 1770, 1778, 1781, 1774, 1769, 1770, 1772, 1768, 1775,
+ 1778, 1782, 1772, 1776, 1780, 1783, 1788, 1768, 1773, 1784,
+ 1768, 1775, 1787, 1780, 1774, 1785, 1777, 1779, 1789, 1778,
+
+ 1781, 1790, 1784, 1785, 0, 1792, 1789, 1793, 1782, 1791,
+ 1795, 1780, 1783, 1788, 1787, 1794, 1784, 1799, 1791, 1787,
+ 1801, 1796, 1785, 1797, 1805, 1789, 1792, 1801, 1790, 1796,
+ 1794, 1793, 1792, 1803, 1793, 1797, 1791, 1795, 1798, 1802,
+ 1804, 1794, 1794, 1802, 1799, 1803, 1798, 1801, 1796, 1810,
+ 1797, 1805, 1807, 1806, 1812, 1811, 1808, 1794, 1813, 1816,
+ 1803, 1806, 1811, 1804, 1807, 1798, 1802, 1804, 1808, 1814,
+ 1814, 1813, 1815, 0, 1812, 1817, 1810, 1816, 1819, 1807,
+ 1806, 1812, 1811, 1808, 1820, 1813, 1816, 1821, 1822, 1823,
+ 1822, 1824, 1829, 1819, 0, 1825, 1814, 1824, 1815, 1815,
+
+ 1817, 1826, 1817, 1823, 1827, 1819, 1820, 1828, 1830, 1821,
+ 1831, 1820, 1831, 1832, 1821, 1822, 1823, 1825, 1824, 1828,
+ 1833, 1834, 1825, 1826, 1829, 1835, 1827, 1832, 1826, 1837,
+ 1830, 1827, 1836, 1838, 1828, 1830, 1843, 1831, 1833, 1834,
+ 1832, 1839, 1837, 1835, 1841, 1845, 1844, 1833, 1834, 1846,
+ 1836, 1841, 1835, 1847, 1843, 1847, 1837, 1846, 1849, 1836,
+ 1847, 1851, 1852, 1843, 1839, 1838, 1855, 1850, 1839, 1849,
+ 0, 1841, 1844, 1844, 1852, 1846, 1846, 1845, 1850, 1853,
+ 1847, 1855, 1847, 1857, 1846, 1849, 1858, 1856, 1851, 1852,
+ 1861, 1860, 1862, 1855, 1850, 1857, 1863, 1853, 1856, 1862,
+
+ 1864, 1858, 1866, 1868, 1867, 1869, 1853, 1870, 1871, 1872,
+ 1857, 1863, 1861, 1858, 1856, 1860, 1873, 1861, 1860, 1862,
+ 1875, 1879, 1872, 1863, 1876, 1868, 1874, 1864, 1867, 1866,
+ 1868, 1867, 1876, 1875, 1877, 1871, 1872, 1869, 1880, 1870,
+ 1881, 1874, 1873, 1873, 1879, 1883, 1882, 1875, 1879, 1886,
+ 0, 1876, 1883, 1874, 1884, 1889, 1886, 1887, 1888, 1890,
+ 1877, 1877, 1880, 1892, 1887, 1880, 1890, 1881, 1882, 1891,
+ 1897, 1888, 1883, 1882, 1894, 1898, 1886, 1884, 1889, 1893,
+ 1910, 1884, 1889, 1894, 1887, 1888, 1890, 1896, 1900, 1899,
+ 1903, 1891, 1897, 1904, 1905, 1892, 1891, 1897, 1896, 1907,
+
+ 1893, 1894, 1912, 1903, 1906, 1906, 1893, 1898, 1899, 1909,
+ 1928, 1916, 1910, 1900, 1896, 1900, 1899, 1903, 1905, 1904,
+ 1904, 1905, 1911, 1913, 1918, 1907, 1907, 1924, 1926, 1912,
+ 1922, 1906, 1909, 1918, 1923, 1930, 1909, 1911, 1916, 1929,
+ 1931, 1913, 1928, 1935, 1936, 1931, 1930, 1932, 1939, 1911,
+ 1913, 1918, 1922, 0, 1924, 1926, 1923, 1922, 1935, 1938,
+ 1934, 1923, 1930, 1940, 1941, 1929, 1929, 1931, 1934, 1932,
+ 1935, 1936, 1940, 1943, 1932, 1944, 1941, 1938, 1947, 1945,
+ 1939, 1948, 1952, 1944, 0, 1949, 1938, 1934, 1945, 1950,
+ 1940, 1941, 1951, 1954, 1955, 1952, 1956, 1953, 1957, 1958,
+
+ 1943, 1961, 1944, 1959, 1947, 1947, 1945, 1949, 1948, 1952,
+ 1953, 1950, 1949, 1960, 1965, 1954, 1950, 1951, 1959, 1951,
+ 1954, 1955, 1960, 1956, 1953, 1957, 1958, 1961, 1961, 1962,
+ 1959, 1963, 1964, 1966, 1967, 1968, 1970, 1969, 1971, 0,
+ 1960, 1965, 1973, 1964, 1972, 1971, 1963, 1974, 0, 1973,
+ 1968, 1970, 1975, 1976, 1976, 1962, 1962, 1969, 1963, 1964,
+ 1966, 1967, 1968, 1970, 1969, 1971, 1972, 1978, 1977, 1973,
+ 1975, 1972, 1980, 1979, 1974, 1977, 1979, 1981, 1982, 1975,
+ 1976, 1978, 1986, 1987, 1989, 1980, 1983, 0, 1987, 1984,
+ 1991, 1986, 1992, 1988, 1978, 1977, 1982, 1988, 1983, 1980,
+
+ 1979, 1984, 1990, 1981, 1981, 1982, 1993, 1994, 1989, 1986,
+ 1987, 1989, 1991, 1983, 1992, 1990, 1984, 1991, 1995, 1992,
+ 1988, 1998, 1999, 2000, 2001, 2005, 0, 2004, 2003, 1990,
+ 2005, 1999, 2001, 1993, 1994, 2003, 2004, 0, 2007, 2000,
+ 0, 0, 2010, 2012, 1995, 1995, 2006, 1998, 1998, 1999,
+ 2000, 2001, 2005, 2006, 2004, 2003, 2007, 2008, 2009, 2013,
+ 2014, 2017, 2015, 2016, 2008, 2007, 2018, 2009, 2010, 2010,
+ 2012, 2015, 2016, 2006, 2019, 0, 2025, 2013, 2018, 2023,
+ 2024, 2017, 2020, 2019, 2008, 2009, 2013, 2014, 2017, 2015,
+ 2016, 2020, 2021, 2018, 2022, 2026, 2029, 2028, 2027, 0,
+
+ 2034, 2019, 2022, 2021, 2026, 2028, 2023, 2024, 2025, 2020,
+ 2027, 2033, 2032, 2030, 0, 2036, 2035, 2040, 2029, 2021,
+ 2030, 2022, 2026, 2029, 2028, 2027, 2031, 2034, 0, 2038,
+ 2047, 2050, 0, 2031, 2032, 2040, 2033, 2038, 2033, 2032,
+ 2030, 2035, 2036, 2035, 2040, 2041, 2042, 2046, 2045, 2048,
+ 2049, 2053, 2041, 2031, 2042, 2045, 2038, 2047, 2050, 2049,
+ 2051, 2048, 2054, 2053, 2055, 2056, 0, 2060, 2063, 2062,
+ 2065, 2046, 2041, 2042, 2046, 2045, 2048, 2049, 2053, 2056,
+ 2066, 2058, 2064, 2051, 2062, 2054, 2059, 2051, 2058, 2054,
+ 2064, 2055, 2056, 2059, 2060, 2063, 2062, 2065, 2067, 0,
+
+ 2072, 2073, 2066, 2074, 2075, 2076, 2073, 2066, 2058, 2064,
+ 2077, 2081, 2083, 2059, 0, 0, 2082, 2074, 2075, 0,
+ 2089, 2084, 2077, 2076, 2090, 2067, 2072, 2072, 2073, 2082,
+ 2074, 2075, 2076, 2081, 2083, 2086, 2085, 2077, 2081, 2083,
+ 2084, 2088, 2089, 2082, 2085, 2091, 2090, 2089, 2084, 2092,
+ 2093, 2090, 2095, 2088, 2086, 2094, 2096, 2091, 2097, 2098,
+ 2100, 0, 2086, 2085, 0, 2096, 2099, 2097, 2088, 2101,
+ 2102, 2103, 2091, 2104, 2095, 2094, 2092, 2093, 2108, 2095,
+ 2107, 2101, 2094, 2096, 2109, 2097, 2100, 2100, 2099, 2109,
+ 2110, 2098, 2102, 2099, 2107, 2112, 2101, 2102, 2103, 2111,
+
+ 2104, 2113, 2108, 2114, 2115, 2108, 2116, 2107, 0, 0,
+ 2117, 0, 2110, 2118, 2121, 0, 2109, 2110, 2116, 2119,
+ 2123, 2111, 2115, 2124, 2113, 2114, 2111, 2112, 2113, 2117,
+ 2114, 2115, 2129, 2116, 2119, 2118, 2127, 2117, 2121, 2125,
+ 2118, 2121, 2123, 2126, 2128, 2124, 2119, 2123, 2125, 2130,
+ 2124, 2136, 2133, 2140, 2127, 0, 2135, 2126, 2129, 2129,
+ 2133, 2134, 2128, 2127, 2135, 2137, 2125, 2130, 2134, 2138,
+ 2126, 2128, 2139, 2137, 2141, 2146, 2130, 2143, 2136, 2133,
+ 2140, 2148, 2141, 2135, 2139, 2147, 2145, 2138, 2134, 2143,
+ 0, 2149, 2137, 2145, 2150, 2153, 2138, 2152, 2146, 2139,
+
+ 2155, 2141, 2146, 2159, 2143, 2160, 2156, 2161, 2148, 2153,
+ 2149, 2163, 2165, 2145, 2157, 2152, 2150, 2147, 2149, 2156,
+ 2170, 2150, 2153, 2155, 2152, 2171, 2157, 2155, 2167, 2159,
+ 2159, 2172, 2160, 2156, 2161, 2167, 2169, 2173, 2163, 2165,
+ 2174, 2157, 2175, 2169, 2176, 2177, 2170, 2170, 2178, 2174,
+ 2179, 2182, 2171, 2180, 2183, 2167, 0, 0, 2172, 2184,
+ 2178, 2173, 2180, 2169, 2173, 2181, 2192, 2174, 2187, 2175,
+ 2176, 2176, 2177, 2187, 2191, 2178, 2194, 2179, 2181, 2195,
+ 2180, 2183, 2184, 2182, 2188, 2198, 2184, 2189, 2188, 2190,
+ 2199, 2193, 2181, 2193, 2189, 2191, 2190, 2200, 2192, 2194,
+
+ 2187, 2191, 2202, 2194, 2202, 0, 2195, 2198, 2203, 2199,
+ 0, 2188, 2198, 2206, 2189, 2205, 2190, 2199, 2193, 2209,
+ 2208, 2200, 2206, 2207, 2200, 2211, 2204, 2204, 0, 2202,
+ 2207, 2210, 2203, 2208, 2213, 2203, 2204, 2205, 2214, 2210,
+ 2206, 2212, 2205, 2215, 2211, 2216, 2209, 2208, 2217, 2212,
+ 2207, 2218, 2211, 2204, 2204, 2219, 2220, 2220, 2210, 2217,
+ 2213, 2213, 2219, 2221, 2214, 2214, 2225, 2222, 2212, 2215,
+ 2215, 2216, 2216, 2218, 2222, 2217, 2226, 2223, 2218, 2227,
+ 2229, 2221, 2219, 2220, 2223, 2230, 2231, 2232, 2227, 2235,
+ 2221, 2236, 2233, 2225, 2222, 0, 2239, 2237, 2235, 2238,
+
+ 2226, 2241, 0, 2226, 2223, 2230, 2227, 2229, 2239, 2232,
+ 2233, 2242, 2230, 2231, 2232, 2241, 2235, 2238, 2236, 2233,
+ 2237, 2247, 2240, 2239, 2237, 2248, 2238, 2240, 2241, 2242,
+ 2249, 2252, 2253, 2252, 2255, 2257, 2266, 0, 2242, 2253,
+ 2260, 2257, 2259, 2248, 2267, 2249, 2263, 2261, 2247, 2255,
+ 2264, 2268, 2248, 2264, 2240, 0, 0, 2249, 2252, 2253,
+ 2272, 2255, 2257, 2266, 2259, 2261, 2260, 2260, 2263, 2259,
+ 2269, 2267, 2270, 2263, 2261, 2271, 2264, 2264, 2268, 2270,
+ 2264, 2274, 2272, 2271, 2275, 2276, 0, 2272, 2269, 2277,
+ 2279, 2278, 2280, 2282, 2281, 2284, 2279, 2269, 0, 2270,
+
+ 2278, 2286, 2271, 2281, 2288, 0, 2275, 2276, 2283, 2286,
+ 2283, 2275, 2276, 2274, 2280, 2287, 2277, 2279, 2278, 2280,
+ 2289, 2281, 2284, 2290, 2294, 2282, 2291, 2287, 2286, 2293,
+ 2292, 2288, 2294, 2295, 2289, 2283, 2296, 2290, 2297, 2297,
+ 2293, 2298, 2287, 2301, 2302, 2306, 2299, 2289, 2292, 2291,
+ 2290, 2294, 2295, 2291, 2299, 2304, 2293, 2292, 2296, 2308,
+ 2295, 2304, 2310, 2296, 2307, 2297, 2315, 2311, 2298, 2313,
+ 2301, 2302, 2306, 2299, 2311, 2307, 2312, 2313, 2318, 2319,
+ 2312, 2308, 2304, 2318, 2316, 2320, 2308, 2321, 2335, 2310,
+ 2322, 2307, 2315, 2315, 2311, 2321, 2313, 2316, 2325, 2327,
+
+ 2323, 2324, 2336, 2312, 2329, 2318, 2319, 2323, 2322, 2324,
+ 2328, 2316, 2320, 2325, 2321, 2326, 2334, 2322, 2333, 0,
+ 2335, 2338, 2326, 2334, 2337, 2325, 2327, 2323, 2324, 2336,
+ 2329, 2329, 2339, 2333, 2328, 2341, 2342, 2328, 2343, 2344,
+ 2346, 2339, 2326, 2334, 0, 2333, 2343, 2348, 2337, 2351,
+ 2352, 2337, 2349, 2338, 2345, 2345, 2353, 2341, 2342, 2339,
+ 2349, 0, 2341, 2342, 2345, 2343, 2355, 2346, 2356, 2357,
+ 2358, 2344, 2354, 2361, 2348, 0, 2351, 2352, 2353, 2349,
+ 2359, 2345, 2345, 2353, 2364, 2354, 2366, 2369, 2355, 2367,
+ 2370, 2366, 2364, 2355, 2371, 2356, 2357, 2358, 2373, 2354,
+
+ 2361, 2371, 2359, 2370, 2372, 2374, 2377, 2359, 2379, 2380,
+ 2378, 2364, 2381, 2366, 2369, 2367, 2367, 2370, 0, 2382,
+ 0, 2371, 2372, 2378, 0, 2373, 2386, 2374, 2380, 2387,
+ 2388, 2372, 2374, 2377, 0, 2384, 2380, 2378, 2385, 2381,
+ 2379, 2382, 2384, 2404, 2387, 2385, 2382, 2390, 2386, 2395,
+ 2391, 2388, 2392, 2386, 2393, 2394, 2387, 2388, 2391, 2392,
+ 2395, 2393, 2384, 2398, 2394, 2385, 2390, 2397, 2396, 2396,
+ 2404, 2405, 2410, 2397, 2390, 2412, 2395, 2391, 2396, 2392,
+ 2401, 2393, 2394, 2406, 2416, 2398, 2414, 2401, 2413, 2413,
+ 2398, 2417, 2418, 2420, 2397, 2396, 2396, 2427, 2405, 2410,
+
+ 2417, 2422, 2412, 2423, 2424, 2418, 2406, 2401, 2428, 2414,
+ 2406, 2416, 2429, 2414, 2426, 2427, 2424, 2413, 2417, 2418,
+ 2420, 2422, 2430, 2426, 2427, 2431, 2423, 2434, 2422, 2432,
+ 2423, 2424, 2434, 2435, 2428, 2428, 2436, 2431, 2436, 2429,
+ 2433, 2426, 2437, 2433, 2438, 2442, 2439, 2441, 0, 2430,
+ 2438, 2432, 2431, 2440, 2437, 2441, 2432, 2445, 2433, 2434,
+ 2448, 2449, 2450, 2436, 2452, 2435, 2453, 2433, 2439, 2437,
+ 2433, 2438, 2442, 2439, 2441, 2440, 2455, 2457, 2456, 2460,
+ 2440, 2458, 2452, 2459, 2445, 2463, 2470, 2448, 2449, 2450,
+ 2456, 2452, 2457, 2453, 2463, 2459, 2464, 2465, 2465, 2466,
+
+ 2467, 2471, 0, 2455, 2457, 2456, 2460, 2458, 2458, 2467,
+ 2459, 2469, 2463, 2473, 2471, 2472, 2485, 2481, 2470, 2475,
+ 2464, 2473, 2474, 2464, 2465, 2466, 2466, 2467, 2471, 2484,
+ 2475, 2474, 2489, 2484, 2487, 2469, 2489, 2472, 2469, 2485,
+ 2473, 2481, 2472, 2485, 2481, 2486, 2475, 2487, 2490, 2474,
+ 2493, 2491, 2486, 2495, 2492, 2496, 2484, 2494, 2500, 2489,
+ 2497, 2487, 2493, 2496, 2490, 2498, 2499, 2495, 2499, 2497,
+ 2500, 2503, 2486, 2491, 2505, 2490, 2498, 2493, 2491, 2492,
+ 2495, 2492, 2496, 2494, 2494, 2500, 2502, 2497, 2501, 2504,
+ 2516, 2506, 2498, 2499, 2507, 2501, 2508, 2509, 2503, 2502,
+
+ 0, 2505, 2510, 2511, 2512, 2509, 2513, 2504, 2514, 2510,
+ 2514, 2518, 2517, 2502, 2526, 2501, 2504, 2506, 2506, 2530,
+ 2515, 2507, 2516, 2508, 2509, 2517, 2512, 2511, 2513, 2510,
+ 2511, 2512, 2515, 2513, 2519, 2514, 2521, 2523, 2518, 2517,
+ 2527, 2526, 2519, 2528, 2529, 2531, 2523, 2515, 2521, 2534,
+ 0, 2530, 2529, 2536, 0, 2532, 2537, 2534, 2533, 0,
+ 2536, 2519, 2528, 2521, 2523, 2538, 2527, 2527, 2532, 2537,
+ 2528, 2529, 2533, 2541, 2540, 2543, 2534, 2531, 2542, 2544,
+ 2536, 2540, 2532, 2537, 2550, 2533, 2542, 2546, 2538, 2543,
+ 2545, 2547, 2538, 2544, 2548, 2541, 2549, 2551, 2545, 2552,
+
+ 2541, 2540, 2543, 2548, 2549, 2542, 2544, 2553, 2554, 2546,
+ 2555, 2550, 2557, 2547, 2546, 2558, 2556, 2545, 2547, 2551,
+ 2557, 2548, 2559, 2549, 2551, 2560, 2564, 2562, 2563, 2567,
+ 2554, 2552, 2555, 2553, 2553, 2554, 2563, 2555, 2556, 2557,
+ 2565, 0, 2570, 2556, 2559, 2572, 2564, 2558, 2565, 2559,
+ 2562, 2566, 2560, 2564, 2562, 2563, 2568, 2569, 2575, 2566,
+ 2574, 2567, 2573, 2577, 2568, 2573, 2575, 2565, 2570, 2570,
+ 2578, 2569, 2572, 2576, 2580, 0, 2579, 2577, 2566, 2583,
+ 2573, 2576, 2574, 2568, 2569, 2575, 2585, 2574, 2580, 2573,
+ 2577, 2584, 2573, 2582, 2582, 2586, 2578, 2578, 2579, 2584,
+
+ 2576, 2580, 2587, 2579, 2590, 2583, 2583, 2588, 2589, 0,
+ 2591, 2592, 2585, 2585, 2593, 2600, 2589, 2596, 2584, 2594,
+ 2582, 2586, 2586, 2595, 2587, 2596, 2597, 2588, 0, 2587,
+ 0, 2590, 2591, 0, 2588, 2589, 2592, 2591, 2592, 2594,
+ 2603, 2593, 2600, 2595, 2596, 2607, 2594, 2598, 2597, 2601,
+ 2595, 2604, 2605, 2597, 2609, 2598, 2606, 2601, 2610, 2613,
+ 2605, 2611, 2603, 2612, 2606, 2616, 2610, 2603, 0, 2611,
+ 2617, 2607, 2607, 2604, 2598, 2614, 2601, 2620, 2604, 2605,
+ 2618, 2609, 2626, 2606, 2623, 2610, 2613, 2627, 2611, 2612,
+ 2612, 0, 2616, 2624, 0, 2614, 0, 2617, 0, 2620,
+
+ 2618, 2624, 2614, 0, 2620, 2625, 2623, 2618, 0, 2626,
+ 0, 2623, 0, 2625, 2627, 0, 0, 0, 0, 0,
+ 2624, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2625, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2632, 2632, 2632, 2632, 2632, 2632, 2632, 2633, 2633, 2633,
+ 2633, 2633, 2633, 2633, 2634, 2634, 2634, 2634, 2634, 2634,
+ 2634, 2635, 2635, 2635, 2635, 2635, 2635, 2635, 2637, 2637,
+ 0, 2637, 2637, 2637, 2637, 2638, 2638, 0, 0, 0,
+ 2638, 2638, 2639, 2639, 0, 0, 2639, 0, 2639, 2640,
+ 0, 0, 0, 0, 0, 2640, 2641, 2641, 0, 0,
+
+ 0, 2641, 2641, 2642, 0, 0, 0, 0, 0, 2642,
+ 2643, 2643, 0, 2643, 2643, 2643, 2643, 2644, 2644, 0,
+ 2644, 2644, 2644, 2644, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+ 2630
} ;
@@ -3154,7 +3185,7 @@ static void config_end_include(void)
#define YY_NO_INPUT 1
#endif
-#line 3156 "<stdout>"
+#line 3187 "<stdout>"
#define INITIAL 0
#define quotedstring 1
@@ -3377,7 +3408,7 @@ YY_DECL
{
#line 206 "util/configlexer.lex"
-#line 3379 "<stdout>"
+#line 3410 "<stdout>"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -3410,13 +3441,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 >= 2599 )
+ if ( yy_current_state >= 2631 )
yy_c = yy_meta[(unsigned int) 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] != 7434 );
+ while ( yy_base[yy_current_state] != 7525 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -3601,1102 +3632,1117 @@ YY_RULE_SETUP
case 32:
YY_RULE_SETUP
#line 241 "util/configlexer.lex"
-{ YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
+{ YDVAR(1, VAR_TLS_WIN_CERT) }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 242 "util/configlexer.lex"
-{ YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 243 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSTEMD) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 244 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_DAEMONIZE) }
+{ YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 245 "util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE) }
+{ YDVAR(1, VAR_USE_SYSTEMD) }
YY_BREAK
case 37:
YY_RULE_SETUP
#line 246 "util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE) }
+{ YDVAR(1, VAR_DO_DAEMONIZE) }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 247 "util/configlexer.lex"
-{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
+{ YDVAR(1, VAR_INTERFACE) }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 248 "util/configlexer.lex"
-{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
+{ YDVAR(1, VAR_INTERFACE) }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 249 "util/configlexer.lex"
-{ YDVAR(1, VAR_SO_RCVBUF) }
+{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 250 "util/configlexer.lex"
-{ YDVAR(1, VAR_SO_SNDBUF) }
+{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 251 "util/configlexer.lex"
-{ YDVAR(1, VAR_SO_REUSEPORT) }
+{ YDVAR(1, VAR_SO_RCVBUF) }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 252 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_TRANSPARENT) }
+{ YDVAR(1, VAR_SO_SNDBUF) }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 253 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_FREEBIND) }
+{ YDVAR(1, VAR_SO_REUSEPORT) }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 254 "util/configlexer.lex"
-{ YDVAR(1, VAR_CHROOT) }
+{ YDVAR(1, VAR_IP_TRANSPARENT) }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 255 "util/configlexer.lex"
-{ YDVAR(1, VAR_USERNAME) }
+{ YDVAR(1, VAR_IP_FREEBIND) }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 256 "util/configlexer.lex"
-{ YDVAR(1, VAR_DIRECTORY) }
+{ YDVAR(1, VAR_CHROOT) }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 257 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOGFILE) }
+{ YDVAR(1, VAR_USERNAME) }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 258 "util/configlexer.lex"
-{ YDVAR(1, VAR_PIDFILE) }
+{ YDVAR(1, VAR_DIRECTORY) }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 259 "util/configlexer.lex"
-{ YDVAR(1, VAR_ROOT_HINTS) }
+{ YDVAR(1, VAR_LOGFILE) }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 260 "util/configlexer.lex"
-{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
+{ YDVAR(1, VAR_PIDFILE) }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 261 "util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
+{ YDVAR(1, VAR_ROOT_HINTS) }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 262 "util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
+{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 263 "util/configlexer.lex"
-{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
+{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 264 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
+{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 265 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
+{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 266 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MAX_TTL) }
+{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 267 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
+{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 268 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHE_MIN_TTL) }
+{ YDVAR(1, VAR_CACHE_MAX_TTL) }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 269 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_HOST_TTL) }
+{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 270 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_LAME_TTL) }
+{ YDVAR(1, VAR_CACHE_MIN_TTL) }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 271 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
+{ YDVAR(1, VAR_INFRA_HOST_TTL) }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 272 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
+{ YDVAR(1, VAR_INFRA_LAME_TTL) }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 273 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
+{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 274 "util/configlexer.lex"
-{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
+{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 275 "util/configlexer.lex"
-{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
+{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 276 "util/configlexer.lex"
-{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
+{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 277 "util/configlexer.lex"
-{ YDVAR(1, VAR_DELAY_CLOSE) }
+{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 278 "util/configlexer.lex"
-{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
+{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 279 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
+{ YDVAR(1, VAR_DELAY_CLOSE) }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 280 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
+{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 281 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_GLUE) }
+{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 282 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
+{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 283 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
+{ YDVAR(1, VAR_HARDEN_GLUE) }
YY_BREAK
case 75:
YY_RULE_SETUP
#line 284 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
+{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
YY_BREAK
case 76:
YY_RULE_SETUP
#line 285 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
+{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 286 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
+{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 287 "util/configlexer.lex"
-{ YDVAR(1, VAR_CAPS_WHITELIST) }
+{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
YY_BREAK
case 79:
YY_RULE_SETUP
#line 288 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
+{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
YY_BREAK
case 80:
YY_RULE_SETUP
#line 289 "util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
+{ YDVAR(1, VAR_CAPS_WHITELIST) }
YY_BREAK
case 81:
YY_RULE_SETUP
#line 290 "util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
+{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 291 "util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH_KEY) }
+{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 292 "util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH) }
+{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
YY_BREAK
case 84:
YY_RULE_SETUP
#line 293 "util/configlexer.lex"
-{ YDVAR(0, VAR_STUB_ZONE) }
+{ YDVAR(1, VAR_PREFETCH_KEY) }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 294 "util/configlexer.lex"
-{ YDVAR(1, VAR_NAME) }
+{ YDVAR(1, VAR_PREFETCH) }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 295 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_ADDR) }
+{ YDVAR(0, VAR_STUB_ZONE) }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 296 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_HOST) }
+{ YDVAR(1, VAR_NAME) }
YY_BREAK
case 88:
YY_RULE_SETUP
#line 297 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_PRIME) }
+{ YDVAR(1, VAR_STUB_ADDR) }
YY_BREAK
case 89:
YY_RULE_SETUP
#line 298 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_FIRST) }
+{ YDVAR(1, VAR_STUB_HOST) }
YY_BREAK
case 90:
YY_RULE_SETUP
#line 299 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_STUB_PRIME) }
YY_BREAK
case 91:
YY_RULE_SETUP
#line 300 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_STUB_FIRST) }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 301 "util/configlexer.lex"
-{ YDVAR(0, VAR_FORWARD_ZONE) }
+{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
YY_BREAK
case 93:
YY_RULE_SETUP
#line 302 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_ADDR) }
+{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
YY_BREAK
case 94:
YY_RULE_SETUP
#line 303 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_HOST) }
+{ YDVAR(0, VAR_FORWARD_ZONE) }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 304 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_FIRST) }
+{ YDVAR(1, VAR_FORWARD_ADDR) }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 305 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_FORWARD_HOST) }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 306 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
+{ YDVAR(1, VAR_FORWARD_FIRST) }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 307 "util/configlexer.lex"
-{ YDVAR(0, VAR_AUTH_ZONE) }
+{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
YY_BREAK
case 99:
YY_RULE_SETUP
#line 308 "util/configlexer.lex"
-{ YDVAR(1, VAR_ZONEFILE) }
+{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
YY_BREAK
case 100:
YY_RULE_SETUP
#line 309 "util/configlexer.lex"
-{ YDVAR(1, VAR_MASTER) }
+{ YDVAR(0, VAR_AUTH_ZONE) }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 310 "util/configlexer.lex"
-{ YDVAR(1, VAR_URL) }
+{ YDVAR(1, VAR_ZONEFILE) }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 311 "util/configlexer.lex"
-{ YDVAR(1, VAR_ALLOW_NOTIFY) }
+{ YDVAR(1, VAR_MASTER) }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 312 "util/configlexer.lex"
-{ YDVAR(1, VAR_FOR_DOWNSTREAM) }
+{ YDVAR(1, VAR_URL) }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 313 "util/configlexer.lex"
-{ YDVAR(1, VAR_FOR_UPSTREAM) }
+{ YDVAR(1, VAR_ALLOW_NOTIFY) }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 314 "util/configlexer.lex"
-{ YDVAR(1, VAR_FALLBACK_ENABLED) }
+{ YDVAR(1, VAR_FOR_DOWNSTREAM) }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 315 "util/configlexer.lex"
-{ YDVAR(0, VAR_VIEW) }
+{ YDVAR(1, VAR_FOR_UPSTREAM) }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 316 "util/configlexer.lex"
-{ YDVAR(1, VAR_VIEW_FIRST) }
+{ YDVAR(1, VAR_FALLBACK_ENABLED) }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 317 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
+{ YDVAR(0, VAR_VIEW) }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 318 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
+{ YDVAR(1, VAR_VIEW_FIRST) }
YY_BREAK
case 110:
YY_RULE_SETUP
#line 319 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
YY_BREAK
case 111:
YY_RULE_SETUP
#line 320 "util/configlexer.lex"
-{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
YY_BREAK
case 112:
YY_RULE_SETUP
#line 321 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
+{ YDVAR(2, VAR_ACCESS_CONTROL) }
YY_BREAK
case 113:
YY_RULE_SETUP
#line 322 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
+{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
YY_BREAK
case 114:
YY_RULE_SETUP
#line 323 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 324 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 325 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 326 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_IDENTITY) }
+{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
YY_BREAK
case 118:
YY_RULE_SETUP
#line 327 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_VERSION) }
+{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
YY_BREAK
case 119:
YY_RULE_SETUP
#line 328 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
+{ YDVAR(1, VAR_HIDE_IDENTITY) }
YY_BREAK
case 120:
YY_RULE_SETUP
#line 329 "util/configlexer.lex"
-{ YDVAR(1, VAR_IDENTITY) }
+{ YDVAR(1, VAR_HIDE_VERSION) }
YY_BREAK
case 121:
YY_RULE_SETUP
#line 330 "util/configlexer.lex"
-{ YDVAR(1, VAR_VERSION) }
+{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 331 "util/configlexer.lex"
-{ YDVAR(1, VAR_MODULE_CONF) }
+{ YDVAR(1, VAR_IDENTITY) }
YY_BREAK
case 123:
YY_RULE_SETUP
#line 332 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR) }
+{ YDVAR(1, VAR_VERSION) }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 333 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
+{ YDVAR(1, VAR_MODULE_CONF) }
YY_BREAK
case 125:
YY_RULE_SETUP
#line 334 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR) }
YY_BREAK
case 126:
YY_RULE_SETUP
#line 335 "util/configlexer.lex"
-{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
YY_BREAK
case 127:
YY_RULE_SETUP
#line 336 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 337 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR) }
+{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 338 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
+{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 339 "util/configlexer.lex"
-{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
+{ YDVAR(1, VAR_TRUST_ANCHOR) }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 340 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 341 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
+{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
YY_BREAK
case 133:
YY_RULE_SETUP
#line 342 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
+{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
YY_BREAK
case 134:
YY_RULE_SETUP
#line 343 "util/configlexer.lex"
-{ YDVAR(1, VAR_BOGUS_TTL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 344 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 345 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
+{ YDVAR(1, VAR_BOGUS_TTL) }
YY_BREAK
case 137:
YY_RULE_SETUP
#line 346 "util/configlexer.lex"
-{ YDVAR(1, VAR_AGGRESSIVE_NSEC) }
+{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 347 "util/configlexer.lex"
-{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
+{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
YY_BREAK
case 139:
YY_RULE_SETUP
#line 348 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVE_EXPIRED) }
+{ YDVAR(1, VAR_AGGRESSIVE_NSEC) }
YY_BREAK
case 140:
YY_RULE_SETUP
#line 349 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAKE_DSA) }
+{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 350 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAKE_SHA1) }
+{ YDVAR(1, VAR_SERVE_EXPIRED) }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 351 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
+{ YDVAR(1, VAR_FAKE_DSA) }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 352 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
+{ YDVAR(1, VAR_FAKE_SHA1) }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 353 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
+{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 354 "util/configlexer.lex"
-{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
+{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 355 "util/configlexer.lex"
-{
- YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
+{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 357 "util/configlexer.lex"
-{ YDVAR(1, VAR_ADD_HOLDDOWN) }
+#line 356 "util/configlexer.lex"
+{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 358 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEL_HOLDDOWN) }
+#line 357 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
YY_BREAK
case 149:
YY_RULE_SETUP
#line 359 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEEP_MISSING) }
+{ YDVAR(1, VAR_ADD_HOLDDOWN) }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 360 "util/configlexer.lex"
-{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
+{ YDVAR(1, VAR_DEL_HOLDDOWN) }
YY_BREAK
case 151:
YY_RULE_SETUP
#line 361 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSLOG) }
+{ YDVAR(1, VAR_KEEP_MISSING) }
YY_BREAK
case 152:
YY_RULE_SETUP
#line 362 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_IDENTITY) }
+{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
YY_BREAK
case 153:
YY_RULE_SETUP
#line 363 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_USE_SYSLOG) }
YY_BREAK
case 154:
YY_RULE_SETUP
#line 364 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_LOG_IDENTITY) }
YY_BREAK
case 155:
YY_RULE_SETUP
#line 365 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_REPLIES) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
YY_BREAK
case 156:
YY_RULE_SETUP
#line 366 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
YY_BREAK
case 157:
YY_RULE_SETUP
#line 367 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(1, VAR_LOG_REPLIES) }
YY_BREAK
case 158:
YY_RULE_SETUP
#line 368 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
YY_BREAK
case 159:
YY_RULE_SETUP
#line 369 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
YY_BREAK
case 160:
YY_RULE_SETUP
#line 370 "util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 371 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
YY_BREAK
case 162:
YY_RULE_SETUP
#line 372 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
YY_BREAK
case 163:
YY_RULE_SETUP
#line 373 "util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
YY_BREAK
case 164:
YY_RULE_SETUP
#line 374 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_ENABLE) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
YY_BREAK
case 165:
YY_RULE_SETUP
#line 375 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_KEY) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 376 "util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_SHM_ENABLE) }
YY_BREAK
case 167:
YY_RULE_SETUP
#line 377 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(1, VAR_SHM_KEY) }
YY_BREAK
case 168:
YY_RULE_SETUP
#line 378 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 379 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
YY_BREAK
case 170:
YY_RULE_SETUP
#line 380 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 381 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
YY_BREAK
case 172:
YY_RULE_SETUP
#line 382 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
YY_BREAK
case 173:
YY_RULE_SETUP
#line 383 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
YY_BREAK
case 174:
YY_RULE_SETUP
#line 384 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
YY_BREAK
case 175:
YY_RULE_SETUP
#line 385 "util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
YY_BREAK
case 176:
YY_RULE_SETUP
#line 386 "util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
YY_BREAK
case 177:
YY_RULE_SETUP
#line 387 "util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
YY_BREAK
case 178:
YY_RULE_SETUP
#line 388 "util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(0, VAR_PYTHON) }
YY_BREAK
case 179:
YY_RULE_SETUP
#line 389 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
YY_BREAK
case 180:
YY_RULE_SETUP
#line 390 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
YY_BREAK
case 181:
YY_RULE_SETUP
#line 391 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
YY_BREAK
case 182:
YY_RULE_SETUP
#line 392 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
YY_BREAK
case 183:
YY_RULE_SETUP
#line 393 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
YY_BREAK
case 184:
YY_RULE_SETUP
#line 394 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
YY_BREAK
case 185:
YY_RULE_SETUP
#line 395 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
YY_BREAK
case 186:
YY_RULE_SETUP
#line 396 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
YY_BREAK
case 187:
YY_RULE_SETUP
#line 397 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
YY_BREAK
case 188:
YY_RULE_SETUP
#line 398 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
YY_BREAK
case 189:
YY_RULE_SETUP
#line 399 "util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
YY_BREAK
case 190:
YY_RULE_SETUP
#line 400 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
YY_BREAK
case 191:
YY_RULE_SETUP
#line 401 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
YY_BREAK
case 192:
YY_RULE_SETUP
#line 402 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(0, VAR_DNSTAP) }
YY_BREAK
case 193:
YY_RULE_SETUP
#line 403 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
YY_BREAK
case 194:
YY_RULE_SETUP
#line 404 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
YY_BREAK
case 195:
YY_RULE_SETUP
#line 405 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
YY_BREAK
case 196:
YY_RULE_SETUP
#line 406 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
YY_BREAK
case 197:
YY_RULE_SETUP
#line 407 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
YY_BREAK
case 198:
YY_RULE_SETUP
-#line 409 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+#line 408 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
YY_BREAK
case 199:
YY_RULE_SETUP
-#line 411 "util/configlexer.lex"
+#line 409 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
YY_BREAK
case 200:
YY_RULE_SETUP
-#line 413 "util/configlexer.lex"
+#line 411 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
YY_BREAK
case 201:
YY_RULE_SETUP
-#line 415 "util/configlexer.lex"
+#line 413 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
YY_BREAK
case 202:
YY_RULE_SETUP
-#line 417 "util/configlexer.lex"
+#line 415 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
YY_BREAK
case 203:
YY_RULE_SETUP
-#line 419 "util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+#line 417 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
YY_BREAK
case 204:
YY_RULE_SETUP
-#line 420 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT) }
+#line 419 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
YY_BREAK
case 205:
YY_RULE_SETUP
#line 421 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
YY_BREAK
case 206:
YY_RULE_SETUP
#line 422 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_IP_RATELIMIT) }
YY_BREAK
case 207:
YY_RULE_SETUP
#line 423 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
YY_BREAK
case 208:
YY_RULE_SETUP
#line 424 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
YY_BREAK
case 209:
YY_RULE_SETUP
#line 425 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
YY_BREAK
case 210:
YY_RULE_SETUP
#line 426 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
YY_BREAK
case 211:
YY_RULE_SETUP
#line 427 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
YY_BREAK
case 212:
YY_RULE_SETUP
#line 428 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
YY_BREAK
case 213:
YY_RULE_SETUP
#line 429 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
YY_BREAK
case 214:
YY_RULE_SETUP
#line 430 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOW_RTT) }
+{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
YY_BREAK
case 215:
YY_RULE_SETUP
#line 431 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOW_RTT_PCT) }
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
YY_BREAK
case 216:
YY_RULE_SETUP
#line 432 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
+{ YDVAR(1, VAR_LOW_RTT) }
YY_BREAK
case 217:
YY_RULE_SETUP
#line 433 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP) }
+{ YDVAR(1, VAR_LOW_RTT_PERMIL) }
YY_BREAK
case 218:
YY_RULE_SETUP
#line 434 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
+{ YDVAR(1, VAR_LOW_RTT_PERMIL) }
YY_BREAK
case 219:
YY_RULE_SETUP
#line 435 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSCRYPT) }
+{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
YY_BREAK
case 220:
YY_RULE_SETUP
#line 436 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
+{ YDVAR(2, VAR_RESPONSE_IP) }
YY_BREAK
case 221:
YY_RULE_SETUP
#line 437 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PORT) }
+{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
YY_BREAK
case 222:
YY_RULE_SETUP
#line 438 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
+{ YDVAR(0, VAR_DNSCRYPT) }
YY_BREAK
case 223:
YY_RULE_SETUP
#line 439 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
+{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
YY_BREAK
case 224:
YY_RULE_SETUP
#line 440 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+{ YDVAR(1, VAR_DNSCRYPT_PORT) }
YY_BREAK
case 225:
YY_RULE_SETUP
#line 441 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
YY_BREAK
case 226:
YY_RULE_SETUP
#line 442 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
+{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
YY_BREAK
case 227:
YY_RULE_SETUP
-#line 444 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
+#line 443 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
YY_BREAK
case 228:
YY_RULE_SETUP
-#line 446 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
+#line 444 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
YY_BREAK
case 229:
YY_RULE_SETUP
-#line 447 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
+#line 445 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
YY_BREAK
case 230:
YY_RULE_SETUP
-#line 448 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
+#line 447 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
YY_BREAK
case 231:
YY_RULE_SETUP
#line 449 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
+{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
YY_BREAK
case 232:
YY_RULE_SETUP
#line 450 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_HOOK) }
+{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
YY_BREAK
case 233:
YY_RULE_SETUP
#line 451 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
+{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
YY_BREAK
case 234:
YY_RULE_SETUP
#line 452 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
+{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
YY_BREAK
case 235:
YY_RULE_SETUP
#line 453 "util/configlexer.lex"
-{ YDVAR(1, VAR_IPSECMOD_STRICT) }
+{ YDVAR(1, VAR_IPSECMOD_HOOK) }
YY_BREAK
case 236:
YY_RULE_SETUP
#line 454 "util/configlexer.lex"
-{ YDVAR(0, VAR_CACHEDB) }
+{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
YY_BREAK
case 237:
YY_RULE_SETUP
#line 455 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_BACKEND) }
+{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
YY_BREAK
case 238:
YY_RULE_SETUP
#line 456 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
+{ YDVAR(1, VAR_IPSECMOD_STRICT) }
YY_BREAK
case 239:
YY_RULE_SETUP
#line 457 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
+{ YDVAR(0, VAR_CACHEDB) }
YY_BREAK
case 240:
YY_RULE_SETUP
#line 458 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
+{ YDVAR(1, VAR_CACHEDB_BACKEND) }
YY_BREAK
case 241:
YY_RULE_SETUP
#line 459 "util/configlexer.lex"
-{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
+{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
YY_BREAK
case 242:
YY_RULE_SETUP
#line 460 "util/configlexer.lex"
-{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
+{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
YY_BREAK
case 243:
-/* rule 243 can match eol */
YY_RULE_SETUP
#line 461 "util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++; }
+{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
YY_BREAK
-/* Quoted strings. Strip leading and ending quotes */
case 244:
YY_RULE_SETUP
+#line 462 "util/configlexer.lex"
+{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
+ YY_BREAK
+case 245:
+YY_RULE_SETUP
+#line 463 "util/configlexer.lex"
+{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
+ YY_BREAK
+case 246:
+/* rule 246 can match eol */
+YY_RULE_SETUP
#line 464 "util/configlexer.lex"
+{ LEXOUT(("NL\n")); cfg_parser->line++; }
+ YY_BREAK
+/* Quoted strings. Strip leading and ending quotes */
+case 247:
+YY_RULE_SETUP
+#line 467 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
-#line 465 "util/configlexer.lex"
+#line 468 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 245:
+case 248:
YY_RULE_SETUP
-#line 470 "util/configlexer.lex"
+#line 473 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 246:
-/* rule 246 can match eol */
+case 249:
+/* rule 249 can match eol */
YY_RULE_SETUP
-#line 471 "util/configlexer.lex"
+#line 474 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \"");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 247:
+case 250:
YY_RULE_SETUP
-#line 473 "util/configlexer.lex"
+#line 476 "util/configlexer.lex"
{
LEXOUT(("QE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -4709,34 +4755,34 @@ YY_RULE_SETUP
}
YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
-case 248:
+case 251:
YY_RULE_SETUP
-#line 485 "util/configlexer.lex"
+#line 488 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
YY_BREAK
case YY_STATE_EOF(singlequotedstr):
-#line 486 "util/configlexer.lex"
+#line 489 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 249:
+case 252:
YY_RULE_SETUP
-#line 491 "util/configlexer.lex"
+#line 494 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 250:
-/* rule 250 can match eol */
+case 253:
+/* rule 253 can match eol */
YY_RULE_SETUP
-#line 492 "util/configlexer.lex"
+#line 495 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 251:
+case 254:
YY_RULE_SETUP
-#line 494 "util/configlexer.lex"
+#line 497 "util/configlexer.lex"
{
LEXOUT(("SQE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -4749,38 +4795,38 @@ YY_RULE_SETUP
}
YY_BREAK
/* include: directive */
-case 252:
+case 255:
YY_RULE_SETUP
-#line 506 "util/configlexer.lex"
+#line 509 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
-#line 508 "util/configlexer.lex"
+#line 511 "util/configlexer.lex"
{
yyerror("EOF inside include directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 253:
+case 256:
YY_RULE_SETUP
-#line 512 "util/configlexer.lex"
+#line 515 "util/configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
-case 254:
-/* rule 254 can match eol */
+case 257:
+/* rule 257 can match eol */
YY_RULE_SETUP
-#line 513 "util/configlexer.lex"
+#line 516 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
-case 255:
+case 258:
YY_RULE_SETUP
-#line 514 "util/configlexer.lex"
+#line 517 "util/configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
YY_BREAK
-case 256:
+case 259:
YY_RULE_SETUP
-#line 515 "util/configlexer.lex"
+#line 518 "util/configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext);
@@ -4788,27 +4834,27 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
-#line 520 "util/configlexer.lex"
+#line 523 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 257:
+case 260:
YY_RULE_SETUP
-#line 524 "util/configlexer.lex"
+#line 527 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 258:
-/* rule 258 can match eol */
+case 261:
+/* rule 261 can match eol */
YY_RULE_SETUP
-#line 525 "util/configlexer.lex"
+#line 528 "util/configlexer.lex"
{ yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev); }
YY_BREAK
-case 259:
+case 262:
YY_RULE_SETUP
-#line 527 "util/configlexer.lex"
+#line 530 "util/configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
@@ -4818,7 +4864,7 @@ YY_RULE_SETUP
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
-#line 533 "util/configlexer.lex"
+#line 536 "util/configlexer.lex"
{
LEXOUT(("LEXEOF "));
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
@@ -4830,33 +4876,33 @@ case YY_STATE_EOF(val):
}
}
YY_BREAK
-case 260:
+case 263:
YY_RULE_SETUP
-#line 544 "util/configlexer.lex"
+#line 547 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
if(--num_args == 0) { BEGIN(INITIAL); }
yylval.str = strdup(yytext); return STRING_ARG; }
YY_BREAK
-case 261:
+case 264:
YY_RULE_SETUP
-#line 548 "util/configlexer.lex"
+#line 551 "util/configlexer.lex"
{
ub_c_error_msg("unknown keyword '%s'", yytext);
}
YY_BREAK
-case 262:
+case 265:
YY_RULE_SETUP
-#line 552 "util/configlexer.lex"
+#line 555 "util/configlexer.lex"
{
ub_c_error_msg("stray '%s'", yytext);
}
YY_BREAK
-case 263:
+case 266:
YY_RULE_SETUP
-#line 556 "util/configlexer.lex"
+#line 559 "util/configlexer.lex"
ECHO;
YY_BREAK
-#line 4858 "<stdout>"
+#line 4904 "<stdout>"
case YY_END_OF_BUFFER:
{
@@ -5147,7 +5193,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 2599 )
+ if ( yy_current_state >= 2631 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
@@ -5175,11 +5221,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 >= 2599 )
+ if ( yy_current_state >= 2631 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
- yy_is_jam = (yy_current_state == 2598);
+ yy_is_jam = (yy_current_state == 2630);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -5818,7 +5864,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 556 "util/configlexer.lex"
+#line 559 "util/configlexer.lex"
diff --git a/util/configlexer.lex b/util/configlexer.lex
index 73dfe4bd4f29..6019b1395b36 100644
--- a/util/configlexer.lex
+++ b/util/configlexer.lex
@@ -238,8 +238,10 @@ ssl-port{COLON} { YDVAR(1, VAR_SSL_PORT) }
tls-port{COLON} { YDVAR(1, VAR_SSL_PORT) }
ssl-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
tls-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
-additional-ssl-port{COLON} { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
-additional-tls-port{COLON} { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
+tls-win-cert{COLON} { YDVAR(1, VAR_TLS_WIN_CERT) }
+additional-ssl-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
+additional-tls-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
+tls-additional-ports{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
use-systemd{COLON} { YDVAR(1, VAR_USE_SYSTEMD) }
do-daemonize{COLON} { YDVAR(1, VAR_DO_DAEMONIZE) }
interface{COLON} { YDVAR(1, VAR_INTERFACE) }
@@ -428,7 +430,8 @@ ratelimit-below-domain{COLON} { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
ip-ratelimit-factor{COLON} { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
ratelimit-factor{COLON} { YDVAR(1, VAR_RATELIMIT_FACTOR) }
low-rtt{COLON} { YDVAR(1, VAR_LOW_RTT) }
-low-rtt-pct{COLON} { YDVAR(1, VAR_LOW_RTT_PCT) }
+low-rtt-pct{COLON} { YDVAR(1, VAR_LOW_RTT_PERMIL) }
+low-rtt-permil{COLON} { YDVAR(1, VAR_LOW_RTT_PERMIL) }
response-ip-tag{COLON} { YDVAR(2, VAR_RESPONSE_IP_TAG) }
response-ip{COLON} { YDVAR(2, VAR_RESPONSE_IP) }
response-ip-data{COLON} { YDVAR(2, VAR_RESPONSE_IP_DATA) }
diff --git a/util/configparser.c b/util/configparser.c
index d0e99df81769..227dd0ae9b25 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -361,10 +361,11 @@ extern int yydebug;
VAR_URL = 490,
VAR_FOR_DOWNSTREAM = 491,
VAR_FALLBACK_ENABLED = 492,
- VAR_ADDITIONAL_TLS_PORT = 493,
+ VAR_TLS_ADDITIONAL_PORTS = 493,
VAR_LOW_RTT = 494,
- VAR_LOW_RTT_PCT = 495,
- VAR_ALLOW_NOTIFY = 496
+ VAR_LOW_RTT_PERMIL = 495,
+ VAR_ALLOW_NOTIFY = 496,
+ VAR_TLS_WIN_CERT = 497
};
#endif
/* Tokens. */
@@ -603,10 +604,11 @@ extern int yydebug;
#define VAR_URL 490
#define VAR_FOR_DOWNSTREAM 491
#define VAR_FALLBACK_ENABLED 492
-#define VAR_ADDITIONAL_TLS_PORT 493
+#define VAR_TLS_ADDITIONAL_PORTS 493
#define VAR_LOW_RTT 494
-#define VAR_LOW_RTT_PCT 495
+#define VAR_LOW_RTT_PERMIL 495
#define VAR_ALLOW_NOTIFY 496
+#define VAR_TLS_WIN_CERT 497
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -617,7 +619,7 @@ union YYSTYPE
char* str;
-#line 621 "util/configparser.c" /* yacc.c:355 */
+#line 623 "util/configparser.c" /* yacc.c:355 */
};
typedef union YYSTYPE YYSTYPE;
@@ -634,7 +636,7 @@ int yyparse (void);
/* Copy the second part of user declarations. */
-#line 638 "util/configparser.c" /* yacc.c:358 */
+#line 640 "util/configparser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -876,21 +878,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 489
+#define YYLAST 491
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 242
+#define YYNTOKENS 243
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 262
+#define YYNNTS 263
/* YYNRULES -- Number of rules. */
-#define YYNRULES 501
+#define YYNRULES 503
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 750
+#define YYNSTATES 753
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 496
+#define YYMAXUTOK 497
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -948,7 +950,7 @@ static const yytype_uint8 yytranslate[] =
205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241
+ 235, 236, 237, 238, 239, 240, 241, 242
};
#if YYDEBUG
@@ -973,39 +975,39 @@ static const yytype_uint16 yyrline[] =
237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
242, 242, 242, 243, 243, 243, 244, 244, 244, 245,
245, 246, 247, 247, 248, 248, 249, 249, 250, 250,
- 251, 251, 251, 252, 254, 266, 267, 268, 268, 268,
- 268, 268, 269, 271, 283, 284, 285, 285, 285, 285,
- 286, 288, 302, 303, 304, 304, 304, 304, 305, 305,
- 305, 307, 323, 324, 325, 325, 325, 325, 326, 326,
- 326, 327, 329, 338, 347, 358, 367, 376, 385, 396,
- 405, 416, 429, 444, 455, 472, 489, 502, 517, 526,
- 535, 544, 553, 562, 571, 580, 589, 598, 607, 616,
- 625, 634, 643, 652, 661, 668, 675, 684, 691, 699,
- 708, 717, 731, 740, 749, 758, 765, 772, 798, 806,
- 813, 820, 827, 834, 842, 850, 858, 865, 876, 887,
- 894, 903, 912, 921, 928, 935, 943, 951, 961, 971,
- 981, 994, 1005, 1013, 1026, 1035, 1044, 1053, 1063, 1073,
- 1081, 1094, 1103, 1111, 1120, 1128, 1141, 1150, 1157, 1167,
- 1177, 1187, 1197, 1207, 1217, 1227, 1237, 1244, 1251, 1258,
- 1267, 1276, 1285, 1292, 1302, 1319, 1326, 1344, 1357, 1370,
- 1379, 1388, 1397, 1406, 1416, 1426, 1437, 1446, 1455, 1468,
- 1481, 1490, 1497, 1506, 1515, 1524, 1533, 1541, 1554, 1562,
- 1591, 1598, 1613, 1623, 1633, 1640, 1647, 1656, 1670, 1689,
- 1708, 1720, 1732, 1744, 1755, 1774, 1784, 1793, 1801, 1809,
- 1822, 1835, 1848, 1861, 1870, 1879, 1888, 1897, 1907, 1917,
- 1930, 1943, 1954, 1967, 1978, 1991, 2001, 2008, 2015, 2024,
- 2034, 2044, 2054, 2061, 2068, 2077, 2087, 2097, 2104, 2111,
- 2118, 2126, 2136, 2146, 2156, 2166, 2196, 2206, 2214, 2223,
- 2238, 2247, 2252, 2253, 2254, 2254, 2254, 2255, 2255, 2255,
- 2256, 2256, 2258, 2268, 2277, 2284, 2294, 2301, 2308, 2315,
- 2322, 2327, 2328, 2329, 2329, 2330, 2330, 2331, 2331, 2332,
- 2333, 2334, 2335, 2336, 2337, 2339, 2347, 2354, 2362, 2370,
- 2377, 2384, 2393, 2402, 2411, 2420, 2429, 2438, 2443, 2444,
- 2445, 2447, 2453, 2463, 2470, 2479, 2487, 2493, 2494, 2496,
- 2496, 2496, 2497, 2497, 2498, 2499, 2500, 2501, 2502, 2504,
- 2514, 2524, 2531, 2540, 2547, 2556, 2564, 2577, 2585, 2598,
- 2603, 2604, 2605, 2605, 2606, 2606, 2606, 2608, 2622, 2637,
- 2649, 2664
+ 251, 251, 251, 252, 252, 254, 266, 267, 268, 268,
+ 268, 268, 268, 269, 271, 283, 284, 285, 285, 285,
+ 285, 286, 288, 302, 303, 304, 304, 304, 304, 305,
+ 305, 305, 307, 323, 324, 325, 325, 325, 325, 326,
+ 326, 326, 327, 329, 338, 347, 358, 367, 376, 385,
+ 396, 405, 416, 429, 444, 455, 472, 489, 502, 517,
+ 526, 535, 544, 553, 562, 571, 580, 589, 598, 607,
+ 616, 625, 634, 643, 652, 661, 668, 675, 684, 691,
+ 700, 708, 717, 726, 740, 749, 758, 767, 774, 781,
+ 807, 815, 822, 829, 836, 843, 851, 859, 867, 874,
+ 885, 896, 903, 912, 921, 930, 937, 944, 952, 960,
+ 970, 980, 990, 1003, 1014, 1022, 1035, 1044, 1053, 1062,
+ 1072, 1082, 1090, 1103, 1112, 1120, 1129, 1137, 1150, 1159,
+ 1166, 1176, 1186, 1196, 1206, 1216, 1226, 1236, 1246, 1253,
+ 1260, 1267, 1276, 1285, 1294, 1301, 1311, 1329, 1336, 1354,
+ 1367, 1380, 1389, 1398, 1407, 1416, 1426, 1436, 1447, 1456,
+ 1465, 1478, 1491, 1500, 1507, 1516, 1525, 1534, 1543, 1551,
+ 1564, 1572, 1601, 1608, 1623, 1633, 1643, 1650, 1657, 1666,
+ 1680, 1699, 1718, 1730, 1742, 1754, 1765, 1784, 1794, 1803,
+ 1811, 1819, 1832, 1845, 1858, 1871, 1880, 1889, 1898, 1907,
+ 1917, 1927, 1940, 1953, 1964, 1977, 1988, 2001, 2011, 2018,
+ 2025, 2034, 2044, 2054, 2064, 2071, 2078, 2087, 2097, 2107,
+ 2114, 2121, 2128, 2136, 2146, 2156, 2166, 2176, 2206, 2216,
+ 2224, 2233, 2248, 2257, 2262, 2263, 2264, 2264, 2264, 2265,
+ 2265, 2265, 2266, 2266, 2268, 2278, 2287, 2294, 2304, 2311,
+ 2318, 2325, 2332, 2337, 2338, 2339, 2339, 2340, 2340, 2341,
+ 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2349, 2357, 2364,
+ 2372, 2380, 2387, 2394, 2403, 2412, 2421, 2430, 2439, 2448,
+ 2453, 2454, 2455, 2457, 2463, 2473, 2480, 2489, 2497, 2503,
+ 2504, 2506, 2506, 2506, 2507, 2507, 2508, 2509, 2510, 2511,
+ 2512, 2514, 2524, 2534, 2541, 2550, 2557, 2566, 2574, 2587,
+ 2595, 2608, 2613, 2614, 2615, 2615, 2616, 2616, 2616, 2618,
+ 2632, 2647, 2659, 2674
};
#endif
@@ -1101,13 +1103,13 @@ static const char *const yytname[] =
"VAR_CACHEDB_REDISTIMEOUT", "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM",
"VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER",
"VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED",
- "VAR_ADDITIONAL_TLS_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PCT",
- "VAR_ALLOW_NOTIFY", "$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",
+ "VAR_TLS_ADDITIONAL_PORTS", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL",
+ "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", "$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",
@@ -1121,10 +1123,11 @@ static const char *const yytname[] =
"server_outgoing_tcp_mss", "server_tcp_upstream",
"server_udp_upstream_without_downstream", "server_ssl_upstream",
"server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port",
- "server_tls_cert_bundle", "server_additional_tls_port",
- "server_use_systemd", "server_do_daemonize", "server_use_syslog",
- "server_log_time_ascii", "server_log_queries", "server_log_replies",
- "server_chroot", "server_username", "server_directory", "server_logfile",
+ "server_tls_cert_bundle", "server_tls_win_cert",
+ "server_tls_additional_ports", "server_use_systemd",
+ "server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
+ "server_log_queries", "server_log_replies", "server_chroot",
+ "server_username", "server_directory", "server_logfile",
"server_pidfile", "server_root_hints", "server_dlv_anchor_file",
"server_dlv_anchor", "server_auto_trust_anchor_file",
"server_trust_anchor_file", "server_trusted_keys_file",
@@ -1172,7 +1175,7 @@ static const char *const yytname[] =
"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_low_rtt_pct",
+ "server_ratelimit_factor", "server_low_rtt", "server_low_rtt_permil",
"server_qname_minimisation", "server_qname_minimisation_strict",
"server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus",
"server_ipsecmod_hook", "server_ipsecmod_max_ttl",
@@ -1240,7 +1243,7 @@ static const yytype_uint16 yytoknum[] =
465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
- 495, 496
+ 495, 496, 497
};
# endif
@@ -1278,7 +1281,7 @@ static const yytype_int16 yypact[] =
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 215, 216, 217, 218,
219, 220, 251, 252, 253, 254, 258, 259, 260, 302,
- 303, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+ 303, 304, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
@@ -1294,45 +1297,46 @@ static const yytype_int16 yypact[] =
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, -184, -184, -184, -184, -184, -184, -184, -184, 304,
- 305, 306, 307, 308, 309, -184, -184, -184, -184, -184,
- -184, -184, 310, 314, 318, 319, 343, -184, -184, -184,
- -184, -184, -184, 344, 345, 347, 357, 358, 359, 360,
- -184, -184, -184, -184, -184, -184, -184, -184, 361, 362,
- 363, 364, 365, 366, 367, 368, -184, -184, -184, -184,
- -184, -184, -184, -184, -184, 369, 404, 406, 418, 419,
- 420, 421, 422, -184, -184, -184, -184, -184, -184, -184,
- -184, -184, 423, 424, 425, 426, 427, 428, 435, 436,
- 437, 438, 439, 440, -184, -184, -184, -184, -184, -184,
- -184, -184, -184, -184, -184, -184, -184, 442, -184, -184,
- 443, 444, 445, 446, 447, 448, 452, 453, 454, 455,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, 456, 457, 458, 459, 460, -184, -184, -184, -184,
+ -184, 305, 306, 307, 308, 309, 310, -184, -184, -184,
+ -184, -184, -184, -184, 314, 318, 319, 343, 344, -184,
+ -184, -184, -184, -184, -184, 345, 347, 357, 358, 359,
+ 360, 361, -184, -184, -184, -184, -184, -184, -184, -184,
+ 362, 363, 364, 365, 366, 367, 368, 369, -184, -184,
+ -184, -184, -184, -184, -184, -184, -184, 404, 406, 418,
+ 419, 420, 421, 422, 423, -184, -184, -184, -184, -184,
+ -184, -184, -184, -184, 424, 425, 426, 427, 428, 435,
+ 436, 437, 438, 439, 440, 442, -184, -184, -184, -184,
+ -184, -184, -184, -184, -184, -184, -184, -184, -184, 443,
+ -184, -184, 444, 445, 446, 447, 448, 452, 454, 455,
+ 456, 457, -184, -184, -184, -184, -184, -184, -184, -184,
+ -184, -184, -184, 458, 459, 460, 461, 462, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, -184, -184, -184, -184, -184, -184, -184, 461, 462,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+ 463, 464, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, -184, -184, 463, 464, 465, -184, -184, -184, -184,
- -184, -184, -184, -184, -184, 466, 467, -184, -184, -184,
+ -184, -184, -184, -184, -184, 465, 466, 467, -184, -184,
+ -184, -184, -184, -184, -184, -184, -184, 468, 469, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, -184, 468, 469, 470, 471, 472, 473, -184, -184,
+ -184, -184, -184, -184, 470, 471, 472, 473, 474, 475,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, 474, -184, -184, 475, 476, -184, -184, -184, -184,
+ -184, -184, -184, -184, 476, -184, -184, 477, 478, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- 477, 478, 479, -184, -184, -184, -184, -184, -184, -184
+ -184, -184, -184, 479, 480, 481, -184, -184, -184, -184,
+ -184, -184, -184
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1340,9 +1344,9 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 2, 0, 1, 14, 184, 193, 411, 457, 430, 201,
- 466, 489, 211, 3, 16, 186, 195, 203, 213, 413,
- 432, 459, 468, 491, 4, 5, 6, 10, 13, 8,
+ 2, 0, 1, 14, 185, 194, 413, 459, 432, 202,
+ 468, 491, 212, 3, 16, 187, 196, 204, 214, 415,
+ 434, 461, 470, 493, 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,
@@ -1360,61 +1364,62 @@ static const yytype_uint16 yydefact[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 17, 18, 77, 80, 89, 166, 167, 19,
- 139, 140, 141, 142, 143, 144, 28, 68, 20, 81,
- 82, 39, 61, 76, 21, 22, 24, 25, 23, 26,
- 27, 112, 178, 113, 114, 115, 116, 180, 181, 162,
- 78, 67, 93, 110, 111, 29, 30, 31, 32, 33,
- 69, 83, 84, 99, 55, 65, 56, 170, 171, 94,
- 49, 50, 169, 51, 52, 103, 107, 120, 128, 149,
- 104, 62, 34, 35, 36, 91, 121, 122, 123, 37,
- 38, 40, 41, 43, 44, 42, 126, 45, 46, 47,
- 53, 72, 108, 86, 127, 79, 145, 87, 88, 105,
- 106, 92, 48, 70, 73, 54, 57, 95, 96, 71,
- 146, 97, 58, 59, 60, 179, 109, 159, 160, 168,
- 98, 66, 100, 101, 102, 147, 63, 64, 85, 74,
- 75, 90, 117, 118, 119, 124, 125, 150, 151, 153,
- 155, 156, 154, 157, 163, 129, 130, 133, 134, 131,
- 132, 135, 136, 138, 137, 182, 183, 148, 158, 172,
- 174, 173, 175, 176, 177, 152, 161, 164, 165, 0,
- 0, 0, 0, 0, 0, 185, 187, 188, 189, 191,
- 192, 190, 0, 0, 0, 0, 0, 194, 196, 197,
- 198, 199, 200, 0, 0, 0, 0, 0, 0, 0,
- 202, 204, 205, 208, 209, 206, 210, 207, 0, 0,
- 0, 0, 0, 0, 0, 0, 212, 214, 215, 216,
- 217, 221, 218, 219, 220, 0, 0, 0, 0, 0,
- 0, 0, 0, 412, 414, 416, 415, 421, 417, 418,
- 419, 420, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 431, 433, 434, 435, 436, 437,
- 438, 439, 440, 441, 442, 443, 444, 0, 458, 460,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 467, 469, 470, 471, 473, 474, 472, 475, 476, 477,
- 478, 0, 0, 0, 0, 0, 490, 492, 493, 494,
- 495, 496, 223, 222, 229, 238, 236, 244, 245, 248,
- 246, 247, 249, 250, 265, 266, 267, 268, 269, 292,
- 293, 294, 299, 300, 241, 301, 302, 305, 303, 304,
- 307, 308, 309, 322, 280, 281, 283, 284, 310, 325,
- 274, 276, 326, 332, 333, 334, 242, 291, 346, 347,
- 275, 341, 261, 237, 270, 323, 329, 311, 0, 0,
- 350, 243, 224, 260, 315, 225, 239, 240, 271, 272,
- 348, 313, 317, 318, 226, 351, 295, 321, 262, 279,
- 327, 328, 331, 340, 273, 344, 342, 343, 285, 290,
- 319, 320, 286, 287, 312, 336, 263, 264, 251, 253,
- 254, 255, 256, 257, 352, 353, 354, 296, 297, 298,
- 306, 355, 356, 0, 0, 0, 314, 288, 462, 365,
- 369, 367, 366, 370, 368, 0, 0, 373, 374, 230,
- 231, 232, 233, 234, 235, 316, 330, 345, 377, 378,
- 289, 357, 0, 0, 0, 0, 0, 0, 337, 338,
- 339, 463, 282, 277, 335, 259, 227, 228, 278, 379,
- 381, 380, 382, 383, 384, 252, 258, 375, 376, 385,
- 386, 387, 390, 389, 388, 391, 392, 393, 394, 395,
- 404, 0, 408, 409, 0, 0, 410, 396, 402, 397,
- 398, 399, 401, 403, 400, 422, 424, 423, 426, 427,
- 428, 429, 425, 445, 446, 447, 448, 449, 450, 451,
- 452, 453, 454, 455, 456, 461, 479, 480, 481, 484,
- 482, 483, 485, 486, 487, 488, 497, 498, 499, 500,
- 501, 324, 349, 364, 464, 465, 371, 372, 358, 359,
- 0, 0, 0, 363, 405, 406, 407, 362, 360, 361
+ 0, 0, 15, 17, 18, 77, 80, 89, 166, 167,
+ 19, 139, 140, 141, 142, 143, 144, 28, 68, 20,
+ 81, 82, 39, 61, 76, 21, 22, 24, 25, 23,
+ 26, 27, 112, 178, 113, 114, 115, 116, 180, 184,
+ 181, 162, 78, 67, 93, 110, 111, 29, 30, 31,
+ 32, 33, 69, 83, 84, 99, 55, 65, 56, 170,
+ 171, 94, 49, 50, 169, 51, 52, 103, 107, 120,
+ 128, 149, 104, 62, 34, 35, 36, 91, 121, 122,
+ 123, 37, 38, 40, 41, 43, 44, 42, 126, 45,
+ 46, 47, 53, 72, 108, 86, 127, 79, 145, 87,
+ 88, 105, 106, 92, 48, 70, 73, 54, 57, 95,
+ 96, 71, 146, 97, 58, 59, 60, 179, 109, 159,
+ 160, 168, 98, 66, 100, 101, 102, 147, 63, 64,
+ 85, 74, 75, 90, 117, 118, 119, 124, 125, 150,
+ 151, 153, 155, 156, 154, 157, 163, 129, 130, 133,
+ 134, 131, 132, 135, 136, 138, 137, 182, 183, 148,
+ 158, 172, 174, 173, 175, 176, 177, 152, 161, 164,
+ 165, 0, 0, 0, 0, 0, 0, 186, 188, 189,
+ 190, 192, 193, 191, 0, 0, 0, 0, 0, 195,
+ 197, 198, 199, 200, 201, 0, 0, 0, 0, 0,
+ 0, 0, 203, 205, 206, 209, 210, 207, 211, 208,
+ 0, 0, 0, 0, 0, 0, 0, 0, 213, 215,
+ 216, 217, 218, 222, 219, 220, 221, 0, 0, 0,
+ 0, 0, 0, 0, 0, 414, 416, 418, 417, 423,
+ 419, 420, 421, 422, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 433, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
+ 460, 462, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 469, 471, 472, 473, 475, 476, 474, 477,
+ 478, 479, 480, 0, 0, 0, 0, 0, 492, 494,
+ 495, 496, 497, 498, 224, 223, 230, 239, 237, 245,
+ 246, 249, 247, 248, 250, 251, 267, 268, 269, 270,
+ 271, 294, 295, 296, 301, 302, 242, 303, 304, 307,
+ 305, 306, 309, 310, 311, 324, 282, 283, 285, 286,
+ 312, 327, 276, 278, 328, 334, 335, 336, 243, 293,
+ 348, 349, 277, 343, 263, 238, 272, 325, 331, 313,
+ 0, 0, 352, 244, 225, 262, 317, 226, 240, 241,
+ 273, 274, 350, 315, 319, 320, 227, 353, 297, 323,
+ 264, 281, 329, 330, 333, 342, 275, 346, 344, 345,
+ 287, 292, 321, 322, 288, 289, 314, 338, 265, 266,
+ 252, 254, 255, 256, 257, 258, 354, 355, 356, 298,
+ 299, 300, 308, 357, 358, 0, 0, 0, 316, 290,
+ 464, 367, 371, 369, 368, 372, 370, 0, 0, 375,
+ 376, 231, 232, 233, 234, 235, 236, 318, 332, 347,
+ 379, 380, 291, 359, 0, 0, 0, 0, 0, 0,
+ 339, 340, 341, 465, 284, 279, 337, 261, 228, 229,
+ 280, 381, 383, 382, 384, 385, 386, 253, 260, 377,
+ 378, 259, 387, 388, 389, 392, 391, 390, 393, 394,
+ 395, 396, 397, 406, 0, 410, 411, 0, 0, 412,
+ 398, 404, 399, 400, 401, 403, 405, 402, 424, 426,
+ 425, 428, 429, 430, 431, 427, 447, 448, 449, 450,
+ 451, 452, 453, 454, 455, 456, 457, 458, 463, 481,
+ 482, 483, 486, 484, 485, 487, 488, 489, 490, 499,
+ 500, 501, 502, 503, 326, 351, 366, 466, 467, 373,
+ 374, 360, 361, 0, 0, 0, 365, 407, 408, 409,
+ 364, 362, 363
};
/* YYPGOTO[NTERM-NUM]. */
@@ -1446,39 +1451,39 @@ static const yytype_int16 yypgoto[] =
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
- -184, -184
+ -184, -184, -184
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 13, 14, 24, 201, 15, 25, 375, 16,
- 26, 387, 17, 27, 400, 18, 28, 416, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
- 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 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, 376, 377, 378, 379, 380, 381, 388, 389, 390,
- 391, 392, 417, 418, 419, 420, 421, 422, 423, 424,
- 401, 402, 403, 404, 405, 406, 407, 19, 29, 433,
- 434, 435, 436, 437, 438, 439, 440, 441, 20, 30,
- 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
- 464, 465, 466, 21, 31, 468, 469, 365, 366, 367,
- 368, 22, 32, 480, 481, 482, 483, 484, 485, 486,
- 487, 488, 489, 490, 23, 33, 496, 497, 498, 499,
- 500, 501
+ -1, 1, 13, 14, 24, 202, 15, 25, 377, 16,
+ 26, 389, 17, 27, 402, 18, 28, 418, 203, 204,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 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, 378, 379, 380, 381, 382, 383, 390, 391,
+ 392, 393, 394, 419, 420, 421, 422, 423, 424, 425,
+ 426, 403, 404, 405, 406, 407, 408, 409, 19, 29,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 20,
+ 30, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 21, 31, 470, 471, 367, 368,
+ 369, 370, 22, 32, 482, 483, 484, 485, 486, 487,
+ 488, 489, 490, 491, 492, 23, 33, 498, 499, 500,
+ 501, 502, 503
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1486,55 +1491,56 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint16 yytable[] =
{
- 2, 408, 393, 369, 467, 370, 371, 502, 382, 503,
- 0, 3, 504, 505, 506, 507, 383, 384, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
- 425, 426, 427, 428, 429, 430, 431, 432, 394, 395,
- 508, 4, 491, 492, 493, 494, 495, 5, 470, 471,
- 472, 473, 474, 475, 476, 477, 478, 479, 509, 510,
- 511, 512, 513, 396, 514, 515, 372, 516, 517, 518,
- 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
- 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
- 539, 6, 540, 541, 542, 543, 373, 544, 545, 374,
- 385, 546, 386, 547, 548, 549, 550, 7, 551, 552,
- 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
- 563, 564, 397, 398, 565, 566, 567, 568, 569, 570,
- 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
- 581, 582, 583, 584, 585, 586, 8, 587, 588, 589,
- 590, 591, 592, 593, 594, 595, 596, 399, 597, 598,
- 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
- 609, 610, 611, 612, 613, 614, 615, 616, 617, 618,
- 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
- 629, 630, 409, 9, 410, 411, 412, 413, 414, 631,
- 632, 633, 415, 634, 635, 636, 637, 10, 638, 639,
- 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
- 650, 651, 652, 653, 11, 654, 655, 656, 657, 658,
- 659, 0, 12, 34, 35, 36, 37, 38, 39, 40,
+ 2, 410, 395, 371, 469, 372, 373, 504, 384, 505,
+ 0, 3, 506, 507, 508, 509, 385, 386, 444, 445,
+ 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
+ 427, 428, 429, 430, 431, 432, 433, 434, 396, 397,
+ 510, 4, 493, 494, 495, 496, 497, 5, 472, 473,
+ 474, 475, 476, 477, 478, 479, 480, 481, 511, 512,
+ 513, 514, 515, 398, 516, 517, 374, 518, 519, 520,
+ 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
+ 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
+ 541, 6, 542, 543, 544, 545, 375, 546, 547, 376,
+ 387, 548, 388, 549, 550, 551, 552, 7, 553, 554,
+ 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
+ 565, 566, 399, 400, 567, 568, 569, 570, 571, 572,
+ 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
+ 583, 584, 585, 586, 587, 588, 8, 589, 590, 591,
+ 592, 593, 594, 595, 596, 597, 598, 401, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+ 611, 612, 613, 614, 615, 616, 617, 618, 619, 620,
+ 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
+ 631, 632, 411, 9, 412, 413, 414, 415, 416, 633,
+ 634, 635, 417, 636, 637, 638, 639, 10, 640, 641,
+ 642, 643, 644, 645, 646, 647, 648, 649, 650, 651,
+ 652, 653, 654, 655, 11, 656, 657, 658, 659, 660,
+ 661, 0, 12, 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, 660, 661, 662, 663, 62, 63, 64, 664, 665,
- 666, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 61, 662, 663, 664, 665, 62, 63, 64, 666, 667,
+ 668, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 667, 668, 669, 670, 671, 672, 673, 674,
- 675, 106, 107, 108, 676, 109, 110, 111, 677, 678,
+ 104, 105, 669, 670, 671, 672, 673, 674, 675, 676,
+ 677, 106, 107, 108, 678, 109, 110, 111, 679, 680,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 679, 680, 681, 135, 682, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 683, 684, 685,
- 686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
+ 132, 133, 134, 681, 682, 683, 135, 684, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 685, 686, 687,
+ 688, 689, 690, 691, 692, 693, 694, 695, 696, 697,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 696, 179, 697, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 698, 699,
- 700, 701, 702, 703, 704, 705, 706, 707, 708, 191,
- 192, 193, 194, 195, 196, 709, 710, 711, 712, 713,
- 714, 197, 715, 716, 717, 718, 719, 720, 721, 198,
- 199, 200, 722, 723, 724, 725, 726, 727, 728, 729,
- 730, 731, 732, 733, 734, 735, 736, 737, 738, 739,
- 740, 741, 742, 743, 744, 745, 746, 747, 748, 749
+ 175, 176, 177, 178, 698, 179, 699, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 700, 701,
+ 702, 703, 704, 705, 706, 707, 708, 709, 710, 191,
+ 192, 193, 194, 195, 196, 711, 712, 713, 714, 715,
+ 716, 197, 717, 718, 719, 720, 721, 722, 723, 198,
+ 199, 200, 724, 201, 725, 726, 727, 728, 729, 730,
+ 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
+ 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
+ 751, 752
};
static const yytype_int16 yycheck[] =
@@ -1585,19 +1591,20 @@ static const yytype_int16 yycheck[] =
10, 10, 10, 10, 10, 10, 10, 10, 10, 218,
219, 220, 221, 222, 223, 10, 10, 10, 10, 10,
10, 230, 10, 10, 10, 10, 10, 10, 10, 238,
- 239, 240, 10, 10, 10, 10, 10, 10, 10, 10,
+ 239, 240, 10, 242, 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, 243, 0, 11, 41, 47, 91, 107, 146, 193,
- 207, 224, 232, 244, 245, 248, 251, 254, 257, 449,
- 460, 475, 483, 496, 246, 249, 252, 255, 258, 450,
- 461, 476, 484, 497, 12, 13, 14, 15, 16, 17,
+ 0, 244, 0, 11, 41, 47, 91, 107, 146, 193,
+ 207, 224, 232, 245, 246, 249, 252, 255, 258, 451,
+ 462, 477, 485, 498, 247, 250, 253, 256, 259, 452,
+ 463, 478, 486, 499, 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, 44, 45, 46, 50, 51, 52, 53, 54,
@@ -1614,7 +1621,7 @@ static const yytype_uint16 yystos[] =
184, 185, 186, 187, 188, 189, 190, 191, 192, 194,
196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
206, 218, 219, 220, 221, 222, 223, 230, 238, 239,
- 240, 247, 260, 261, 262, 263, 264, 265, 266, 267,
+ 240, 242, 248, 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,
@@ -1630,21 +1637,22 @@ static const yytype_uint16 yystos[] =
388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
- 418, 419, 420, 421, 422, 479, 480, 481, 482, 40,
- 42, 43, 103, 133, 136, 250, 423, 424, 425, 426,
- 427, 428, 40, 48, 49, 132, 134, 253, 429, 430,
- 431, 432, 433, 40, 76, 77, 101, 160, 161, 195,
- 256, 442, 443, 444, 445, 446, 447, 448, 40, 231,
- 233, 234, 235, 236, 237, 241, 259, 434, 435, 436,
- 437, 438, 439, 440, 441, 92, 93, 94, 95, 96,
- 97, 98, 99, 451, 452, 453, 454, 455, 456, 457,
- 458, 459, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 108, 477, 478,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
- 495, 225, 226, 227, 228, 229, 498, 499, 500, 501,
- 502, 503, 10, 10, 10, 10, 10, 10, 10, 10,
+ 418, 419, 420, 421, 422, 423, 424, 481, 482, 483,
+ 484, 40, 42, 43, 103, 133, 136, 251, 425, 426,
+ 427, 428, 429, 430, 40, 48, 49, 132, 134, 254,
+ 431, 432, 433, 434, 435, 40, 76, 77, 101, 160,
+ 161, 195, 257, 444, 445, 446, 447, 448, 449, 450,
+ 40, 231, 233, 234, 235, 236, 237, 241, 260, 436,
+ 437, 438, 439, 440, 441, 442, 443, 92, 93, 94,
+ 95, 96, 97, 98, 99, 453, 454, 455, 456, 457,
+ 458, 459, 460, 461, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 108,
+ 479, 480, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 497, 225, 226, 227, 228, 229, 500, 501,
+ 502, 503, 504, 505, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
@@ -1668,35 +1676,35 @@ 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, 242, 243, 243, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 245, 246, 246, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 248, 249, 249, 250, 250, 250,
- 250, 250, 250, 251, 252, 252, 253, 253, 253, 253,
- 253, 254, 255, 255, 256, 256, 256, 256, 256, 256,
- 256, 257, 258, 258, 259, 259, 259, 259, 259, 259,
- 259, 259, 260, 261, 262, 263, 264, 265, 266, 267,
+ 0, 243, 244, 244, 245, 245, 245, 245, 245, 245,
+ 245, 245, 245, 245, 246, 247, 247, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 249, 250, 250, 251, 251,
+ 251, 251, 251, 251, 252, 253, 253, 254, 254, 254,
+ 254, 254, 255, 256, 256, 257, 257, 257, 257, 257,
+ 257, 257, 258, 259, 259, 260, 260, 260, 260, 260,
+ 260, 260, 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,
@@ -1715,16 +1723,16 @@ static const yytype_uint16 yyr1[] =
418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
- 448, 449, 450, 450, 451, 451, 451, 451, 451, 451,
- 451, 451, 452, 453, 454, 455, 456, 457, 458, 459,
- 460, 461, 461, 462, 462, 462, 462, 462, 462, 462,
- 462, 462, 462, 462, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 475, 476, 476,
- 477, 478, 479, 480, 481, 482, 483, 484, 484, 485,
- 485, 485, 485, 485, 485, 485, 485, 485, 485, 486,
+ 448, 449, 450, 451, 452, 452, 453, 453, 453, 453,
+ 453, 453, 453, 453, 454, 455, 456, 457, 458, 459,
+ 460, 461, 462, 463, 463, 464, 464, 464, 464, 464,
+ 464, 464, 464, 464, 464, 464, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 478, 479, 480, 481, 482, 483, 484, 485, 486,
+ 486, 487, 487, 487, 487, 487, 487, 487, 487, 487,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
- 497, 497, 498, 498, 498, 498, 498, 499, 500, 501,
- 502, 503
+ 497, 498, 499, 499, 500, 500, 500, 500, 500, 501,
+ 502, 503, 504, 505
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1748,11 +1756,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, 1, 1, 1, 1, 2, 0, 1, 1,
1, 1, 1, 1, 1, 2, 0, 1, 1, 1,
- 1, 1, 1, 1, 2, 0, 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,
+ 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, 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,
@@ -1762,25 +1770,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, 2, 3, 2, 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, 3,
- 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, 3, 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, 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, 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, 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, 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, 1, 1, 1, 1, 2, 2, 2,
- 2, 2
+ 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
};
@@ -2461,10 +2469,10 @@ yyreduce:
{
OUTYY(("\nP(server:)\n"));
}
-#line 2465 "util/configparser.c" /* yacc.c:1646 */
+#line 2473 "util/configparser.c" /* yacc.c:1646 */
break;
- case 184:
+ case 185:
#line 255 "util/configparser.y" /* yacc.c:1646 */
{
struct config_stub* s;
@@ -2476,10 +2484,10 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2480 "util/configparser.c" /* yacc.c:1646 */
+#line 2488 "util/configparser.c" /* yacc.c:1646 */
break;
- case 193:
+ case 194:
#line 272 "util/configparser.y" /* yacc.c:1646 */
{
struct config_stub* s;
@@ -2491,10 +2499,10 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2495 "util/configparser.c" /* yacc.c:1646 */
+#line 2503 "util/configparser.c" /* yacc.c:1646 */
break;
- case 201:
+ case 202:
#line 289 "util/configparser.y" /* yacc.c:1646 */
{
struct config_view* s;
@@ -2508,10 +2516,10 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2512 "util/configparser.c" /* yacc.c:1646 */
+#line 2520 "util/configparser.c" /* yacc.c:1646 */
break;
- case 211:
+ case 212:
#line 308 "util/configparser.y" /* yacc.c:1646 */
{
struct config_auth* s;
@@ -2527,10 +2535,10 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2531 "util/configparser.c" /* yacc.c:1646 */
+#line 2539 "util/configparser.c" /* yacc.c:1646 */
break;
- case 222:
+ case 223:
#line 330 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
@@ -2539,10 +2547,10 @@ yyreduce:
else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2543 "util/configparser.c" /* yacc.c:1646 */
+#line 2551 "util/configparser.c" /* yacc.c:1646 */
break;
- case 223:
+ case 224:
#line 339 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
@@ -2551,10 +2559,10 @@ yyreduce:
else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2555 "util/configparser.c" /* yacc.c:1646 */
+#line 2563 "util/configparser.c" /* yacc.c:1646 */
break;
- case 224:
+ case 225:
#line 348 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
@@ -2565,10 +2573,10 @@ yyreduce:
else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2569 "util/configparser.c" /* yacc.c:1646 */
+#line 2577 "util/configparser.c" /* yacc.c:1646 */
break;
- case 225:
+ case 226:
#line 359 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
@@ -2577,10 +2585,10 @@ yyreduce:
else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2581 "util/configparser.c" /* yacc.c:1646 */
+#line 2589 "util/configparser.c" /* yacc.c:1646 */
break;
- case 226:
+ case 227:
#line 368 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
@@ -2589,10 +2597,10 @@ yyreduce:
else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2593 "util/configparser.c" /* yacc.c:1646 */
+#line 2601 "util/configparser.c" /* yacc.c:1646 */
break;
- case 227:
+ case 228:
#line 377 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
@@ -2601,10 +2609,10 @@ yyreduce:
else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2605 "util/configparser.c" /* yacc.c:1646 */
+#line 2613 "util/configparser.c" /* yacc.c:1646 */
break;
- case 228:
+ case 229:
#line 386 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
@@ -2615,10 +2623,10 @@ yyreduce:
else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2619 "util/configparser.c" /* yacc.c:1646 */
+#line 2627 "util/configparser.c" /* yacc.c:1646 */
break;
- case 229:
+ case 230:
#line 397 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
@@ -2627,10 +2635,10 @@ yyreduce:
else cfg_parser->cfg->port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2631 "util/configparser.c" /* yacc.c:1646 */
+#line 2639 "util/configparser.c" /* yacc.c:1646 */
break;
- case 230:
+ case 231:
#line 406 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
@@ -2641,10 +2649,10 @@ yyreduce:
OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
#endif
}
-#line 2645 "util/configparser.c" /* yacc.c:1646 */
+#line 2653 "util/configparser.c" /* yacc.c:1646 */
break;
- case 231:
+ case 232:
#line 417 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
@@ -2656,10 +2664,10 @@ yyreduce:
OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
#endif
}
-#line 2660 "util/configparser.c" /* yacc.c:1646 */
+#line 2668 "util/configparser.c" /* yacc.c:1646 */
break;
- case 232:
+ case 233:
#line 430 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
@@ -2674,10 +2682,10 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2678 "util/configparser.c" /* yacc.c:1646 */
+#line 2686 "util/configparser.c" /* yacc.c:1646 */
break;
- case 233:
+ case 234:
#line 445 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
@@ -2688,10 +2696,10 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2692 "util/configparser.c" /* yacc.c:1646 */
+#line 2700 "util/configparser.c" /* yacc.c:1646 */
break;
- case 234:
+ case 235:
#line 456 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
@@ -2708,10 +2716,10 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2712 "util/configparser.c" /* yacc.c:1646 */
+#line 2720 "util/configparser.c" /* yacc.c:1646 */
break;
- case 235:
+ case 236:
#line 473 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
@@ -2728,10 +2736,10 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2732 "util/configparser.c" /* yacc.c:1646 */
+#line 2740 "util/configparser.c" /* yacc.c:1646 */
break;
- case 236:
+ case 237:
#line 490 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
@@ -2744,10 +2752,10 @@ yyreduce:
else
cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
}
-#line 2748 "util/configparser.c" /* yacc.c:1646 */
+#line 2756 "util/configparser.c" /* yacc.c:1646 */
break;
- case 237:
+ case 238:
#line 503 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
@@ -2762,10 +2770,10 @@ yyreduce:
cfg_parser->cfg->out_ifs[
cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
}
-#line 2766 "util/configparser.c" /* yacc.c:1646 */
+#line 2774 "util/configparser.c" /* yacc.c:1646 */
break;
- case 238:
+ case 239:
#line 518 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
@@ -2774,10 +2782,10 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2778 "util/configparser.c" /* yacc.c:1646 */
+#line 2786 "util/configparser.c" /* yacc.c:1646 */
break;
- case 239:
+ case 240:
#line 527 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
@@ -2786,10 +2794,10 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 2790 "util/configparser.c" /* yacc.c:1646 */
+#line 2798 "util/configparser.c" /* yacc.c:1646 */
break;
- case 240:
+ case 241:
#line 536 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
@@ -2798,10 +2806,10 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 2802 "util/configparser.c" /* yacc.c:1646 */
+#line 2810 "util/configparser.c" /* yacc.c:1646 */
break;
- case 241:
+ case 242:
#line 545 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
@@ -2810,10 +2818,10 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2814 "util/configparser.c" /* yacc.c:1646 */
+#line 2822 "util/configparser.c" /* yacc.c:1646 */
break;
- case 242:
+ case 243:
#line 554 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
@@ -2822,10 +2830,10 @@ yyreduce:
else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2826 "util/configparser.c" /* yacc.c:1646 */
+#line 2834 "util/configparser.c" /* yacc.c:1646 */
break;
- case 243:
+ case 244:
#line 563 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
@@ -2834,10 +2842,10 @@ yyreduce:
else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2838 "util/configparser.c" /* yacc.c:1646 */
+#line 2846 "util/configparser.c" /* yacc.c:1646 */
break;
- case 244:
+ case 245:
#line 572 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
@@ -2846,10 +2854,10 @@ yyreduce:
else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2850 "util/configparser.c" /* yacc.c:1646 */
+#line 2858 "util/configparser.c" /* yacc.c:1646 */
break;
- case 245:
+ case 246:
#line 581 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
@@ -2858,10 +2866,10 @@ yyreduce:
else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2862 "util/configparser.c" /* yacc.c:1646 */
+#line 2870 "util/configparser.c" /* yacc.c:1646 */
break;
- case 246:
+ case 247:
#line 590 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
@@ -2870,10 +2878,10 @@ yyreduce:
else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2874 "util/configparser.c" /* yacc.c:1646 */
+#line 2882 "util/configparser.c" /* yacc.c:1646 */
break;
- case 247:
+ case 248:
#line 599 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
@@ -2882,10 +2890,10 @@ yyreduce:
else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2886 "util/configparser.c" /* yacc.c:1646 */
+#line 2894 "util/configparser.c" /* yacc.c:1646 */
break;
- case 248:
+ case 249:
#line 608 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
@@ -2894,10 +2902,10 @@ yyreduce:
else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2898 "util/configparser.c" /* yacc.c:1646 */
+#line 2906 "util/configparser.c" /* yacc.c:1646 */
break;
- case 249:
+ case 250:
#line 617 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
@@ -2906,10 +2914,10 @@ yyreduce:
else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2910 "util/configparser.c" /* yacc.c:1646 */
+#line 2918 "util/configparser.c" /* yacc.c:1646 */
break;
- case 250:
+ case 251:
#line 626 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
@@ -2918,10 +2926,10 @@ yyreduce:
else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2922 "util/configparser.c" /* yacc.c:1646 */
+#line 2930 "util/configparser.c" /* yacc.c:1646 */
break;
- case 251:
+ case 252:
#line 635 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
@@ -2930,10 +2938,10 @@ yyreduce:
else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2934 "util/configparser.c" /* yacc.c:1646 */
+#line 2942 "util/configparser.c" /* yacc.c:1646 */
break;
- case 252:
+ case 253:
#line 644 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
@@ -2942,10 +2950,10 @@ yyreduce:
else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2946 "util/configparser.c" /* yacc.c:1646 */
+#line 2954 "util/configparser.c" /* yacc.c:1646 */
break;
- case 253:
+ case 254:
#line 653 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
@@ -2954,30 +2962,30 @@ yyreduce:
else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2958 "util/configparser.c" /* yacc.c:1646 */
+#line 2966 "util/configparser.c" /* yacc.c:1646 */
break;
- case 254:
+ case 255:
#line 662 "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 2968 "util/configparser.c" /* yacc.c:1646 */
+#line 2976 "util/configparser.c" /* yacc.c:1646 */
break;
- case 255:
+ case 256:
#line 669 "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 2978 "util/configparser.c" /* yacc.c:1646 */
+#line 2986 "util/configparser.c" /* yacc.c:1646 */
break;
- case 256:
+ case 257:
#line 676 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
@@ -2986,32 +2994,44 @@ yyreduce:
else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2990 "util/configparser.c" /* yacc.c:1646 */
+#line 2998 "util/configparser.c" /* yacc.c:1646 */
break;
- case 257:
+ case 258:
#line 685 "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 3000 "util/configparser.c" /* yacc.c:1646 */
+#line 3008 "util/configparser.c" /* yacc.c:1646 */
break;
- case 258:
+ case 259:
#line 692 "util/configparser.y" /* yacc.c:1646 */
{
- OUTYY(("P(server_additional_tls_port:%s)\n", (yyvsp[0].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->additional_tls_port,
+ OUTYY(("P(server_tls_win_cert:%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->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ }
+#line 3020 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 260:
+#line 701 "util/configparser.y" /* yacc.c:1646 */
+ {
+ OUTYY(("P(server_tls_additional_ports:%s)\n", (yyvsp[0].str)));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_ports,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 3011 "util/configparser.c" /* yacc.c:1646 */
+#line 3031 "util/configparser.c" /* yacc.c:1646 */
break;
- case 259:
-#line 700 "util/configparser.y" /* yacc.c:1646 */
+ case 261:
+#line 709 "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)
@@ -3019,11 +3039,11 @@ yyreduce:
else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3023 "util/configparser.c" /* yacc.c:1646 */
+#line 3043 "util/configparser.c" /* yacc.c:1646 */
break;
- case 260:
-#line 709 "util/configparser.y" /* yacc.c:1646 */
+ case 262:
+#line 718 "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)
@@ -3031,11 +3051,11 @@ yyreduce:
else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3035 "util/configparser.c" /* yacc.c:1646 */
+#line 3055 "util/configparser.c" /* yacc.c:1646 */
break;
- case 261:
-#line 718 "util/configparser.y" /* yacc.c:1646 */
+ case 263:
+#line 727 "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)
@@ -3048,11 +3068,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3052 "util/configparser.c" /* yacc.c:1646 */
+#line 3072 "util/configparser.c" /* yacc.c:1646 */
break;
- case 262:
-#line 732 "util/configparser.y" /* yacc.c:1646 */
+ case 264:
+#line 741 "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)
@@ -3060,11 +3080,11 @@ yyreduce:
else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3064 "util/configparser.c" /* yacc.c:1646 */
+#line 3084 "util/configparser.c" /* yacc.c:1646 */
break;
- case 263:
-#line 741 "util/configparser.y" /* yacc.c:1646 */
+ case 265:
+#line 750 "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)
@@ -3072,11 +3092,11 @@ yyreduce:
else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3076 "util/configparser.c" /* yacc.c:1646 */
+#line 3096 "util/configparser.c" /* yacc.c:1646 */
break;
- case 264:
-#line 750 "util/configparser.y" /* yacc.c:1646 */
+ case 266:
+#line 759 "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)
@@ -3084,31 +3104,31 @@ yyreduce:
else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3088 "util/configparser.c" /* yacc.c:1646 */
+#line 3108 "util/configparser.c" /* yacc.c:1646 */
break;
- case 265:
-#line 759 "util/configparser.y" /* yacc.c:1646 */
+ case 267:
+#line 768 "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 3098 "util/configparser.c" /* yacc.c:1646 */
+#line 3118 "util/configparser.c" /* yacc.c:1646 */
break;
- case 266:
-#line 766 "util/configparser.y" /* yacc.c:1646 */
+ case 268:
+#line 775 "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 3108 "util/configparser.c" /* yacc.c:1646 */
+#line 3128 "util/configparser.c" /* yacc.c:1646 */
break;
- case 267:
-#line 773 "util/configparser.y" /* yacc.c:1646 */
+ case 269:
+#line 782 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->directory);
@@ -3133,105 +3153,105 @@ yyreduce:
}
}
}
-#line 3137 "util/configparser.c" /* yacc.c:1646 */
+#line 3157 "util/configparser.c" /* yacc.c:1646 */
break;
- case 268:
-#line 799 "util/configparser.y" /* yacc.c:1646 */
+ case 270:
+#line 808 "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 3148 "util/configparser.c" /* yacc.c:1646 */
+#line 3168 "util/configparser.c" /* yacc.c:1646 */
break;
- case 269:
-#line 807 "util/configparser.y" /* yacc.c:1646 */
+ case 271:
+#line 816 "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 3158 "util/configparser.c" /* yacc.c:1646 */
+#line 3178 "util/configparser.c" /* yacc.c:1646 */
break;
- case 270:
-#line 814 "util/configparser.y" /* yacc.c:1646 */
+ case 272:
+#line 823 "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 3168 "util/configparser.c" /* yacc.c:1646 */
+#line 3188 "util/configparser.c" /* yacc.c:1646 */
break;
- case 271:
-#line 821 "util/configparser.y" /* yacc.c:1646 */
+ case 273:
+#line 830 "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 3178 "util/configparser.c" /* yacc.c:1646 */
+#line 3198 "util/configparser.c" /* yacc.c:1646 */
break;
- case 272:
-#line 828 "util/configparser.y" /* yacc.c:1646 */
+ case 274:
+#line 837 "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 3188 "util/configparser.c" /* yacc.c:1646 */
+#line 3208 "util/configparser.c" /* yacc.c:1646 */
break;
- case 273:
-#line 835 "util/configparser.y" /* yacc.c:1646 */
+ case 275:
+#line 844 "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 3199 "util/configparser.c" /* yacc.c:1646 */
+#line 3219 "util/configparser.c" /* yacc.c:1646 */
break;
- case 274:
-#line 843 "util/configparser.y" /* yacc.c:1646 */
+ case 276:
+#line 852 "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 3210 "util/configparser.c" /* yacc.c:1646 */
+#line 3230 "util/configparser.c" /* yacc.c:1646 */
break;
- case 275:
-#line 851 "util/configparser.y" /* yacc.c:1646 */
+ case 277:
+#line 860 "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 3221 "util/configparser.c" /* yacc.c:1646 */
+#line 3241 "util/configparser.c" /* yacc.c:1646 */
break;
- case 276:
-#line 859 "util/configparser.y" /* yacc.c:1646 */
+ case 278:
+#line 868 "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 3231 "util/configparser.c" /* yacc.c:1646 */
+#line 3251 "util/configparser.c" /* yacc.c:1646 */
break;
- case 277:
-#line 866 "util/configparser.y" /* yacc.c:1646 */
+ case 279:
+#line 875 "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)
@@ -3241,11 +3261,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3245 "util/configparser.c" /* yacc.c:1646 */
+#line 3265 "util/configparser.c" /* yacc.c:1646 */
break;
- case 278:
-#line 877 "util/configparser.y" /* yacc.c:1646 */
+ case 280:
+#line 886 "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)
@@ -3255,21 +3275,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3259 "util/configparser.c" /* yacc.c:1646 */
+#line 3279 "util/configparser.c" /* yacc.c:1646 */
break;
- case 279:
-#line 888 "util/configparser.y" /* yacc.c:1646 */
+ case 281:
+#line 897 "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 3269 "util/configparser.c" /* yacc.c:1646 */
+#line 3289 "util/configparser.c" /* yacc.c:1646 */
break;
- case 280:
-#line 895 "util/configparser.y" /* yacc.c:1646 */
+ case 282:
+#line 904 "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)
@@ -3277,11 +3297,11 @@ yyreduce:
else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3281 "util/configparser.c" /* yacc.c:1646 */
+#line 3301 "util/configparser.c" /* yacc.c:1646 */
break;
- case 281:
-#line 904 "util/configparser.y" /* yacc.c:1646 */
+ case 283:
+#line 913 "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)
@@ -3289,11 +3309,11 @@ yyreduce:
else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3293 "util/configparser.c" /* yacc.c:1646 */
+#line 3313 "util/configparser.c" /* yacc.c:1646 */
break;
- case 282:
-#line 913 "util/configparser.y" /* yacc.c:1646 */
+ case 284:
+#line 922 "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)
@@ -3301,53 +3321,53 @@ yyreduce:
else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3305 "util/configparser.c" /* yacc.c:1646 */
+#line 3325 "util/configparser.c" /* yacc.c:1646 */
break;
- case 283:
-#line 922 "util/configparser.y" /* yacc.c:1646 */
+ case 285:
+#line 931 "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 3315 "util/configparser.c" /* yacc.c:1646 */
+#line 3335 "util/configparser.c" /* yacc.c:1646 */
break;
- case 284:
-#line 929 "util/configparser.y" /* yacc.c:1646 */
+ case 286:
+#line 938 "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 3325 "util/configparser.c" /* yacc.c:1646 */
+#line 3345 "util/configparser.c" /* yacc.c:1646 */
break;
- case 285:
-#line 936 "util/configparser.y" /* yacc.c:1646 */
+ case 287:
+#line 945 "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 3336 "util/configparser.c" /* yacc.c:1646 */
+#line 3356 "util/configparser.c" /* yacc.c:1646 */
break;
- case 286:
-#line 944 "util/configparser.y" /* yacc.c:1646 */
+ case 288:
+#line 953 "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 3347 "util/configparser.c" /* yacc.c:1646 */
+#line 3367 "util/configparser.c" /* yacc.c:1646 */
break;
- case 287:
-#line 952 "util/configparser.y" /* yacc.c:1646 */
+ case 289:
+#line 961 "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)
@@ -3356,11 +3376,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3360 "util/configparser.c" /* yacc.c:1646 */
+#line 3380 "util/configparser.c" /* yacc.c:1646 */
break;
- case 288:
-#line 962 "util/configparser.y" /* yacc.c:1646 */
+ case 290:
+#line 971 "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)
@@ -3369,11 +3389,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3373 "util/configparser.c" /* yacc.c:1646 */
+#line 3393 "util/configparser.c" /* yacc.c:1646 */
break;
- case 289:
-#line 972 "util/configparser.y" /* yacc.c:1646 */
+ case 291:
+#line 981 "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)
@@ -3382,11 +3402,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3386 "util/configparser.c" /* yacc.c:1646 */
+#line 3406 "util/configparser.c" /* yacc.c:1646 */
break;
- case 290:
-#line 982 "util/configparser.y" /* yacc.c:1646 */
+ case 292:
+#line 991 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3398,11 +3418,11 @@ yyreduce:
else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3402 "util/configparser.c" /* yacc.c:1646 */
+#line 3422 "util/configparser.c" /* yacc.c:1646 */
break;
- case 291:
-#line 995 "util/configparser.y" /* yacc.c:1646 */
+ case 293:
+#line 1004 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3412,22 +3432,22 @@ yyreduce:
else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3416 "util/configparser.c" /* yacc.c:1646 */
+#line 3436 "util/configparser.c" /* yacc.c:1646 */
break;
- case 292:
-#line 1006 "util/configparser.y" /* yacc.c:1646 */
+ case 294:
+#line 1015 "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 3427 "util/configparser.c" /* yacc.c:1646 */
+#line 3447 "util/configparser.c" /* yacc.c:1646 */
break;
- case 293:
-#line 1014 "util/configparser.y" /* yacc.c:1646 */
+ case 295:
+#line 1023 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3439,11 +3459,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3443 "util/configparser.c" /* yacc.c:1646 */
+#line 3463 "util/configparser.c" /* yacc.c:1646 */
break;
- case 294:
-#line 1027 "util/configparser.y" /* yacc.c:1646 */
+ case 296:
+#line 1036 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3451,11 +3471,11 @@ yyreduce:
else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3455 "util/configparser.c" /* yacc.c:1646 */
+#line 3475 "util/configparser.c" /* yacc.c:1646 */
break;
- case 295:
-#line 1036 "util/configparser.y" /* yacc.c:1646 */
+ case 297:
+#line 1045 "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)
@@ -3463,11 +3483,11 @@ yyreduce:
else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3467 "util/configparser.c" /* yacc.c:1646 */
+#line 3487 "util/configparser.c" /* yacc.c:1646 */
break;
- case 296:
-#line 1045 "util/configparser.y" /* yacc.c:1646 */
+ case 298:
+#line 1054 "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)
@@ -3475,11 +3495,11 @@ yyreduce:
else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3479 "util/configparser.c" /* yacc.c:1646 */
+#line 3499 "util/configparser.c" /* yacc.c:1646 */
break;
- case 297:
-#line 1054 "util/configparser.y" /* yacc.c:1646 */
+ case 299:
+#line 1063 "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)
@@ -3488,11 +3508,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3492 "util/configparser.c" /* yacc.c:1646 */
+#line 3512 "util/configparser.c" /* yacc.c:1646 */
break;
- case 298:
-#line 1064 "util/configparser.y" /* yacc.c:1646 */
+ case 300:
+#line 1073 "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)
@@ -3501,22 +3521,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3505 "util/configparser.c" /* yacc.c:1646 */
+#line 3525 "util/configparser.c" /* yacc.c:1646 */
break;
- case 299:
-#line 1074 "util/configparser.y" /* yacc.c:1646 */
+ case 301:
+#line 1083 "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 3516 "util/configparser.c" /* yacc.c:1646 */
+#line 3536 "util/configparser.c" /* yacc.c:1646 */
break;
- case 300:
-#line 1082 "util/configparser.y" /* yacc.c:1646 */
+ case 302:
+#line 1091 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3528,11 +3548,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3532 "util/configparser.c" /* yacc.c:1646 */
+#line 3552 "util/configparser.c" /* yacc.c:1646 */
break;
- case 301:
-#line 1095 "util/configparser.y" /* yacc.c:1646 */
+ case 303:
+#line 1104 "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)
@@ -3540,22 +3560,22 @@ yyreduce:
else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3544 "util/configparser.c" /* yacc.c:1646 */
+#line 3564 "util/configparser.c" /* yacc.c:1646 */
break;
- case 302:
-#line 1104 "util/configparser.y" /* yacc.c:1646 */
+ case 304:
+#line 1113 "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 3555 "util/configparser.c" /* yacc.c:1646 */
+#line 3575 "util/configparser.c" /* yacc.c:1646 */
break;
- case 303:
-#line 1112 "util/configparser.y" /* yacc.c:1646 */
+ case 305:
+#line 1121 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3563,22 +3583,22 @@ yyreduce:
else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3567 "util/configparser.c" /* yacc.c:1646 */
+#line 3587 "util/configparser.c" /* yacc.c:1646 */
break;
- case 304:
-#line 1121 "util/configparser.y" /* yacc.c:1646 */
+ case 306:
+#line 1130 "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 3578 "util/configparser.c" /* yacc.c:1646 */
+#line 3598 "util/configparser.c" /* yacc.c:1646 */
break;
- case 305:
-#line 1129 "util/configparser.y" /* yacc.c:1646 */
+ case 307:
+#line 1138 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3590,11 +3610,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3594 "util/configparser.c" /* yacc.c:1646 */
+#line 3614 "util/configparser.c" /* yacc.c:1646 */
break;
- case 306:
-#line 1142 "util/configparser.y" /* yacc.c:1646 */
+ case 308:
+#line 1151 "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)
@@ -3602,21 +3622,21 @@ yyreduce:
else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3606 "util/configparser.c" /* yacc.c:1646 */
+#line 3626 "util/configparser.c" /* yacc.c:1646 */
break;
- case 307:
-#line 1151 "util/configparser.y" /* yacc.c:1646 */
+ case 309:
+#line 1160 "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 3616 "util/configparser.c" /* yacc.c:1646 */
+#line 3636 "util/configparser.c" /* yacc.c:1646 */
break;
- case 308:
-#line 1158 "util/configparser.y" /* yacc.c:1646 */
+ case 310:
+#line 1167 "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)
@@ -3625,11 +3645,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3629 "util/configparser.c" /* yacc.c:1646 */
+#line 3649 "util/configparser.c" /* yacc.c:1646 */
break;
- case 309:
-#line 1168 "util/configparser.y" /* yacc.c:1646 */
+ case 311:
+#line 1177 "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)
@@ -3638,11 +3658,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3642 "util/configparser.c" /* yacc.c:1646 */
+#line 3662 "util/configparser.c" /* yacc.c:1646 */
break;
- case 310:
-#line 1178 "util/configparser.y" /* yacc.c:1646 */
+ case 312:
+#line 1187 "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)
@@ -3651,11 +3671,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3655 "util/configparser.c" /* yacc.c:1646 */
+#line 3675 "util/configparser.c" /* yacc.c:1646 */
break;
- case 311:
-#line 1188 "util/configparser.y" /* yacc.c:1646 */
+ case 313:
+#line 1197 "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)
@@ -3664,11 +3684,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3668 "util/configparser.c" /* yacc.c:1646 */
+#line 3688 "util/configparser.c" /* yacc.c:1646 */
break;
- case 312:
-#line 1198 "util/configparser.y" /* yacc.c:1646 */
+ case 314:
+#line 1207 "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)
@@ -3677,11 +3697,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3681 "util/configparser.c" /* yacc.c:1646 */
+#line 3701 "util/configparser.c" /* yacc.c:1646 */
break;
- case 313:
-#line 1208 "util/configparser.y" /* yacc.c:1646 */
+ case 315:
+#line 1217 "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)
@@ -3690,11 +3710,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3694 "util/configparser.c" /* yacc.c:1646 */
+#line 3714 "util/configparser.c" /* yacc.c:1646 */
break;
- case 314:
-#line 1218 "util/configparser.y" /* yacc.c:1646 */
+ case 316:
+#line 1227 "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)
@@ -3703,11 +3723,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3707 "util/configparser.c" /* yacc.c:1646 */
+#line 3727 "util/configparser.c" /* yacc.c:1646 */
break;
- case 315:
-#line 1228 "util/configparser.y" /* yacc.c:1646 */
+ case 317:
+#line 1237 "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)
@@ -3716,41 +3736,41 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3720 "util/configparser.c" /* yacc.c:1646 */
+#line 3740 "util/configparser.c" /* yacc.c:1646 */
break;
- case 316:
-#line 1238 "util/configparser.y" /* yacc.c:1646 */
+ case 318:
+#line 1247 "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 3730 "util/configparser.c" /* yacc.c:1646 */
+#line 3750 "util/configparser.c" /* yacc.c:1646 */
break;
- case 317:
-#line 1245 "util/configparser.y" /* yacc.c:1646 */
+ case 319:
+#line 1254 "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 3740 "util/configparser.c" /* yacc.c:1646 */
+#line 3760 "util/configparser.c" /* yacc.c:1646 */
break;
- case 318:
-#line 1252 "util/configparser.y" /* yacc.c:1646 */
+ case 320:
+#line 1261 "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 3750 "util/configparser.c" /* yacc.c:1646 */
+#line 3770 "util/configparser.c" /* yacc.c:1646 */
break;
- case 319:
-#line 1259 "util/configparser.y" /* yacc.c:1646 */
+ case 321:
+#line 1268 "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)
@@ -3758,11 +3778,11 @@ yyreduce:
else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3762 "util/configparser.c" /* yacc.c:1646 */
+#line 3782 "util/configparser.c" /* yacc.c:1646 */
break;
- case 320:
-#line 1268 "util/configparser.y" /* yacc.c:1646 */
+ case 322:
+#line 1277 "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)
@@ -3770,11 +3790,11 @@ yyreduce:
else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3774 "util/configparser.c" /* yacc.c:1646 */
+#line 3794 "util/configparser.c" /* yacc.c:1646 */
break;
- case 321:
-#line 1277 "util/configparser.y" /* yacc.c:1646 */
+ case 323:
+#line 1286 "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)
@@ -3782,21 +3802,21 @@ yyreduce:
else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3786 "util/configparser.c" /* yacc.c:1646 */
+#line 3806 "util/configparser.c" /* yacc.c:1646 */
break;
- case 322:
-#line 1286 "util/configparser.y" /* yacc.c:1646 */
+ case 324:
+#line 1295 "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 3796 "util/configparser.c" /* yacc.c:1646 */
+#line 3816 "util/configparser.c" /* yacc.c:1646 */
break;
- case 323:
-#line 1293 "util/configparser.y" /* yacc.c:1646 */
+ case 325:
+#line 1302 "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)
@@ -3805,41 +3825,42 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3809 "util/configparser.c" /* yacc.c:1646 */
+#line 3829 "util/configparser.c" /* yacc.c:1646 */
break;
- case 324:
-#line 1303 "util/configparser.y" /* yacc.c:1646 */
+ case 326:
+#line 1312 "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 &&
strcmp((yyvsp[0].str), "deny_non_local")!=0 &&
strcmp((yyvsp[0].str), "refuse_non_local")!=0 &&
+ strcmp((yyvsp[0].str), "allow_setrd")!=0 &&
strcmp((yyvsp[0].str), "allow")!=0 &&
strcmp((yyvsp[0].str), "allow_snoop")!=0) {
yyerror("expected deny, refuse, deny_non_local, "
- "refuse_non_local, allow or allow_snoop "
- "in access control action");
+ "refuse_non_local, allow, allow_setrd or "
+ "allow_snoop in access control action");
} else {
if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding acl");
}
}
-#line 3829 "util/configparser.c" /* yacc.c:1646 */
+#line 3850 "util/configparser.c" /* yacc.c:1646 */
break;
- case 325:
-#line 1320 "util/configparser.y" /* yacc.c:1646 */
+ case 327:
+#line 1330 "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 3839 "util/configparser.c" /* yacc.c:1646 */
+#line 3860 "util/configparser.c" /* yacc.c:1646 */
break;
- case 326:
-#line 1327 "util/configparser.y" /* yacc.c:1646 */
+ case 328:
+#line 1337 "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) {
@@ -3856,11 +3877,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3860 "util/configparser.c" /* yacc.c:1646 */
+#line 3881 "util/configparser.c" /* yacc.c:1646 */
break;
- case 327:
-#line 1345 "util/configparser.y" /* yacc.c:1646 */
+ case 329:
+#line 1355 "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) {
@@ -3872,11 +3893,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3876 "util/configparser.c" /* yacc.c:1646 */
+#line 3897 "util/configparser.c" /* yacc.c:1646 */
break;
- case 328:
-#line 1358 "util/configparser.y" /* yacc.c:1646 */
+ case 330:
+#line 1368 "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) {
@@ -3888,11 +3909,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3892 "util/configparser.c" /* yacc.c:1646 */
+#line 3913 "util/configparser.c" /* yacc.c:1646 */
break;
- case 329:
-#line 1371 "util/configparser.y" /* yacc.c:1646 */
+ case 331:
+#line 1381 "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)
@@ -3900,11 +3921,11 @@ yyreduce:
else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3904 "util/configparser.c" /* yacc.c:1646 */
+#line 3925 "util/configparser.c" /* yacc.c:1646 */
break;
- case 330:
-#line 1380 "util/configparser.y" /* yacc.c:1646 */
+ case 332:
+#line 1390 "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)
@@ -3912,11 +3933,11 @@ yyreduce:
else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3916 "util/configparser.c" /* yacc.c:1646 */
+#line 3937 "util/configparser.c" /* yacc.c:1646 */
break;
- case 331:
-#line 1389 "util/configparser.y" /* yacc.c:1646 */
+ case 333:
+#line 1399 "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)
@@ -3924,11 +3945,11 @@ yyreduce:
else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3928 "util/configparser.c" /* yacc.c:1646 */
+#line 3949 "util/configparser.c" /* yacc.c:1646 */
break;
- case 332:
-#line 1398 "util/configparser.y" /* yacc.c:1646 */
+ case 334:
+#line 1408 "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)
@@ -3936,11 +3957,11 @@ yyreduce:
else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3940 "util/configparser.c" /* yacc.c:1646 */
+#line 3961 "util/configparser.c" /* yacc.c:1646 */
break;
- case 333:
-#line 1407 "util/configparser.y" /* yacc.c:1646 */
+ case 335:
+#line 1417 "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)
@@ -3949,11 +3970,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3953 "util/configparser.c" /* yacc.c:1646 */
+#line 3974 "util/configparser.c" /* yacc.c:1646 */
break;
- case 334:
-#line 1417 "util/configparser.y" /* yacc.c:1646 */
+ case 336:
+#line 1427 "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)
@@ -3962,11 +3983,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3966 "util/configparser.c" /* yacc.c:1646 */
+#line 3987 "util/configparser.c" /* yacc.c:1646 */
break;
- case 335:
-#line 1427 "util/configparser.y" /* yacc.c:1646 */
+ case 337:
+#line 1437 "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)
@@ -3976,11 +3997,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3980 "util/configparser.c" /* yacc.c:1646 */
+#line 4001 "util/configparser.c" /* yacc.c:1646 */
break;
- case 336:
-#line 1438 "util/configparser.y" /* yacc.c:1646 */
+ case 338:
+#line 1448 "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)
@@ -3988,11 +4009,11 @@ yyreduce:
else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3992 "util/configparser.c" /* yacc.c:1646 */
+#line 4013 "util/configparser.c" /* yacc.c:1646 */
break;
- case 337:
-#line 1447 "util/configparser.y" /* yacc.c:1646 */
+ case 339:
+#line 1457 "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)
@@ -4000,11 +4021,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4004 "util/configparser.c" /* yacc.c:1646 */
+#line 4025 "util/configparser.c" /* yacc.c:1646 */
break;
- case 338:
-#line 1456 "util/configparser.y" /* yacc.c:1646 */
+ case 340:
+#line 1466 "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)
@@ -4016,11 +4037,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 4020 "util/configparser.c" /* yacc.c:1646 */
+#line 4041 "util/configparser.c" /* yacc.c:1646 */
break;
- case 339:
-#line 1469 "util/configparser.y" /* yacc.c:1646 */
+ case 341:
+#line 1479 "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)
@@ -4032,11 +4053,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 4036 "util/configparser.c" /* yacc.c:1646 */
+#line 4057 "util/configparser.c" /* yacc.c:1646 */
break;
- case 340:
-#line 1482 "util/configparser.y" /* yacc.c:1646 */
+ case 342:
+#line 1492 "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)
@@ -4044,21 +4065,21 @@ yyreduce:
else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4048 "util/configparser.c" /* yacc.c:1646 */
+#line 4069 "util/configparser.c" /* yacc.c:1646 */
break;
- case 341:
-#line 1491 "util/configparser.y" /* yacc.c:1646 */
+ case 343:
+#line 1501 "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 4058 "util/configparser.c" /* yacc.c:1646 */
+#line 4079 "util/configparser.c" /* yacc.c:1646 */
break;
- case 342:
-#line 1498 "util/configparser.y" /* yacc.c:1646 */
+ case 344:
+#line 1508 "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)
@@ -4066,11 +4087,11 @@ yyreduce:
else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4070 "util/configparser.c" /* yacc.c:1646 */
+#line 4091 "util/configparser.c" /* yacc.c:1646 */
break;
- case 343:
-#line 1507 "util/configparser.y" /* yacc.c:1646 */
+ case 345:
+#line 1517 "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)
@@ -4078,11 +4099,11 @@ yyreduce:
else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4082 "util/configparser.c" /* yacc.c:1646 */
+#line 4103 "util/configparser.c" /* yacc.c:1646 */
break;
- case 344:
-#line 1516 "util/configparser.y" /* yacc.c:1646 */
+ case 346:
+#line 1526 "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)
@@ -4090,11 +4111,11 @@ yyreduce:
else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4094 "util/configparser.c" /* yacc.c:1646 */
+#line 4115 "util/configparser.c" /* yacc.c:1646 */
break;
- case 345:
-#line 1525 "util/configparser.y" /* yacc.c:1646 */
+ case 347:
+#line 1535 "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)
@@ -4103,22 +4124,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4107 "util/configparser.c" /* yacc.c:1646 */
+#line 4128 "util/configparser.c" /* yacc.c:1646 */
break;
- case 346:
-#line 1534 "util/configparser.y" /* yacc.c:1646 */
+ case 348:
+#line 1544 "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 4118 "util/configparser.c" /* yacc.c:1646 */
+#line 4139 "util/configparser.c" /* yacc.c:1646 */
break;
- case 347:
-#line 1542 "util/configparser.y" /* yacc.c:1646 */
+ case 349:
+#line 1552 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4130,22 +4151,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4134 "util/configparser.c" /* yacc.c:1646 */
+#line 4155 "util/configparser.c" /* yacc.c:1646 */
break;
- case 348:
-#line 1555 "util/configparser.y" /* yacc.c:1646 */
+ case 350:
+#line 1565 "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 4145 "util/configparser.c" /* yacc.c:1646 */
+#line 4166 "util/configparser.c" /* yacc.c:1646 */
break;
- case 349:
-#line 1563 "util/configparser.y" /* yacc.c:1646 */
+ case 351:
+#line 1573 "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 &&
@@ -4173,21 +4194,21 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 4177 "util/configparser.c" /* yacc.c:1646 */
+#line 4198 "util/configparser.c" /* yacc.c:1646 */
break;
- case 350:
-#line 1592 "util/configparser.y" /* yacc.c:1646 */
+ case 352:
+#line 1602 "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 4187 "util/configparser.c" /* yacc.c:1646 */
+#line 4208 "util/configparser.c" /* yacc.c:1646 */
break;
- case 351:
-#line 1599 "util/configparser.y" /* yacc.c:1646 */
+ case 353:
+#line 1609 "util/configparser.y" /* yacc.c:1646 */
{
char* ptr;
OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -4201,11 +4222,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 4205 "util/configparser.c" /* yacc.c:1646 */
+#line 4226 "util/configparser.c" /* yacc.c:1646 */
break;
- case 352:
-#line 1614 "util/configparser.y" /* yacc.c:1646 */
+ case 354:
+#line 1624 "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)
@@ -4214,11 +4235,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4218 "util/configparser.c" /* yacc.c:1646 */
+#line 4239 "util/configparser.c" /* yacc.c:1646 */
break;
- case 353:
-#line 1624 "util/configparser.y" /* yacc.c:1646 */
+ case 355:
+#line 1634 "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)
@@ -4227,31 +4248,31 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4231 "util/configparser.c" /* yacc.c:1646 */
+#line 4252 "util/configparser.c" /* yacc.c:1646 */
break;
- case 354:
-#line 1634 "util/configparser.y" /* yacc.c:1646 */
+ case 356:
+#line 1644 "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 4241 "util/configparser.c" /* yacc.c:1646 */
+#line 4262 "util/configparser.c" /* yacc.c:1646 */
break;
- case 355:
-#line 1641 "util/configparser.y" /* yacc.c:1646 */
+ case 357:
+#line 1651 "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 4251 "util/configparser.c" /* yacc.c:1646 */
+#line 4272 "util/configparser.c" /* yacc.c:1646 */
break;
- case 356:
-#line 1648 "util/configparser.y" /* yacc.c:1646 */
+ case 358:
+#line 1658 "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)
@@ -4259,11 +4280,11 @@ yyreduce:
else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4263 "util/configparser.c" /* yacc.c:1646 */
+#line 4284 "util/configparser.c" /* yacc.c:1646 */
break;
- case 357:
-#line 1657 "util/configparser.y" /* yacc.c:1646 */
+ case 359:
+#line 1667 "util/configparser.y" /* yacc.c:1646 */
{
char* p, *s = (yyvsp[0].str);
OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -4276,11 +4297,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4280 "util/configparser.c" /* yacc.c:1646 */
+#line 4301 "util/configparser.c" /* yacc.c:1646 */
break;
- case 358:
-#line 1671 "util/configparser.y" /* yacc.c:1646 */
+ case 360:
+#line 1681 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4298,11 +4319,11 @@ yyreduce:
}
}
}
-#line 4302 "util/configparser.c" /* yacc.c:1646 */
+#line 4323 "util/configparser.c" /* yacc.c:1646 */
break;
- case 359:
-#line 1690 "util/configparser.y" /* yacc.c:1646 */
+ case 361:
+#line 1700 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4320,11 +4341,11 @@ yyreduce:
}
}
}
-#line 4324 "util/configparser.c" /* yacc.c:1646 */
+#line 4345 "util/configparser.c" /* yacc.c:1646 */
break;
- case 360:
-#line 1709 "util/configparser.y" /* yacc.c:1646 */
+ case 362:
+#line 1719 "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,
@@ -4335,11 +4356,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4339 "util/configparser.c" /* yacc.c:1646 */
+#line 4360 "util/configparser.c" /* yacc.c:1646 */
break;
- case 361:
-#line 1721 "util/configparser.y" /* yacc.c:1646 */
+ case 363:
+#line 1731 "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,
@@ -4350,11 +4371,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4354 "util/configparser.c" /* yacc.c:1646 */
+#line 4375 "util/configparser.c" /* yacc.c:1646 */
break;
- case 362:
-#line 1733 "util/configparser.y" /* yacc.c:1646 */
+ case 364:
+#line 1743 "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,
@@ -4365,11 +4386,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4369 "util/configparser.c" /* yacc.c:1646 */
+#line 4390 "util/configparser.c" /* yacc.c:1646 */
break;
- case 363:
-#line 1745 "util/configparser.y" /* yacc.c:1646 */
+ case 365:
+#line 1755 "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,
@@ -4379,11 +4400,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4383 "util/configparser.c" /* yacc.c:1646 */
+#line 4404 "util/configparser.c" /* yacc.c:1646 */
break;
- case 364:
-#line 1756 "util/configparser.y" /* yacc.c:1646 */
+ case 366:
+#line 1766 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4401,11 +4422,11 @@ yyreduce:
}
}
}
-#line 4405 "util/configparser.c" /* yacc.c:1646 */
+#line 4426 "util/configparser.c" /* yacc.c:1646 */
break;
- case 365:
-#line 1775 "util/configparser.y" /* yacc.c:1646 */
+ case 367:
+#line 1785 "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)
@@ -4413,11 +4434,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4417 "util/configparser.c" /* yacc.c:1646 */
+#line 4438 "util/configparser.c" /* yacc.c:1646 */
break;
- case 366:
-#line 1785 "util/configparser.y" /* yacc.c:1646 */
+ case 368:
+#line 1795 "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)
@@ -4425,33 +4446,33 @@ yyreduce:
else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4429 "util/configparser.c" /* yacc.c:1646 */
+#line 4450 "util/configparser.c" /* yacc.c:1646 */
break;
- case 367:
-#line 1794 "util/configparser.y" /* yacc.c:1646 */
+ case 369:
+#line 1804 "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 4440 "util/configparser.c" /* yacc.c:1646 */
+#line 4461 "util/configparser.c" /* yacc.c:1646 */
break;
- case 368:
-#line 1802 "util/configparser.y" /* yacc.c:1646 */
+ case 370:
+#line 1812 "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 4451 "util/configparser.c" /* yacc.c:1646 */
+#line 4472 "util/configparser.c" /* yacc.c:1646 */
break;
- case 369:
-#line 1810 "util/configparser.y" /* yacc.c:1646 */
+ case 371:
+#line 1820 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4463,11 +4484,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4467 "util/configparser.c" /* yacc.c:1646 */
+#line 4488 "util/configparser.c" /* yacc.c:1646 */
break;
- case 370:
-#line 1823 "util/configparser.y" /* yacc.c:1646 */
+ case 372:
+#line 1833 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4479,11 +4500,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4483 "util/configparser.c" /* yacc.c:1646 */
+#line 4504 "util/configparser.c" /* yacc.c:1646 */
break;
- case 371:
-#line 1836 "util/configparser.y" /* yacc.c:1646 */
+ case 373:
+#line 1846 "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) {
@@ -4495,11 +4516,11 @@ yyreduce:
"ratelimit-for-domain");
}
}
-#line 4499 "util/configparser.c" /* yacc.c:1646 */
+#line 4520 "util/configparser.c" /* yacc.c:1646 */
break;
- case 372:
-#line 1849 "util/configparser.y" /* yacc.c:1646 */
+ case 374:
+#line 1859 "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) {
@@ -4511,11 +4532,11 @@ yyreduce:
"ratelimit-below-domain");
}
}
-#line 4515 "util/configparser.c" /* yacc.c:1646 */
+#line 4536 "util/configparser.c" /* yacc.c:1646 */
break;
- case 373:
-#line 1862 "util/configparser.y" /* yacc.c:1646 */
+ case 375:
+#line 1872 "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)
@@ -4523,11 +4544,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4527 "util/configparser.c" /* yacc.c:1646 */
+#line 4548 "util/configparser.c" /* yacc.c:1646 */
break;
- case 374:
-#line 1871 "util/configparser.y" /* yacc.c:1646 */
+ case 376:
+#line 1881 "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)
@@ -4535,11 +4556,11 @@ yyreduce:
else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4539 "util/configparser.c" /* yacc.c:1646 */
+#line 4560 "util/configparser.c" /* yacc.c:1646 */
break;
- case 375:
-#line 1880 "util/configparser.y" /* yacc.c:1646 */
+ case 377:
+#line 1890 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_low_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4547,23 +4568,23 @@ yyreduce:
else cfg_parser->cfg->low_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4551 "util/configparser.c" /* yacc.c:1646 */
+#line 4572 "util/configparser.c" /* yacc.c:1646 */
break;
- case 376:
-#line 1889 "util/configparser.y" /* yacc.c:1646 */
+ case 378:
+#line 1899 "util/configparser.y" /* yacc.c:1646 */
{
- OUTYY(("P(server_low_rtt_pct:%s)\n", (yyvsp[0].str)));
+ OUTYY(("P(server_low_rtt_permil:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->low_rtt_pct = atoi((yyvsp[0].str));
+ else cfg_parser->cfg->low_rtt_permil = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4563 "util/configparser.c" /* yacc.c:1646 */
+#line 4584 "util/configparser.c" /* yacc.c:1646 */
break;
- case 377:
-#line 1898 "util/configparser.y" /* yacc.c:1646 */
+ case 379:
+#line 1908 "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)
@@ -4572,11 +4593,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4576 "util/configparser.c" /* yacc.c:1646 */
+#line 4597 "util/configparser.c" /* yacc.c:1646 */
break;
- case 378:
-#line 1908 "util/configparser.y" /* yacc.c:1646 */
+ case 380:
+#line 1918 "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)
@@ -4585,11 +4606,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4589 "util/configparser.c" /* yacc.c:1646 */
+#line 4610 "util/configparser.c" /* yacc.c:1646 */
break;
- case 379:
-#line 1918 "util/configparser.y" /* yacc.c:1646 */
+ case 381:
+#line 1928 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
@@ -4601,11 +4622,11 @@ yyreduce:
OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
#endif
}
-#line 4605 "util/configparser.c" /* yacc.c:1646 */
+#line 4626 "util/configparser.c" /* yacc.c:1646 */
break;
- case 380:
-#line 1931 "util/configparser.y" /* yacc.c:1646 */
+ case 382:
+#line 1941 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
@@ -4617,11 +4638,11 @@ yyreduce:
OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
#endif
}
-#line 4621 "util/configparser.c" /* yacc.c:1646 */
+#line 4642 "util/configparser.c" /* yacc.c:1646 */
break;
- case 381:
-#line 1944 "util/configparser.y" /* yacc.c:1646 */
+ case 383:
+#line 1954 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
@@ -4631,11 +4652,11 @@ yyreduce:
OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
#endif
}
-#line 4635 "util/configparser.c" /* yacc.c:1646 */
+#line 4656 "util/configparser.c" /* yacc.c:1646 */
break;
- case 382:
-#line 1955 "util/configparser.y" /* yacc.c:1646 */
+ case 384:
+#line 1965 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
@@ -4647,11 +4668,11 @@ yyreduce:
OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
#endif
}
-#line 4651 "util/configparser.c" /* yacc.c:1646 */
+#line 4672 "util/configparser.c" /* yacc.c:1646 */
break;
- case 383:
-#line 1968 "util/configparser.y" /* yacc.c:1646 */
+ case 385:
+#line 1978 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
@@ -4661,11 +4682,11 @@ yyreduce:
OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
#endif
}
-#line 4665 "util/configparser.c" /* yacc.c:1646 */
+#line 4686 "util/configparser.c" /* yacc.c:1646 */
break;
- case 384:
-#line 1979 "util/configparser.y" /* yacc.c:1646 */
+ case 386:
+#line 1989 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
@@ -4677,11 +4698,11 @@ yyreduce:
OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
#endif
}
-#line 4681 "util/configparser.c" /* yacc.c:1646 */
+#line 4702 "util/configparser.c" /* yacc.c:1646 */
break;
- case 385:
-#line 1992 "util/configparser.y" /* yacc.c:1646 */
+ case 387:
+#line 2002 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->stubs->name)
@@ -4690,31 +4711,31 @@ yyreduce:
free(cfg_parser->cfg->stubs->name);
cfg_parser->cfg->stubs->name = (yyvsp[0].str);
}
-#line 4694 "util/configparser.c" /* yacc.c:1646 */
+#line 4715 "util/configparser.c" /* yacc.c:1646 */
break;
- case 386:
-#line 2002 "util/configparser.y" /* yacc.c:1646 */
+ case 388:
+#line 2012 "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 4704 "util/configparser.c" /* yacc.c:1646 */
+#line 4725 "util/configparser.c" /* yacc.c:1646 */
break;
- case 387:
-#line 2009 "util/configparser.y" /* yacc.c:1646 */
+ case 389:
+#line 2019 "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 4714 "util/configparser.c" /* yacc.c:1646 */
+#line 4735 "util/configparser.c" /* yacc.c:1646 */
break;
- case 388:
-#line 2016 "util/configparser.y" /* yacc.c:1646 */
+ case 390:
+#line 2026 "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)
@@ -4722,11 +4743,11 @@ yyreduce:
else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4726 "util/configparser.c" /* yacc.c:1646 */
+#line 4747 "util/configparser.c" /* yacc.c:1646 */
break;
- case 389:
-#line 2025 "util/configparser.y" /* yacc.c:1646 */
+ case 391:
+#line 2035 "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)
@@ -4735,11 +4756,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4739 "util/configparser.c" /* yacc.c:1646 */
+#line 4760 "util/configparser.c" /* yacc.c:1646 */
break;
- case 390:
-#line 2035 "util/configparser.y" /* yacc.c:1646 */
+ case 392:
+#line 2045 "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)
@@ -4748,11 +4769,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4752 "util/configparser.c" /* yacc.c:1646 */
+#line 4773 "util/configparser.c" /* yacc.c:1646 */
break;
- case 391:
-#line 2045 "util/configparser.y" /* yacc.c:1646 */
+ case 393:
+#line 2055 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->forwards->name)
@@ -4761,31 +4782,31 @@ yyreduce:
free(cfg_parser->cfg->forwards->name);
cfg_parser->cfg->forwards->name = (yyvsp[0].str);
}
-#line 4765 "util/configparser.c" /* yacc.c:1646 */
+#line 4786 "util/configparser.c" /* yacc.c:1646 */
break;
- case 392:
-#line 2055 "util/configparser.y" /* yacc.c:1646 */
+ case 394:
+#line 2065 "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 4775 "util/configparser.c" /* yacc.c:1646 */
+#line 4796 "util/configparser.c" /* yacc.c:1646 */
break;
- case 393:
-#line 2062 "util/configparser.y" /* yacc.c:1646 */
+ case 395:
+#line 2072 "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 4785 "util/configparser.c" /* yacc.c:1646 */
+#line 4806 "util/configparser.c" /* yacc.c:1646 */
break;
- case 394:
-#line 2069 "util/configparser.y" /* yacc.c:1646 */
+ case 396:
+#line 2079 "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)
@@ -4793,11 +4814,11 @@ yyreduce:
else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4797 "util/configparser.c" /* yacc.c:1646 */
+#line 4818 "util/configparser.c" /* yacc.c:1646 */
break;
- case 395:
-#line 2078 "util/configparser.y" /* yacc.c:1646 */
+ case 397:
+#line 2088 "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)
@@ -4806,11 +4827,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4810 "util/configparser.c" /* yacc.c:1646 */
+#line 4831 "util/configparser.c" /* yacc.c:1646 */
break;
- case 396:
-#line 2088 "util/configparser.y" /* yacc.c:1646 */
+ case 398:
+#line 2098 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->auths->name)
@@ -4819,52 +4840,52 @@ yyreduce:
free(cfg_parser->cfg->auths->name);
cfg_parser->cfg->auths->name = (yyvsp[0].str);
}
-#line 4823 "util/configparser.c" /* yacc.c:1646 */
+#line 4844 "util/configparser.c" /* yacc.c:1646 */
break;
- case 397:
-#line 2098 "util/configparser.y" /* yacc.c:1646 */
+ case 399:
+#line 2108 "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 4833 "util/configparser.c" /* yacc.c:1646 */
+#line 4854 "util/configparser.c" /* yacc.c:1646 */
break;
- case 398:
-#line 2105 "util/configparser.y" /* yacc.c:1646 */
+ case 400:
+#line 2115 "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 4843 "util/configparser.c" /* yacc.c:1646 */
+#line 4864 "util/configparser.c" /* yacc.c:1646 */
break;
- case 399:
-#line 2112 "util/configparser.y" /* yacc.c:1646 */
+ case 401:
+#line 2122 "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 4853 "util/configparser.c" /* yacc.c:1646 */
+#line 4874 "util/configparser.c" /* yacc.c:1646 */
break;
- case 400:
-#line 2119 "util/configparser.y" /* yacc.c:1646 */
+ case 402:
+#line 2129 "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 4864 "util/configparser.c" /* yacc.c:1646 */
+#line 4885 "util/configparser.c" /* yacc.c:1646 */
break;
- case 401:
-#line 2127 "util/configparser.y" /* yacc.c:1646 */
+ case 403:
+#line 2137 "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)
@@ -4873,11 +4894,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4877 "util/configparser.c" /* yacc.c:1646 */
+#line 4898 "util/configparser.c" /* yacc.c:1646 */
break;
- case 402:
-#line 2137 "util/configparser.y" /* yacc.c:1646 */
+ case 404:
+#line 2147 "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)
@@ -4886,11 +4907,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4890 "util/configparser.c" /* yacc.c:1646 */
+#line 4911 "util/configparser.c" /* yacc.c:1646 */
break;
- case 403:
-#line 2147 "util/configparser.y" /* yacc.c:1646 */
+ case 405:
+#line 2157 "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)
@@ -4899,11 +4920,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4903 "util/configparser.c" /* yacc.c:1646 */
+#line 4924 "util/configparser.c" /* yacc.c:1646 */
break;
- case 404:
-#line 2157 "util/configparser.y" /* yacc.c:1646 */
+ case 406:
+#line 2167 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->views->name)
@@ -4912,11 +4933,11 @@ yyreduce:
free(cfg_parser->cfg->views->name);
cfg_parser->cfg->views->name = (yyvsp[0].str);
}
-#line 4916 "util/configparser.c" /* yacc.c:1646 */
+#line 4937 "util/configparser.c" /* yacc.c:1646 */
break;
- case 405:
-#line 2167 "util/configparser.y" /* yacc.c:1646 */
+ case 407:
+#line 2177 "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 &&
@@ -4945,11 +4966,11 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 4949 "util/configparser.c" /* yacc.c:1646 */
+#line 4970 "util/configparser.c" /* yacc.c:1646 */
break;
- case 406:
-#line 2197 "util/configparser.y" /* yacc.c:1646 */
+ case 408:
+#line 2207 "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));
@@ -4958,22 +4979,22 @@ yyreduce:
fatal_exit("out of memory adding per-view "
"response-ip action");
}
-#line 4962 "util/configparser.c" /* yacc.c:1646 */
+#line 4983 "util/configparser.c" /* yacc.c:1646 */
break;
- case 407:
-#line 2207 "util/configparser.y" /* yacc.c:1646 */
+ case 409:
+#line 2217 "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 4973 "util/configparser.c" /* yacc.c:1646 */
+#line 4994 "util/configparser.c" /* yacc.c:1646 */
break;
- case 408:
-#line 2215 "util/configparser.y" /* yacc.c:1646 */
+ case 410:
+#line 2225 "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))) {
@@ -4981,11 +5002,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4985 "util/configparser.c" /* yacc.c:1646 */
+#line 5006 "util/configparser.c" /* yacc.c:1646 */
break;
- case 409:
-#line 2224 "util/configparser.y" /* yacc.c:1646 */
+ case 411:
+#line 2234 "util/configparser.y" /* yacc.c:1646 */
{
char* ptr;
OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -4999,11 +5020,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 5003 "util/configparser.c" /* yacc.c:1646 */
+#line 5024 "util/configparser.c" /* yacc.c:1646 */
break;
- case 410:
-#line 2239 "util/configparser.y" /* yacc.c:1646 */
+ case 412:
+#line 2249 "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)
@@ -5011,19 +5032,19 @@ yyreduce:
else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5015 "util/configparser.c" /* yacc.c:1646 */
+#line 5036 "util/configparser.c" /* yacc.c:1646 */
break;
- case 411:
-#line 2248 "util/configparser.y" /* yacc.c:1646 */
+ case 413:
+#line 2258 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(remote-control:)\n"));
}
-#line 5023 "util/configparser.c" /* yacc.c:1646 */
+#line 5044 "util/configparser.c" /* yacc.c:1646 */
break;
- case 422:
-#line 2259 "util/configparser.y" /* yacc.c:1646 */
+ case 424:
+#line 2269 "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)
@@ -5032,11 +5053,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5036 "util/configparser.c" /* yacc.c:1646 */
+#line 5057 "util/configparser.c" /* yacc.c:1646 */
break;
- case 423:
-#line 2269 "util/configparser.y" /* yacc.c:1646 */
+ case 425:
+#line 2279 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -5044,21 +5065,21 @@ yyreduce:
else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5048 "util/configparser.c" /* yacc.c:1646 */
+#line 5069 "util/configparser.c" /* yacc.c:1646 */
break;
- case 424:
-#line 2278 "util/configparser.y" /* yacc.c:1646 */
+ case 426:
+#line 2288 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 5058 "util/configparser.c" /* yacc.c:1646 */
+#line 5079 "util/configparser.c" /* yacc.c:1646 */
break;
- case 425:
-#line 2285 "util/configparser.y" /* yacc.c:1646 */
+ case 427:
+#line 2295 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5067,122 +5088,122 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5071 "util/configparser.c" /* yacc.c:1646 */
+#line 5092 "util/configparser.c" /* yacc.c:1646 */
break;
- case 426:
-#line 2295 "util/configparser.y" /* yacc.c:1646 */
+ case 428:
+#line 2305 "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 5081 "util/configparser.c" /* yacc.c:1646 */
+#line 5102 "util/configparser.c" /* yacc.c:1646 */
break;
- case 427:
-#line 2302 "util/configparser.y" /* yacc.c:1646 */
+ case 429:
+#line 2312 "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 5091 "util/configparser.c" /* yacc.c:1646 */
+#line 5112 "util/configparser.c" /* yacc.c:1646 */
break;
- case 428:
-#line 2309 "util/configparser.y" /* yacc.c:1646 */
+ case 430:
+#line 2319 "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 5101 "util/configparser.c" /* yacc.c:1646 */
+#line 5122 "util/configparser.c" /* yacc.c:1646 */
break;
- case 429:
-#line 2316 "util/configparser.y" /* yacc.c:1646 */
+ case 431:
+#line 2326 "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 5111 "util/configparser.c" /* yacc.c:1646 */
+#line 5132 "util/configparser.c" /* yacc.c:1646 */
break;
- case 430:
-#line 2323 "util/configparser.y" /* yacc.c:1646 */
+ case 432:
+#line 2333 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnstap:)\n"));
}
-#line 5119 "util/configparser.c" /* yacc.c:1646 */
+#line 5140 "util/configparser.c" /* yacc.c:1646 */
break;
- case 445:
-#line 2340 "util/configparser.y" /* yacc.c:1646 */
+ case 447:
+#line 2350 "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 5130 "util/configparser.c" /* yacc.c:1646 */
+#line 5151 "util/configparser.c" /* yacc.c:1646 */
break;
- case 446:
-#line 2348 "util/configparser.y" /* yacc.c:1646 */
+ case 448:
+#line 2358 "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 5140 "util/configparser.c" /* yacc.c:1646 */
+#line 5161 "util/configparser.c" /* yacc.c:1646 */
break;
- case 447:
-#line 2355 "util/configparser.y" /* yacc.c:1646 */
+ case 449:
+#line 2365 "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 5151 "util/configparser.c" /* yacc.c:1646 */
+#line 5172 "util/configparser.c" /* yacc.c:1646 */
break;
- case 448:
-#line 2363 "util/configparser.y" /* yacc.c:1646 */
+ case 450:
+#line 2373 "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 5162 "util/configparser.c" /* yacc.c:1646 */
+#line 5183 "util/configparser.c" /* yacc.c:1646 */
break;
- case 449:
-#line 2371 "util/configparser.y" /* yacc.c:1646 */
+ case 451:
+#line 2381 "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 5172 "util/configparser.c" /* yacc.c:1646 */
+#line 5193 "util/configparser.c" /* yacc.c:1646 */
break;
- case 450:
-#line 2378 "util/configparser.y" /* yacc.c:1646 */
+ case 452:
+#line 2388 "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 5182 "util/configparser.c" /* yacc.c:1646 */
+#line 5203 "util/configparser.c" /* yacc.c:1646 */
break;
- case 451:
-#line 2385 "util/configparser.y" /* yacc.c:1646 */
+ case 453:
+#line 2395 "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)
@@ -5190,11 +5211,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5194 "util/configparser.c" /* yacc.c:1646 */
+#line 5215 "util/configparser.c" /* yacc.c:1646 */
break;
- case 452:
-#line 2394 "util/configparser.y" /* yacc.c:1646 */
+ case 454:
+#line 2404 "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)
@@ -5202,11 +5223,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5206 "util/configparser.c" /* yacc.c:1646 */
+#line 5227 "util/configparser.c" /* yacc.c:1646 */
break;
- case 453:
-#line 2403 "util/configparser.y" /* yacc.c:1646 */
+ case 455:
+#line 2413 "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)
@@ -5214,11 +5235,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5218 "util/configparser.c" /* yacc.c:1646 */
+#line 5239 "util/configparser.c" /* yacc.c:1646 */
break;
- case 454:
-#line 2412 "util/configparser.y" /* yacc.c:1646 */
+ case 456:
+#line 2422 "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)
@@ -5226,11 +5247,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5230 "util/configparser.c" /* yacc.c:1646 */
+#line 5251 "util/configparser.c" /* yacc.c:1646 */
break;
- case 455:
-#line 2421 "util/configparser.y" /* yacc.c:1646 */
+ case 457:
+#line 2431 "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)
@@ -5238,11 +5259,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5242 "util/configparser.c" /* yacc.c:1646 */
+#line 5263 "util/configparser.c" /* yacc.c:1646 */
break;
- case 456:
-#line 2430 "util/configparser.y" /* yacc.c:1646 */
+ case 458:
+#line 2440 "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)
@@ -5250,29 +5271,29 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 5254 "util/configparser.c" /* yacc.c:1646 */
+#line 5275 "util/configparser.c" /* yacc.c:1646 */
break;
- case 457:
-#line 2439 "util/configparser.y" /* yacc.c:1646 */
+ case 459:
+#line 2449 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(python:)\n"));
}
-#line 5262 "util/configparser.c" /* yacc.c:1646 */
+#line 5283 "util/configparser.c" /* yacc.c:1646 */
break;
- case 461:
-#line 2448 "util/configparser.y" /* yacc.c:1646 */
+ case 463:
+#line 2458 "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 5272 "util/configparser.c" /* yacc.c:1646 */
+#line 5293 "util/configparser.c" /* yacc.c:1646 */
break;
- case 462:
-#line 2454 "util/configparser.y" /* yacc.c:1646 */
+ case 464:
+#line 2464 "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)
@@ -5281,21 +5302,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5285 "util/configparser.c" /* yacc.c:1646 */
+#line 5306 "util/configparser.c" /* yacc.c:1646 */
break;
- case 463:
-#line 2464 "util/configparser.y" /* yacc.c:1646 */
+ case 465:
+#line 2474 "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 5295 "util/configparser.c" /* yacc.c:1646 */
+#line 5316 "util/configparser.c" /* yacc.c:1646 */
break;
- case 464:
-#line 2471 "util/configparser.y" /* yacc.c:1646 */
+ case 466:
+#line 2481 "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));
@@ -5303,31 +5324,31 @@ yyreduce:
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip");
}
-#line 5307 "util/configparser.c" /* yacc.c:1646 */
+#line 5328 "util/configparser.c" /* yacc.c:1646 */
break;
- case 465:
-#line 2480 "util/configparser.y" /* yacc.c:1646 */
+ case 467:
+#line 2490 "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 5318 "util/configparser.c" /* yacc.c:1646 */
+#line 5339 "util/configparser.c" /* yacc.c:1646 */
break;
- case 466:
-#line 2488 "util/configparser.y" /* yacc.c:1646 */
+ case 468:
+#line 2498 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnscrypt:)\n"));
OUTYY(("\nP(dnscrypt:)\n"));
}
-#line 5327 "util/configparser.c" /* yacc.c:1646 */
+#line 5348 "util/configparser.c" /* yacc.c:1646 */
break;
- case 479:
-#line 2505 "util/configparser.y" /* yacc.c:1646 */
+ case 481:
+#line 2515 "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)
@@ -5335,11 +5356,11 @@ yyreduce:
else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5339 "util/configparser.c" /* yacc.c:1646 */
+#line 5360 "util/configparser.c" /* yacc.c:1646 */
break;
- case 480:
-#line 2515 "util/configparser.y" /* yacc.c:1646 */
+ case 482:
+#line 2525 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
@@ -5348,21 +5369,21 @@ yyreduce:
else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5352 "util/configparser.c" /* yacc.c:1646 */
+#line 5373 "util/configparser.c" /* yacc.c:1646 */
break;
- case 481:
-#line 2525 "util/configparser.y" /* yacc.c:1646 */
+ case 483:
+#line 2535 "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 5362 "util/configparser.c" /* yacc.c:1646 */
+#line 5383 "util/configparser.c" /* yacc.c:1646 */
break;
- case 482:
-#line 2532 "util/configparser.y" /* yacc.c:1646 */
+ case 484:
+#line 2542 "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)))
@@ -5370,21 +5391,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 5374 "util/configparser.c" /* yacc.c:1646 */
+#line 5395 "util/configparser.c" /* yacc.c:1646 */
break;
- case 483:
-#line 2541 "util/configparser.y" /* yacc.c:1646 */
+ case 485:
+#line 2551 "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 5384 "util/configparser.c" /* yacc.c:1646 */
+#line 5405 "util/configparser.c" /* yacc.c:1646 */
break;
- case 484:
-#line 2548 "util/configparser.y" /* yacc.c:1646 */
+ case 486:
+#line 2558 "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)))
@@ -5392,22 +5413,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 5396 "util/configparser.c" /* yacc.c:1646 */
+#line 5417 "util/configparser.c" /* yacc.c:1646 */
break;
- case 485:
-#line 2557 "util/configparser.y" /* yacc.c:1646 */
+ case 487:
+#line 2567 "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 5407 "util/configparser.c" /* yacc.c:1646 */
+#line 5428 "util/configparser.c" /* yacc.c:1646 */
break;
- case 486:
-#line 2565 "util/configparser.y" /* yacc.c:1646 */
+ case 488:
+#line 2575 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -5419,22 +5440,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5423 "util/configparser.c" /* yacc.c:1646 */
+#line 5444 "util/configparser.c" /* yacc.c:1646 */
break;
- case 487:
-#line 2578 "util/configparser.y" /* yacc.c:1646 */
+ case 489:
+#line 2588 "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 5434 "util/configparser.c" /* yacc.c:1646 */
+#line 5455 "util/configparser.c" /* yacc.c:1646 */
break;
- case 488:
-#line 2586 "util/configparser.y" /* yacc.c:1646 */
+ case 490:
+#line 2596 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -5446,19 +5467,19 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5450 "util/configparser.c" /* yacc.c:1646 */
+#line 5471 "util/configparser.c" /* yacc.c:1646 */
break;
- case 489:
-#line 2599 "util/configparser.y" /* yacc.c:1646 */
+ case 491:
+#line 2609 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(cachedb:)\n"));
}
-#line 5458 "util/configparser.c" /* yacc.c:1646 */
+#line 5479 "util/configparser.c" /* yacc.c:1646 */
break;
- case 497:
-#line 2609 "util/configparser.y" /* yacc.c:1646 */
+ case 499:
+#line 2619 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_CACHEDB
OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
@@ -5471,11 +5492,11 @@ yyreduce:
OUTYY(("P(Compiled without cachedb, ignoring)\n"));
#endif
}
-#line 5475 "util/configparser.c" /* yacc.c:1646 */
+#line 5496 "util/configparser.c" /* yacc.c:1646 */
break;
- case 498:
-#line 2623 "util/configparser.y" /* yacc.c:1646 */
+ case 500:
+#line 2633 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef USE_CACHEDB
OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
@@ -5489,11 +5510,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 5493 "util/configparser.c" /* yacc.c:1646 */
+#line 5514 "util/configparser.c" /* yacc.c:1646 */
break;
- case 499:
-#line 2638 "util/configparser.y" /* yacc.c:1646 */
+ case 501:
+#line 2648 "util/configparser.y" /* yacc.c:1646 */
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
@@ -5504,11 +5525,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 5508 "util/configparser.c" /* yacc.c:1646 */
+#line 5529 "util/configparser.c" /* yacc.c:1646 */
break;
- case 500:
-#line 2650 "util/configparser.y" /* yacc.c:1646 */
+ case 502:
+#line 2660 "util/configparser.y" /* yacc.c:1646 */
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int port;
@@ -5522,11 +5543,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5526 "util/configparser.c" /* yacc.c:1646 */
+#line 5547 "util/configparser.c" /* yacc.c:1646 */
break;
- case 501:
-#line 2665 "util/configparser.y" /* yacc.c:1646 */
+ case 503:
+#line 2675 "util/configparser.y" /* yacc.c:1646 */
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
@@ -5538,11 +5559,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5542 "util/configparser.c" /* yacc.c:1646 */
+#line 5563 "util/configparser.c" /* yacc.c:1646 */
break;
-#line 5546 "util/configparser.c" /* yacc.c:1646 */
+#line 5567 "util/configparser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -5770,7 +5791,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 2677 "util/configparser.y" /* yacc.c:1906 */
+#line 2687 "util/configparser.y" /* yacc.c:1906 */
/* parse helper routines could be here */
diff --git a/util/configparser.h b/util/configparser.h
index 8cf14049c5f3..c5d0fe1c0d71 100644
--- a/util/configparser.h
+++ b/util/configparser.h
@@ -280,10 +280,11 @@ extern int yydebug;
VAR_URL = 490,
VAR_FOR_DOWNSTREAM = 491,
VAR_FALLBACK_ENABLED = 492,
- VAR_ADDITIONAL_TLS_PORT = 493,
+ VAR_TLS_ADDITIONAL_PORTS = 493,
VAR_LOW_RTT = 494,
- VAR_LOW_RTT_PCT = 495,
- VAR_ALLOW_NOTIFY = 496
+ VAR_LOW_RTT_PERMIL = 495,
+ VAR_ALLOW_NOTIFY = 496,
+ VAR_TLS_WIN_CERT = 497
};
#endif
/* Tokens. */
@@ -522,10 +523,11 @@ extern int yydebug;
#define VAR_URL 490
#define VAR_FOR_DOWNSTREAM 491
#define VAR_FALLBACK_ENABLED 492
-#define VAR_ADDITIONAL_TLS_PORT 493
+#define VAR_TLS_ADDITIONAL_PORTS 493
#define VAR_LOW_RTT 494
-#define VAR_LOW_RTT_PCT 495
+#define VAR_LOW_RTT_PERMIL 495
#define VAR_ALLOW_NOTIFY 496
+#define VAR_TLS_WIN_CERT 497
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -536,7 +538,7 @@ union YYSTYPE
char* str;
-#line 540 "util/configparser.h" /* yacc.c:1909 */
+#line 542 "util/configparser.h" /* yacc.c:1909 */
};
typedef union YYSTYPE YYSTYPE;
diff --git a/util/configparser.y b/util/configparser.y
index a71bf914c762..3f8a2df6e7d4 100644
--- a/util/configparser.y
+++ b/util/configparser.y
@@ -156,8 +156,8 @@ extern struct config_parser_state* cfg_parser;
%token VAR_CACHEDB_REDISHOST VAR_CACHEDB_REDISPORT VAR_CACHEDB_REDISTIMEOUT
%token VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM VAR_FOR_UPSTREAM
%token VAR_AUTH_ZONE VAR_ZONEFILE VAR_MASTER VAR_URL VAR_FOR_DOWNSTREAM
-%token VAR_FALLBACK_ENABLED VAR_ADDITIONAL_TLS_PORT VAR_LOW_RTT VAR_LOW_RTT_PCT
-%token VAR_ALLOW_NOTIFY
+%token VAR_FALLBACK_ENABLED VAR_TLS_ADDITIONAL_PORTS VAR_LOW_RTT VAR_LOW_RTT_PERMIL
+%token VAR_ALLOW_NOTIFY VAR_TLS_WIN_CERT
%%
toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -248,8 +248,8 @@ content_server: server_num_threads | server_verbosity | server_port |
server_ipsecmod_ignore_bogus | server_ipsecmod_max_ttl |
server_ipsecmod_whitelist | server_ipsecmod_strict |
server_udp_upstream_without_downstream | server_aggressive_nsec |
- server_tls_cert_bundle | server_additional_tls_port | server_low_rtt |
- server_low_rtt_pct
+ server_tls_cert_bundle | server_tls_additional_ports | server_low_rtt |
+ server_low_rtt_permil | server_tls_win_cert
;
stubstart: VAR_STUB_ZONE
{
@@ -688,10 +688,19 @@ server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG
cfg_parser->cfg->tls_cert_bundle = $2;
}
;
-server_additional_tls_port: VAR_ADDITIONAL_TLS_PORT STRING_ARG
+server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG
{
- OUTYY(("P(server_additional_tls_port:%s)\n", $2));
- if(!cfg_strlist_insert(&cfg_parser->cfg->additional_tls_port,
+ OUTYY(("P(server_tls_win_cert:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->tls_win_cert = (strcmp($2, "yes")==0);
+ free($2);
+ }
+ ;
+server_tls_additional_ports: VAR_TLS_ADDITIONAL_PORTS STRING_ARG
+ {
+ OUTYY(("P(server_tls_additional_ports:%s)\n", $2));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_ports,
$2))
yyerror("out of memory");
}
@@ -1305,11 +1314,12 @@ server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG
if(strcmp($3, "deny")!=0 && strcmp($3, "refuse")!=0 &&
strcmp($3, "deny_non_local")!=0 &&
strcmp($3, "refuse_non_local")!=0 &&
+ strcmp($3, "allow_setrd")!=0 &&
strcmp($3, "allow")!=0 &&
strcmp($3, "allow_snoop")!=0) {
yyerror("expected deny, refuse, deny_non_local, "
- "refuse_non_local, allow or allow_snoop "
- "in access control action");
+ "refuse_non_local, allow, allow_setrd or "
+ "allow_snoop in access control action");
} else {
if(!cfg_str2list_insert(&cfg_parser->cfg->acls, $2, $3))
fatal_exit("out of memory adding acl");
@@ -1885,12 +1895,12 @@ server_low_rtt: VAR_LOW_RTT STRING_ARG
free($2);
}
;
-server_low_rtt_pct: VAR_LOW_RTT_PCT STRING_ARG
+server_low_rtt_permil: VAR_LOW_RTT_PERMIL STRING_ARG
{
- OUTYY(("P(server_low_rtt_pct:%s)\n", $2));
+ OUTYY(("P(server_low_rtt_permil:%s)\n", $2));
if(atoi($2) == 0 && strcmp($2, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->low_rtt_pct = atoi($2);
+ else cfg_parser->cfg->low_rtt_permil = atoi($2);
free($2);
}
;
diff --git a/util/net_help.c b/util/net_help.c
index 40bfefb6426a..a5059b0addc1 100644
--- a/util/net_help.c
+++ b/util/net_help.c
@@ -52,6 +52,9 @@
#ifdef HAVE_OPENSSL_ERR_H
#include <openssl/err.h>
#endif
+#ifdef USE_WINSOCK
+#include <wincrypt.h>
+#endif
/** max length of an IP address (the address portion) that we allow */
#define MAX_ADDR_STRLEN 128 /* characters */
@@ -796,7 +799,97 @@ void* listen_sslctx_create(char* key, char* pem, char* verifypem)
#endif
}
-void* connect_sslctx_create(char* key, char* pem, char* verifypem)
+#ifdef USE_WINSOCK
+/* For windows, the CA trust store is not read by openssl.
+ Add code to open the trust store using wincrypt API and add
+ the root certs into openssl trust store */
+static int
+add_WIN_cacerts_to_openssl_store(SSL_CTX* tls_ctx)
+{
+ HCERTSTORE hSystemStore;
+ PCCERT_CONTEXT pTargetCert = NULL;
+ X509_STORE* store;
+
+ verbose(VERB_ALGO, "Adding Windows certificates from system root store to CA store");
+
+ /* load just once per context lifetime for this version
+ TODO: dynamically update CA trust changes as they are available */
+ if (!tls_ctx)
+ return 0;
+
+ /* Call wincrypt's CertOpenStore to open the CA root store. */
+
+ if ((hSystemStore = CertOpenStore(
+ CERT_STORE_PROV_SYSTEM,
+ 0,
+ 0,
+ /* NOTE: mingw does not have this const: replace with 1 << 16 from code
+ CERT_SYSTEM_STORE_CURRENT_USER, */
+ 1 << 16,
+ L"root")) == 0)
+ {
+ return 0;
+ }
+
+ store = SSL_CTX_get_cert_store(tls_ctx);
+ if (!store)
+ return 0;
+
+ /* failure if the CA store is empty or the call fails */
+ if ((pTargetCert = CertEnumCertificatesInStore(
+ hSystemStore, pTargetCert)) == 0) {
+ verbose(VERB_ALGO, "CA certificate store for Windows is empty.");
+ return 0;
+ }
+ /* iterate over the windows cert store and add to openssl store */
+ do
+ {
+ X509 *cert1 = d2i_X509(NULL,
+ (const unsigned char **)&pTargetCert->pbCertEncoded,
+ pTargetCert->cbCertEncoded);
+ if (!cert1) {
+ /* return error if a cert fails */
+ verbose(VERB_ALGO, "%s %d:%s",
+ "Unable to parse certificate in memory",
+ (int)ERR_get_error(), ERR_error_string(ERR_get_error(), NULL));
+ return 0;
+ }
+ else {
+ /* return error if a cert add to store fails */
+ if (X509_STORE_add_cert(store, cert1) == 0) {
+ unsigned long error = ERR_peek_last_error();
+
+ /* Ignore error X509_R_CERT_ALREADY_IN_HASH_TABLE which means the
+ * certificate is already in the store. */
+ if(ERR_GET_LIB(error) != ERR_LIB_X509 ||
+ ERR_GET_REASON(error) != X509_R_CERT_ALREADY_IN_HASH_TABLE) {
+ verbose(VERB_ALGO, "%s %d:%s\n",
+ "Error adding certificate", (int)ERR_get_error(),
+ ERR_error_string(ERR_get_error(), NULL));
+ X509_free(cert1);
+ return 0;
+ }
+ }
+ X509_free(cert1);
+ }
+ } while ((pTargetCert = CertEnumCertificatesInStore(
+ hSystemStore, pTargetCert)) != 0);
+
+ /* Clean up memory and quit. */
+ if (pTargetCert)
+ CertFreeCertificateContext(pTargetCert);
+ if (hSystemStore)
+ {
+ if (!CertCloseStore(
+ hSystemStore, 0))
+ return 0;
+ }
+ verbose(VERB_ALGO, "Completed adding Windows certificates to CA store successfully");
+ return 1;
+}
+#endif /* USE_WINSOCK */
+
+void* connect_sslctx_create(char* key, char* pem, char* verifypem, int wincert)
{
#ifdef HAVE_SSL
SSL_CTX* ctx = SSL_CTX_new(SSLv23_client_method());
@@ -836,17 +929,30 @@ void* connect_sslctx_create(char* key, char* pem, char* verifypem)
return NULL;
}
}
- if(verifypem && verifypem[0]) {
- if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) {
- log_crypto_err("error in SSL_CTX verify");
- SSL_CTX_free(ctx);
- return NULL;
+ if((verifypem && verifypem[0]) || wincert) {
+ if(verifypem && verifypem[0]) {
+ if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) {
+ log_crypto_err("error in SSL_CTX verify");
+ SSL_CTX_free(ctx);
+ return NULL;
+ }
+ }
+#ifdef USE_WINSOCK
+ if(wincert) {
+ if(!add_WIN_cacerts_to_openssl_store(ctx)) {
+ log_crypto_err("error in add_WIN_cacerts_to_openssl_store");
+ SSL_CTX_free(ctx);
+ return NULL;
+ }
}
+#else
+ (void)wincert;
+#endif
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
}
return ctx;
#else
- (void)key; (void)pem; (void)verifypem;
+ (void)key; (void)pem; (void)verifypem; (void)wincert;
return NULL;
#endif
}
diff --git a/util/net_help.h b/util/net_help.h
index 5e0d3a62936e..de2e1accfd40 100644
--- a/util/net_help.h
+++ b/util/net_help.h
@@ -73,10 +73,10 @@ struct regional;
/** set RCODE bits in uint16 flags */
#define FLAGS_SET_RCODE(f, r) (f = (((f) & 0xfff0) | (r)))
-/** timeout in seconds for UDP queries to auth servers. */
-#define UDP_AUTH_QUERY_TIMEOUT 4
-/** timeout in seconds for TCP queries to auth servers. */
-#define TCP_AUTH_QUERY_TIMEOUT 30
+/** timeout in milliseconds for UDP queries to auth servers. */
+#define UDP_AUTH_QUERY_TIMEOUT 3000
+/** timeout in milliseconds for TCP queries to auth servers. */
+#define TCP_AUTH_QUERY_TIMEOUT 3000
/** Advertised version of EDNS capabilities */
#define EDNS_ADVERTISED_VERSION 0
/** Advertised size of EDNS capabilities */
@@ -395,9 +395,11 @@ void* listen_sslctx_create(char* key, char* pem, char* verifypem);
* @param key: if nonNULL (also pem nonNULL), the client private key.
* @param pem: client public key (or NULL if key is NULL).
* @param verifypem: if nonNULL used for verifylocation file.
+ * @param wincert: add system certificate store to ctx (add to verifypem ca
+ * certs).
* @return SSL_CTX* or NULL on failure (logged).
*/
-void* connect_sslctx_create(char* key, char* pem, char* verifypem);
+void* connect_sslctx_create(char* key, char* pem, char* verifypem, int wincert);
/**
* accept a new fd and wrap it in a BIO in SSL
diff --git a/util/netevent.c b/util/netevent.c
index f0d72e038441..5cc8606fad3e 100644
--- a/util/netevent.c
+++ b/util/netevent.c
@@ -764,7 +764,12 @@ int comm_point_perform_accept(struct comm_point* c,
{
int new_fd;
*addrlen = (socklen_t)sizeof(*addr);
+#ifndef HAVE_ACCEPT4
new_fd = accept(c->fd, (struct sockaddr*)addr, addrlen);
+#else
+ /* SOCK_NONBLOCK saves extra calls to fcntl for the same result */
+ new_fd = accept4(c->fd, (struct sockaddr*)addr, addrlen, SOCK_NONBLOCK);
+#endif
if(new_fd == -1) {
#ifndef USE_WINSOCK
/* EINTR is signal interrupt. others are closed connection. */
@@ -827,7 +832,9 @@ int comm_point_perform_accept(struct comm_point* c,
#endif
return -1;
}
+#ifndef HAVE_ACCEPT4
fd_set_nonblock(new_fd);
+#endif
return new_fd;
}
@@ -835,20 +842,21 @@ int comm_point_perform_accept(struct comm_point* c,
static long win_bio_cb(BIO *b, int oper, const char* ATTR_UNUSED(argp),
int ATTR_UNUSED(argi), long argl, long retvalue)
{
+ int wsa_err = WSAGetLastError(); /* store errcode before it is gone */
verbose(VERB_ALGO, "bio_cb %d, %s %s %s", oper,
(oper&BIO_CB_RETURN)?"return":"before",
(oper&BIO_CB_READ)?"read":((oper&BIO_CB_WRITE)?"write":"other"),
- WSAGetLastError()==WSAEWOULDBLOCK?"wsawb":"");
+ wsa_err==WSAEWOULDBLOCK?"wsawb":"");
/* on windows, check if previous operation caused EWOULDBLOCK */
if( (oper == (BIO_CB_READ|BIO_CB_RETURN) && argl == 0) ||
(oper == (BIO_CB_GETS|BIO_CB_RETURN) && argl == 0)) {
- if(WSAGetLastError() == WSAEWOULDBLOCK)
+ if(wsa_err == WSAEWOULDBLOCK)
ub_winsock_tcp_wouldblock((struct ub_event*)
BIO_get_callback_arg(b), UB_EV_READ);
}
if( (oper == (BIO_CB_WRITE|BIO_CB_RETURN) && argl == 0) ||
(oper == (BIO_CB_PUTS|BIO_CB_RETURN) && argl == 0)) {
- if(WSAGetLastError() == WSAEWOULDBLOCK)
+ if(wsa_err == WSAEWOULDBLOCK)
ub_winsock_tcp_wouldblock((struct ub_event*)
BIO_get_callback_arg(b), UB_EV_WRITE);
}
@@ -1128,6 +1136,7 @@ ssl_handle_read(struct comm_point* c)
if(want == SSL_ERROR_ZERO_RETURN) {
return 0; /* shutdown, closed */
} else if(want == SSL_ERROR_WANT_READ) {
+ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
return 1; /* read more later */
} else if(want == SSL_ERROR_WANT_WRITE) {
c->ssl_shake_state = comm_ssl_shake_hs_write;
@@ -1143,7 +1152,7 @@ ssl_handle_read(struct comm_point* c)
return 0;
}
c->tcp_byte_count += r;
- if(c->tcp_byte_count != sizeof(uint16_t))
+ if(c->tcp_byte_count < sizeof(uint16_t))
return 1;
if(sldns_buffer_read_u16_at(c->buffer, 0) >
sldns_buffer_capacity(c->buffer)) {
@@ -1156,33 +1165,36 @@ ssl_handle_read(struct comm_point* c)
verbose(VERB_QUERY, "ssl: dropped bogus too short.");
return 0;
}
+ sldns_buffer_skip(c->buffer, (ssize_t)(c->tcp_byte_count-sizeof(uint16_t)));
verbose(VERB_ALGO, "Reading ssl tcp query of length %d",
(int)sldns_buffer_limit(c->buffer));
}
- log_assert(sldns_buffer_remaining(c->buffer) > 0);
- ERR_clear_error();
- r = SSL_read(c->ssl, (void*)sldns_buffer_current(c->buffer),
- (int)sldns_buffer_remaining(c->buffer));
- if(r <= 0) {
- int want = SSL_get_error(c->ssl, r);
- if(want == SSL_ERROR_ZERO_RETURN) {
- return 0; /* shutdown, closed */
- } else if(want == SSL_ERROR_WANT_READ) {
- return 1; /* read more later */
- } else if(want == SSL_ERROR_WANT_WRITE) {
- c->ssl_shake_state = comm_ssl_shake_hs_write;
- comm_point_listen_for_rw(c, 0, 1);
- return 1;
- } else if(want == SSL_ERROR_SYSCALL) {
- if(errno != 0)
- log_err("SSL_read syscall: %s",
- strerror(errno));
+ if(sldns_buffer_remaining(c->buffer) > 0) {
+ ERR_clear_error();
+ r = SSL_read(c->ssl, (void*)sldns_buffer_current(c->buffer),
+ (int)sldns_buffer_remaining(c->buffer));
+ if(r <= 0) {
+ int want = SSL_get_error(c->ssl, r);
+ if(want == SSL_ERROR_ZERO_RETURN) {
+ return 0; /* shutdown, closed */
+ } else if(want == SSL_ERROR_WANT_READ) {
+ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
+ return 1; /* read more later */
+ } else if(want == SSL_ERROR_WANT_WRITE) {
+ c->ssl_shake_state = comm_ssl_shake_hs_write;
+ comm_point_listen_for_rw(c, 0, 1);
+ return 1;
+ } else if(want == SSL_ERROR_SYSCALL) {
+ if(errno != 0)
+ log_err("SSL_read syscall: %s",
+ strerror(errno));
+ return 0;
+ }
+ log_crypto_err("could not SSL_read");
return 0;
}
- log_crypto_err("could not SSL_read");
- return 0;
+ sldns_buffer_skip(c->buffer, (ssize_t)r);
}
- sldns_buffer_skip(c->buffer, (ssize_t)r);
if(sldns_buffer_remaining(c->buffer) <= 0) {
tcp_callback_reader(c);
}
@@ -1237,6 +1249,7 @@ ssl_handle_write(struct comm_point* c)
comm_point_listen_for_rw(c, 1, 0);
return 1; /* wait for read condition */
} else if(want == SSL_ERROR_WANT_WRITE) {
+ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
return 1; /* write more later */
} else if(want == SSL_ERROR_SYSCALL) {
if(errno != 0)
@@ -1270,6 +1283,7 @@ ssl_handle_write(struct comm_point* c)
comm_point_listen_for_rw(c, 1, 0);
return 1; /* wait for read condition */
} else if(want == SSL_ERROR_WANT_WRITE) {
+ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
return 1; /* write more later */
} else if(want == SSL_ERROR_SYSCALL) {
if(errno != 0)
@@ -2887,12 +2901,18 @@ comm_point_close(struct comm_point* c)
{
if(!c)
return;
- if(c->fd != -1)
+ if(c->fd != -1) {
if(ub_event_del(c->ev->ev) != 0) {
log_err("could not event_del on close");
}
+ }
/* close fd after removing from event lists, or epoll.. is messed up */
if(c->fd != -1 && !c->do_not_close) {
+ if(c->type == comm_tcp || c->type == comm_http) {
+ /* delete sticky events for the fd, it gets closed */
+ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
+ ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
+ }
verbose(VERB_ALGO, "close fd %d", c->fd);
#ifndef USE_WINSOCK
close(c->fd);
diff --git a/winrc/win_svc.c b/winrc/win_svc.c
index b755fb543b02..a87d73bf126b 100644
--- a/winrc/win_svc.c
+++ b/winrc/win_svc.c
@@ -52,6 +52,7 @@
#include "util/config_file.h"
#include "util/netevent.h"
#include "util/ub_event.h"
+#include "util/net_help.h"
/** global service status */
static SERVICE_STATUS service_status;
@@ -357,6 +358,14 @@ service_init(int r, struct daemon** d, struct config_file** c)
config_delete(cfg);
return 0;
}
+ if(cfg->ssl_service_key && cfg->ssl_service_key[0]) {
+ if(!(daemon->listen_sslctx = listen_sslctx_create(
+ cfg->ssl_service_key, cfg->ssl_service_pem, NULL)))
+ fatal_exit("could not set up listen SSL_CTX");
+ }
+ if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL,
+ cfg->tls_cert_bundle, cfg->tls_win_cert)))
+ fatal_exit("could not set up connect SSL_CTX");
/* open ports */
/* keep reporting that we are busy starting */