aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2015-04-26 11:23:26 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2015-04-26 11:23:26 +0000
commitd3348d437fb0408bc24892ebd0b035686c294705 (patch)
tree01c1d94467622a175fad10cd34a2f6f05d32c1b7
parent54dd3272da3f4a5fda7dd6ac359b7cf68e21a796 (diff)
downloadsrc-d3348d437fb0408bc24892ebd0b035686c294705.tar.gz
src-d3348d437fb0408bc24892ebd0b035686c294705.zip
import unbound 1.5.2vendor/unbound/1.5.2
Notes
Notes: svn path=/vendor/unbound/dist/; revision=282009 svn path=/vendor/unbound/1.5.2/; revision=282010; tag=vendor/unbound/1.5.2
-rw-r--r--Makefile.in184
-rw-r--r--compat/getentropy_linux.c14
-rw-r--r--config.h.in9
-rwxr-xr-xconfigure65
-rw-r--r--configure.ac16
-rw-r--r--contrib/unbound_cache.cmd56
-rwxr-xr-xcontrib/unbound_cache.sh85
-rwxr-xr-xcontrib/unbound_munin_168
-rw-r--r--contrib/warmup.cmd161
-rwxr-xr-xcontrib/warmup.sh155
-rw-r--r--daemon/remote.c4
-rw-r--r--daemon/unbound.c4
-rw-r--r--daemon/worker.c2
-rw-r--r--doc/Changelog88
-rw-r--r--doc/README2
-rw-r--r--doc/example.conf.in12
-rw-r--r--doc/libunbound.3.in4
-rw-r--r--doc/unbound-anchor.8.in2
-rw-r--r--doc/unbound-checkconf.8.in6
-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.in16
-rw-r--r--iterator/iter_scrub.c4
-rw-r--r--iterator/iter_utils.c36
-rw-r--r--iterator/iter_utils.h9
-rw-r--r--iterator/iterator.c15
-rw-r--r--libunbound/libworker.c6
-rw-r--r--libunbound/python/libunbound.i8
-rw-r--r--pythonmod/interface.i155
-rw-r--r--pythonmod/pythonmod_utils.c15
-rw-r--r--pythonmod/pythonmod_utils.h4
-rw-r--r--services/listen_dnsport.c62
-rw-r--r--services/localzone.c29
-rw-r--r--services/localzone.h9
-rw-r--r--smallapp/unbound-checkconf.c20
-rw-r--r--smallapp/unbound-control-setup.sh.in3
-rw-r--r--smallapp/unbound-control.c8
-rwxr-xr-xtestcode/do-tests.sh2
-rwxr-xr-xtestcode/testbed.sh133
-rw-r--r--testcode/testbed.txt38
-rw-r--r--testdata/ctrl_pipe.tpkgbin0 -> 6451 bytes
-rw-r--r--testdata/fwd_capsid_strip.tpkgbin0 -> 1603 bytes
-rw-r--r--testdata/val_spurious_ns.rpl151
-rw-r--r--util/config_file.c10
-rw-r--r--util/config_file.h2
-rw-r--r--util/configlexer.c2754
-rw-r--r--util/configlexer.lex1
-rw-r--r--util/configparser.c1584
-rw-r--r--util/configparser.h218
-rw-r--r--util/configparser.y18
-rw-r--r--util/iana_ports.inc5
-rw-r--r--util/net_help.c7
-rw-r--r--util/rtt.c2
-rw-r--r--util/rtt.h2
-rw-r--r--validator/val_secalgo.c3
-rw-r--r--validator/val_utils.c12
-rw-r--r--validator/val_utils.h7
-rw-r--r--validator/validator.c57
59 files changed, 3676 insertions, 2774 deletions
diff --git a/Makefile.in b/Makefile.in
index 02532a951d2f..0c7e0c638b9c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -459,8 +459,8 @@ strip:
$(STRIP) unbound$(EXEEXT)
$(STRIP) unbound-checkconf$(EXEEXT)
$(STRIP) unbound-control$(EXEEXT)
- $(STRIP) unbound-host$(EXEEXT)
- $(STRIP) unbound-anchor$(EXEEXT)
+ $(STRIP) unbound-host$(EXEEXT) || $(STRIP) .libs/unbound-host$(EXEEXT)
+ $(STRIP) unbound-anchor$(EXEEXT) || $(STRIP) .libs/unbound-anchor$(EXEEXT)
pythonmod-install:
$(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG)
@@ -576,6 +576,7 @@ depend:
-e 's?$$(srcdir)/util/configlexer.c?util/configlexer.c?g' \
-e 's?$$(srcdir)/util/configparser.c?util/configparser.c?g' \
-e 's?$$(srcdir)/util/configparser.h?util/configparser.h?g' \
+ -e 's?$$(srcdir)/dnstap/dnstap_config.h??g' \
-e 's?$$(srcdir)/pythonmod/pythonmod.h?$$(PYTHONMOD_HEADER)?g' \
-e 's!\(.*\)\.o[ :]*!\1.lo \1.o: !g' \
> $(DEPEND_TMP)
@@ -689,13 +690,14 @@ iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/i
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/ldns/sbuffer.h
listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \
$(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/outside_network.h \
- $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h \
- $(srcdir)/ldns/sbuffer.h
+ $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \
+ $(srcdir)/util/net_help.h $(srcdir)/ldns/sbuffer.h
localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h $(srcdir)/services/localzone.h \
$(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h \
$(srcdir)/ldns/sbuffer.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
- $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h
+ $(srcdir)/util/net_help.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h \
+ $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h
mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
$(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
$(srcdir)/util/log.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
@@ -711,15 +713,16 @@ modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/service
$(srcdir)/services/outbound_list.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h
outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \
$(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \
- $(srcdir)/util/netevent.h
+ $(srcdir)/util/netevent.h
outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \
$(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \
- $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \
- $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \
- $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
- $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h \
- $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \
- $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \
+ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h \
+ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h \
+ $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/data/msgreply.h \
+ $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h \
+ $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h \
+ $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \
+ $(srcdir)/dnstap/dnstap.h \
alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/util/regional.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
@@ -732,8 +735,8 @@ config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h $(srcdir)/ut
$(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h \
$(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
- $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/parseutil.h \
- $(srcdir)/util/iana_ports.inc
+ $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h $(srcdir)/util/rtt.h $(srcdir)/ldns/wire2str.h \
+ $(srcdir)/ldns/parseutil.h $(srcdir)/util/iana_ports.inc
configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \
$(srcdir)/util/config_file.h util/configparser.h
configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \
@@ -743,15 +746,16 @@ fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
$(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \
- $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h $(srcdir)/services/localzone.h \
- $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \
- $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h $(srcdir)/iterator/iterator.h \
- $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \
- $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \
- $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \
- $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h $(srcdir)/libunbound/libworker.h \
- $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/libunbound/unbound.h \
- $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h $(srcdir)/util/config_file.h
+ $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \
+ $(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
+ $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/dns64/dns64.h \
+ $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \
+ $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \
+ $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h \
+ $(srcdir)/validator/val_neg.h $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h \
+ $(srcdir)/libunbound/libworker.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h \
+ $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \
+ $(srcdir)/util/config_file.h
locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h
log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h $(srcdir)/util/locks.h $(srcdir)/ldns/sbuffer.h
mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \
@@ -767,6 +771,7 @@ netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h $(srcdir)/util/neteve
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
$(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \
$(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h \
+ $(srcdir)/dnstap/dnstap.h \
$(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
$(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/module.h \
@@ -854,8 +859,8 @@ val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h $(srcdir)/valida
$(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/dname.h \
$(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \
$(srcdir)/ldns/rrdef.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h
-val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/validator/val_secalgo.h \
- $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
+val_secalgo.lo val_secalgo.o: $(srcdir)/validator/val_secalgo.c config.h $(srcdir)/util/data/packed_rrset.h \
+ $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_secalgo.h \
$(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \
$(srcdir)/ldns/sbuffer.h \
@@ -884,6 +889,11 @@ dns64.lo dns64.o: $(srcdir)/dns64/dns64.c config.h $(srcdir)/dns64/dns64.h $(src
$(srcdir)/util/regional.h
checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/testcode/checklocks.h
+dnstap.lo dnstap.o: $(srcdir)/dnstap/dnstap.c config.h $(srcdir)/ldns/sbuffer.h \
+ $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h \
+ $(srcdir)/dnstap/dnstap.h \
+ $(srcdir)/dnstap/dnstap.pb-c.h
+dnstap.pb-c.lo dnstap.pb-c.o: $(srcdir)/dnstap/dnstap.pb-c.c $(srcdir)/dnstap/dnstap.pb-c.h
unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h $(srcdir)/util/log.h $(srcdir)/util/data/dname.h \
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/testcode/unitmain.h \
$(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/rrdef.h
@@ -894,7 +904,8 @@ unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir
$(srcdir)/util/log.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h
unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \
$(srcdir)/ldns/rrdef.h $(srcdir)/ldns/keyraw.h \
- $(srcdir)/util/log.h $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
+ $(srcdir)/util/log.h \
+ $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
$(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/random.h
unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h $(srcdir)/util/log.h \
@@ -935,19 +946,21 @@ cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \
$(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/netevent.h $(srcdir)/util/alloc.h \
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \
- $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/services/cache/rrset.h \
- $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \
- $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
- $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h \
- $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h \
- $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \
- $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h
+ $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
+ $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
+ $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h \
+ $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h \
+ $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h \
+ $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/util/rbtree.h \
+ $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/wire2str.h \
+ $(srcdir)/ldns/str2wire.h
daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
$(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
- $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \
- $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \
- $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \
- $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \
+ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \
+ $(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
+ $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \
+ $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
+ $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \
$(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
$(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
@@ -959,11 +972,12 @@ remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
$(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
- $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h \
- $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h \
- $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \
- $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \
- $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \
+ $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
+ $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h $(srcdir)/util/config_file.h \
+ $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
+ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
+ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h $(srcdir)/util/fptr_wlist.h \
+ $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \
$(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \
$(srcdir)/validator/val_anchor.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
$(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \
@@ -973,14 +987,15 @@ stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(s
$(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
- $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \
- $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
- $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \
- $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \
- $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \
- $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h
+ $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
+ $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
+ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \
+ $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h \
+ $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
+ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h
unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \
- $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
+ $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
+ $(srcdir)/daemon/remote.h \
$(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
$(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \
$(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
@@ -993,7 +1008,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(sr
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
$(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
$(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
- $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
+ $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
+ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
$(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
@@ -1008,9 +1024,10 @@ testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/test
$(srcdir)/daemon/remote.h \
$(srcdir)/util/config_file.h $(srcdir)/ldns/keyraw.h $(srcdir)/daemon/unbound.c $(srcdir)/util/log.h \
$(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
- $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h \
- $(srcdir)/services/cache/rrset.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h \
- $(srcdir)/util/rtt.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
+ $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
+ $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
+ $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
+ $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
$(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/tube.h \
$(srcdir)/services/mesh.h $(srcdir)/util/net_help.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
testpkts.lo testpkts.o: $(srcdir)/testcode/testpkts.c config.h $(srcdir)/testcode/testpkts.h \
@@ -1021,7 +1038,8 @@ worker.lo worker.o: $(srcdir)/daemon/worker.c config.h $(srcdir)/util/log.h $(sr
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
$(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
$(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
- $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
+ $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/daemon.h \
+ $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
$(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
$(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
@@ -1036,10 +1054,11 @@ acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/ac
$(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
$(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
- $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \
- $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \
- $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \
- $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \
+ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \
+ $(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
+ $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \
+ $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
+ $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \
$(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
$(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/storage/slabhash.h \
$(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
@@ -1049,12 +1068,12 @@ stats.lo stats.o: $(srcdir)/daemon/stats.c config.h $(srcdir)/daemon/stats.h $(s
$(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
$(srcdir)/util/netevent.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
- $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h \
- $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
- $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \
- $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h \
- $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \
- $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h
+ $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
+ $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
+ $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/outside_network.h \
+ $(srcdir)/util/config_file.h $(srcdir)/util/tube.h $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h \
+ $(srcdir)/validator/val_utils.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
+ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/validator/val_kcache.h
replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h $(srcdir)/util/net_help.h \
$(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h $(srcdir)/testcode/testpkts.h \
$(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/ldns/str2wire.h $(srcdir)/ldns/rrdef.h
@@ -1063,10 +1082,10 @@ fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/t
$(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \
$(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
$(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \
- $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \
- $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h $(srcdir)/util/fptr_wlist.h \
- $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h \
- $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h
+ $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \
+ $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/testpkts.h \
+ $(srcdir)/util/fptr_wlist.h $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \
+ $(srcdir)/services/modstack.h $(srcdir)/ldns/sbuffer.h $(srcdir)/ldns/wire2str.h $(srcdir)/ldns/str2wire.h
lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h $(srcdir)/util/rbtree.h \
$(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \
$(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
@@ -1118,13 +1137,14 @@ libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
$(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
$(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/libunbound/worker.h \
$(srcdir)/ldns/sbuffer.h $(srcdir)/libunbound/unbound-event.h $(srcdir)/services/outside_network.h \
- $(srcdir)/util/netevent.h $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \
- $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h \
- $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h \
- $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h \
- $(srcdir)/util/config_file.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h \
- $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h \
- $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/str2wire.h
+ $(srcdir)/util/netevent.h $(srcdir)/services/mesh.h \
+ $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h $(srcdir)/util/module.h \
+ $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h $(srcdir)/services/cache/rrset.h \
+ $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/fptr_wlist.h \
+ $(srcdir)/util/tube.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/util/config_file.h \
+ $(srcdir)/util/storage/lookup3.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
+ $(srcdir)/util/data/msgencode.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_hints.h \
+ $(srcdir)/util/storage/dnstree.h $(srcdir)/ldns/str2wire.h
unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \
$(srcdir)/ldns/rrdef.h $(srcdir)/ldns/wire2str.h
asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \
@@ -1144,7 +1164,8 @@ perf.lo perf.o: $(srcdir)/testcode/perf.c config.h $(srcdir)/util/log.h $(srcdir
delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
$(srcdir)/util/config_file.h $(srcdir)/ldns/sbuffer.h
unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h \
- $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h
+ $(srcdir)/util/log.h \
+ $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h
unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \
$(srcdir)/ldns/rrdef.h \
@@ -1155,13 +1176,14 @@ pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c conf
$(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \
$(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h \
$(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \
- $(srcdir)/ldns/sbuffer.h
+ $(srcdir)/iterator/iter_delegpt.h $(srcdir)/ldns/sbuffer.h
win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \
$(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h \
- $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h $(srcdir)/ldns/sbuffer.h \
- $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/netevent.h \
- $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h $(srcdir)/ldns/rrdef.h \
- $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h \
+ $(srcdir)/daemon/worker.h $(srcdir)/libunbound/worker.h \
+ $(srcdir)/ldns/sbuffer.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
+ $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/ldns/pkthdr.h \
+ $(srcdir)/ldns/rrdef.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
+ $(srcdir)/dnstap/dnstap.h $(srcdir)/daemon/remote.h \
$(srcdir)/util/config_file.h $(srcdir)/util/winsock_event.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 \
diff --git a/compat/getentropy_linux.c b/compat/getentropy_linux.c
index 32d58a7cdbb9..60e010db713a 100644
--- a/compat/getentropy_linux.c
+++ b/compat/getentropy_linux.c
@@ -474,22 +474,24 @@ getentropy_fallback(void *buf, size_t len)
HD(cnt);
}
-#ifdef AT_RANDOM
+#ifdef HAVE_GETAUXVAL
+# ifdef AT_RANDOM
/* Not as random as you think but we take what we are given */
p = (char *) getauxval(AT_RANDOM);
if (p)
HR(p, 16);
-#endif
-#ifdef AT_SYSINFO_EHDR
+# endif
+# ifdef AT_SYSINFO_EHDR
p = (char *) getauxval(AT_SYSINFO_EHDR);
if (p)
HR(p, pgs);
-#endif
-#ifdef AT_BASE
+# endif
+# ifdef AT_BASE
p = (char *) getauxval(AT_BASE);
if (p)
HD(p);
-#endif
+# endif
+#endif /* HAVE_GETAUXVAL */
SHA512_Final(results, &ctx);
memcpy((char*)buf + i, results, min(sizeof(results), len - i));
diff --git a/config.h.in b/config.h.in
index a8fd05cb5286..c36d4b98b0f7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -42,7 +42,7 @@
/* Whether the C compiler accepts the "unused" attribute */
#undef HAVE_ATTR_UNUSED
-/* Define to 1 if your system has a working `chown' function. */
+/* Define to 1 if you have the `chown' function. */
#undef HAVE_CHOWN
/* Define to 1 if you have the `chroot' function. */
@@ -146,6 +146,9 @@
/* Whether getaddrinfo is available */
#undef HAVE_GETADDRINFO
+/* Define to 1 if you have the `getauxval' function. */
+#undef HAVE_GETAUXVAL
+
/* Define to 1 if you have the `getentropy' function. */
#undef HAVE_GETENTROPY
@@ -799,6 +802,10 @@
#define ARG_LL "%I64"
#endif
+#ifndef AF_LOCAL
+#define AF_LOCAL AF_UNIX
+#endif
+
#ifdef HAVE_ATTR_FORMAT
diff --git a/configure b/configure
index 8c6c0785260c..26e3e8296b69 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.5.1.
+# Generated by GNU Autoconf 2.69 for unbound 1.5.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.5.1'
-PACKAGE_STRING='unbound 1.5.1'
+PACKAGE_VERSION='1.5.2'
+PACKAGE_STRING='unbound 1.5.2'
PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl'
PACKAGE_URL=''
@@ -733,6 +733,7 @@ UNBOUND_PIDFILE
UNBOUND_SHARE_DIR
UNBOUND_CHROOT_DIR
UNBOUND_RUN_DIR
+ub_conf_dir
ub_conf_file
EGREP
GREP
@@ -1387,7 +1388,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.5.1 to adapt to many kinds of systems.
+\`configure' configures unbound 1.5.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1452,7 +1453,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of unbound 1.5.1:";;
+ short | recursive ) echo "Configuration of unbound 1.5.2:";;
esac
cat <<\_ACEOF
@@ -1627,7 +1628,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-unbound configure 1.5.1
+unbound configure 1.5.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2336,7 +2337,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.5.1, which was
+It was created by unbound $as_me 1.5.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2688,11 +2689,11 @@ UNBOUND_VERSION_MAJOR=1
UNBOUND_VERSION_MINOR=5
-UNBOUND_VERSION_MICRO=1
+UNBOUND_VERSION_MICRO=2
LIBUNBOUND_CURRENT=5
-LIBUNBOUND_REVISION=3
+LIBUNBOUND_REVISION=5
LIBUNBOUND_AGE=3
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -2732,7 +2733,8 @@ LIBUNBOUND_AGE=3
# 1.4.21 had 4:1:2
# 1.4.22 had 4:1:2
# 1.5.0 had 5:3:3 # adds ub_ctx_add_ta_autr
-# 1.5.1 had 5:4:3
+# 1.5.1 had 5:3:3
+# 1.5.2 had 5:5:3
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -4047,6 +4049,30 @@ cat >>confdefs.h <<_ACEOF
#define CONFIGFILE "$hdr_config"
_ACEOF
+ub_conf_dir=`$as_dirname -- "$ub_conf_file" ||
+$as_expr X"$ub_conf_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ub_conf_file" : 'X\(//\)[^/]' \| \
+ X"$ub_conf_file" : 'X\(//\)$' \| \
+ X"$ub_conf_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ub_conf_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
# Determine run, chroot directory and pidfile locations
@@ -17932,7 +17958,7 @@ if test "$ac_res" != no; then :
fi
-for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent
+for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent
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"
@@ -18271,6 +18297,17 @@ fi
done
+ for ac_func in getauxval
+do :
+ ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval"
+if test "x$ac_cv_func_getauxval" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GETAUXVAL 1
+_ACEOF
+
+fi
+done
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
$as_echo_n "checking for library containing clock_gettime... " >&6; }
if ${ac_cv_search_clock_gettime+:} false; then :
@@ -18768,7 +18805,7 @@ _ACEOF
-version=1.5.1
+version=1.5.2
date=`date +'%b %e, %Y'`
@@ -19283,7 +19320,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.5.1, which was
+This file was extended by unbound $as_me 1.5.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19349,7 +19386,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.5.1
+unbound config.status 1.5.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index e06c1d6690aa..8d496ce9bbf1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,14 +10,14 @@ sinclude(dnstap/dnstap.m4)
# must be numbers. ac_defun because of later processing
m4_define([VERSION_MAJOR],[1])
m4_define([VERSION_MINOR],[5])
-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=5
-LIBUNBOUND_REVISION=3
+LIBUNBOUND_REVISION=5
LIBUNBOUND_AGE=3
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -57,7 +57,8 @@ LIBUNBOUND_AGE=3
# 1.4.21 had 4:1:2
# 1.4.22 had 4:1:2
# 1.5.0 had 5:3:3 # adds ub_ctx_add_ta_autr
-# 1.5.1 had 5:4:3
+# 1.5.1 had 5:3:3
+# 1.5.2 had 5:5:3
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -118,6 +119,8 @@ AC_ARG_WITH([conf_file],
AC_SUBST(ub_conf_file)
ACX_ESCAPE_BACKSLASH($ub_conf_file, hdr_config)
AC_DEFINE_UNQUOTED(CONFIGFILE, ["$hdr_config"], [Pathname to the Unbound configuration file])
+ub_conf_dir=`AS_DIRNAME(["$ub_conf_file"])`
+AC_SUBST(ub_conf_dir)
# Determine run, chroot directory and pidfile locations
AC_ARG_WITH(run-dir,
@@ -975,7 +978,7 @@ AC_INCLUDES_DEFAULT
#endif
])
AC_SEARCH_LIBS([setusercontext], [util])
-AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent])
+AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent])
AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])])
AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])])
@@ -1026,6 +1029,7 @@ if test "$USE_NSS" = "no"; then
AC_LIBOBJ(sha512)
])
AC_CHECK_HEADERS([sys/sysctl.h],,, [AC_INCLUDES_DEFAULT])
+ AC_CHECK_FUNCS([getauxval])
AC_SEARCH_LIBS([clock_gettime], [rt])
;;
esac
@@ -1211,6 +1215,10 @@ dnl includes
#else
#define ARG_LL "%I64"
#endif
+
+#ifndef AF_LOCAL
+#define AF_LOCAL AF_UNIX
+#endif
]
AHX_CONFIG_FORMAT_ATTRIBUTE
diff --git a/contrib/unbound_cache.cmd b/contrib/unbound_cache.cmd
index 0f0069388dfb..532162b16191 100644
--- a/contrib/unbound_cache.cmd
+++ b/contrib/unbound_cache.cmd
@@ -2,7 +2,7 @@
rem --------------------------------------------------------------
rem -- DNS cache save/load script
rem --
-rem -- Version 1.0
+rem -- Version 1.2
rem -- By Yuri Voinov (c) 2014
rem --------------------------------------------------------------
@@ -19,31 +19,42 @@ exit 1
:start
-set arg=%1
+rem arg1 - command (optional)
+rem arg2 - file name (optional)
+set arg1=%1
+set arg2=%2
-if /I "%arg%" == "-h" goto help
+if /I "%arg1%" == "-h" goto help
-if "%arg%" == "" (
+if "%arg1%" == "" (
echo Loading cache from %program_path%\%fname%
+dir /a %program_path%\%fname%
type %program_path%\%fname%|%uc% load_cache
goto end
)
-if /I "%arg%" == "-s" (
+if defined %arg2% (goto Not_Defined) else (goto Defined)
+
+rem If file not specified; use default dump file
+:Not_defined
+if /I "%arg1%" == "-s" (
echo Saving cache to %program_path%\%fname%
%uc% dump_cache>%program_path%\%fname%
+dir /a %program_path%\%fname%
echo ok
goto end
)
-if /I "%arg%" == "-l" (
+if /I "%arg1%" == "-l" (
echo Loading cache from %program_path%\%fname%
+dir /a %program_path%\%fname%
type %program_path%\%fname%|%uc% load_cache
goto end
)
-if /I "%arg%" == "-r" (
+if /I "%arg1%" == "-r" (
echo Saving cache to %program_path%\%fname%
+dir /a %program_path%\%fname%
%uc% dump_cache>%program_path%\%fname%
echo ok
echo Loading cache from %program_path%\%fname%
@@ -51,15 +62,44 @@ type %program_path%\%fname%|%uc% load_cache
goto end
)
+rem If file name specified; use this filename
+:Defined
+if /I "%arg1%" == "-s" (
+echo Saving cache to %arg2%
+%uc% dump_cache>%arg2%
+dir /a %arg2%
+echo ok
+goto end
+)
+
+if /I "%arg1%" == "-l" (
+echo Loading cache from %arg2%
+dir /a %arg2%
+type %arg2%|%uc% load_cache
+goto end
+)
+
+if /I "%arg1%" == "-r" (
+echo Saving cache to %arg2%
+dir /a %arg2%
+%uc% dump_cache>%arg2%
+echo ok
+echo Loading cache from %arg2%
+type %arg2%|%uc% load_cache
+goto end
+)
+
:help
-echo Usage: unbound_cache.cmd [-s] or [-l] or [-r] or [-h]
+echo Usage: unbound_cache.cmd [-s] or [-l] or [-r] or [-h] [filename]
echo.
echo l - Load - default mode. Warming up Unbound DNS cache from saved file. cache-ttl must be high value.
echo s - Save - save Unbound DNS cache contents to plain file with domain names.
echo r - Reload - reloadind new cache entries and refresh existing cache
echo h - this screen.
+echo filename - file to save/load dumped cache. If not specified, %program_path%\%fname% will be used instead.
echo Note: Run without any arguments will be in default mode.
echo Also, unbound-control must be configured.
exit 1
:end
+exit 0
diff --git a/contrib/unbound_cache.sh b/contrib/unbound_cache.sh
index c3dd9c3a2df9..b3e876ba9012 100755
--- a/contrib/unbound_cache.sh
+++ b/contrib/unbound_cache.sh
@@ -1,13 +1,13 @@
#!/sbin/sh
-#
+
# --------------------------------------------------------------
# -- DNS cache save/load script
# --
-# -- Version 1.0
+# -- Version 1.2
# -- By Yuri Voinov (c) 2006, 2014
# --------------------------------------------------------------
#
-# ident "@(#)unbound_cache.sh 1.1 14/04/26 YV"
+# ident "@(#)unbound_cache.sh 1.2 14/10/30 YV"
#
#############
@@ -27,9 +27,10 @@ BASENAME=`which basename`
CAT=`which cat`
CUT=`which cut`
ECHO=`which echo`
+EXPR=`which expr`
GETOPT=`which getopt`
ID=`which id`
-PRINTF=`which printf`
+LS=`which ls`
###############
# Subroutines #
@@ -38,12 +39,13 @@ PRINTF=`which printf`
usage_note ()
{
# Script usage note
- $ECHO "Usage: `$BASENAME $0` [-s] or [-l] or [-r] or [-h]"
- $ECHO
+ $ECHO "Usage: `$BASENAME $0` [-s] or [-l] or [-r] or [-h] [filename]"
+ $ECHO .
$ECHO "l - Load - default mode. Warming up Unbound DNS cache from saved file. cache-ttl must be high value."
$ECHO "s - Save - save Unbound DNS cache contents to plain file with domain names."
$ECHO "r - Reload - reloadind new cache entries and refresh existing cache"
$ECHO "h - this screen."
+ $ECHO "filename - file to save/load dumped cache. If not specified, $CONF/$FNAME will be used instead."
$ECHO "Note: Run without any arguments will be in default mode."
$ECHO " Also, unbound-control must be configured."
exit 0
@@ -68,7 +70,12 @@ check_uc ()
check_saved_file ()
{
- if [ ! -f "$CONF/$FNAME" ]; then
+ filename=$1
+ if [ ! -z "$filename" -a ! -f "$filename" ]; then
+ $ECHO .
+ $ECHO "ERROR: File $filename does not exists. Save it first."
+ exit 1
+ elif [ ! -f "$CONF/$FNAME" ]; then
$ECHO .
$ECHO "ERROR: File $CONF/$FNAME does not exists. Save it first."
exit 1
@@ -78,24 +85,42 @@ check_saved_file ()
save_cache ()
{
# Save unbound cache
- $PRINTF "Saving cache in $CONF/$FNAME..."
- $UC dump_cache>$CONF/$FNAME
+ filename=$1
+ if [ -z "$filename" ]; then
+ $ECHO "Saving cache in $CONF/$FNAME..."
+ $UC dump_cache>$CONF/$FNAME
+ $LS -lh $CONF/$FNAME
+ else
+ $ECHO "Saving cache in $filename..."
+ $UC dump_cache>$filename
+ $LS -lh $filename
+ fi
$ECHO "ok"
}
load_cache ()
{
- # Load saved cache contents and warmup DNS cache
- $PRINTF "Loading cache from saved $CONF/$FNAME..."
- check_saved_file
- $CAT $CONF/$FNAME|$UC load_cache
+ # Load saved cache contents and warmup cache
+ filename=$1
+ if [ -z "$filename" ]; then
+ $ECHO "Loading cache from saved $CONF/$FNAME..."
+ $LS -lh $CONF/$FNAME
+ check_saved_file $filename
+ $CAT $CONF/$FNAME|$UC load_cache
+ else
+ $ECHO "Loading cache from saved $filename..."
+ $LS -lh $filename
+ check_saved_file $filename
+ $CAT $filename|$UC load_cache
+ fi
}
reload_cache ()
{
# Reloading and refresh existing cache and saved dump
- save_cache
- load_cache
+ filename=$1
+ save_cache $filename
+ load_cache $filename
}
##############
@@ -109,27 +134,41 @@ root_check
check_uc
# Check command-line arguments
-if [ "x$1" = "x" ]; then
-# If arguments list empty, load cache by default
+if [ "x$*" = "x" ]; then
+ # If arguments list empty,load cache by default
load_cache
else
- arg_list=$1
+ arg_list=$*
# Parse command line
set -- `$GETOPT sSlLrRhH: $arg_list` || {
usage_note 1>&2
}
- # Read arguments
+ # Read arguments
for i in $arg_list
do
case $i in
- -s | -S) save_cache;;
- -l | -L) load_cache;;
- -r | -R) reload_cache;;
+ -s | -S) save="1";;
+ -l | -L) save="0";;
+ -r | -R) save="2";;
-h | -H | \?) usage_note;;
+ *) shift
+ file=$1
+ break;;
esac
- break
+ shift
done
+
+ # Remove trailing --
+ shift `$EXPR $OPTIND - 1`
+fi
+
+if [ "$save" = "1" ]; then
+ save_cache $file
+elif [ "$save" = "0" ]; then
+ load_cache $file
+elif [ "$save" = "2" ]; then
+ reload_cache $file
fi
exit 0 \ No newline at end of file
diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_
index 1f9f39a3ebb2..69e9f31163ca 100755
--- a/contrib/unbound_munin_
+++ b/contrib/unbound_munin_
@@ -210,6 +210,7 @@ exist_config ( ) {
if grep '^'$1'=' $state >/dev/null 2>&1; then
echo "$mn.label $2"
echo "$mn.min 0"
+ echo "$mn.type ABSOLUTE"
fi
}
@@ -218,6 +219,7 @@ p_config ( ) {
mn=`echo $1 | sed $ABBREV | tr . _`
echo $mn.label "$2"
echo $mn.min 0
+ echo $mn.type $3
}
if test "$1" = "config" ; then
@@ -228,20 +230,21 @@ if test "$1" = "config" ; then
hits)
echo "graph_title Unbound DNS traffic and cache hits"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel queries / second"
+ echo "graph_vlabel queries / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
for x in `grep "^thread[0-9][0-9]*\.num\.queries=" $state |
sed -e 's/=.*//'`; do
exist_config $x "queries handled by `basename $x .num.queries`"
done
- p_config "total.num.queries" "total queries from clients"
- p_config "total.num.cachehits" "cache hits"
- p_config "total.num.prefetch" "cache prefetch"
- p_config "num.query.tcp" "TCP queries"
- p_config "num.query.tcpout" "TCP out queries"
- p_config "num.query.ipv6" "IPv6 queries"
- p_config "unwanted.queries" "queries that failed acl"
- p_config "unwanted.replies" "unwanted or unsolicited replies"
+ p_config "total.num.queries" "total queries from clients" "ABSOLUTE"
+ p_config "total.num.cachehits" "cache hits" "ABSOLUTE"
+ p_config "total.num.prefetch" "cache prefetch" "ABSOLUTE"
+ p_config "num.query.tcp" "TCP queries" "ABSOLUTE"
+ p_config "num.query.tcpout" "TCP out queries" "ABSOLUTE"
+ p_config "num.query.ipv6" "IPv6 queries" "ABSOLUTE"
+ p_config "unwanted.queries" "queries that failed acl" "ABSOLUTE"
+ p_config "unwanted.replies" "unwanted or unsolicited replies" "ABSOLUTE"
echo "u_replies.warning $warn"
echo "u_replies.critical $crit"
echo "graph_info DNS queries to the recursive resolver. The unwanted replies could be innocent duplicate packets, late replies, or spoof threats."
@@ -250,11 +253,12 @@ if test "$1" = "config" ; then
echo "graph_title Unbound requestlist size"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel number of queries"
+ echo "graph_scale no"
echo "graph_category DNS"
- p_config "total.requestlist.avg" "Average size of queue on insert"
- p_config "total.requestlist.max" "Max size of queue (in 5 min)"
- p_config "total.requestlist.overwritten" "Number of queries replaced by new ones"
- p_config "total.requestlist.exceeded" "Number of queries dropped due to lack of space"
+ p_config "total.requestlist.avg" "Average size of queue on insert" "GAUGE"
+ p_config "total.requestlist.max" "Max size of queue (in 5 min)" "GAUGE"
+ p_config "total.requestlist.overwritten" "Number of queries replaced by new ones" "GAUGE"
+ p_config "total.requestlist.exceeded" "Number of queries dropped due to lack of space" "GAUGE"
echo "graph_info The queries that did not hit the cache and need recursion service take up space in the requestlist. If there are too many queries, first queries get overwritten, and at last resort dropped."
;;
memory)
@@ -262,128 +266,144 @@ if test "$1" = "config" ; then
echo "graph_args --base 1024 -l 0"
echo "graph_vlabel memory used in bytes"
echo "graph_category DNS"
- p_config "mem.total.sbrk" "Total memory"
- p_config "mem.cache.rrset" "RRset cache memory"
- p_config "mem.cache.message" "Message cache memory"
- p_config "mem.mod.iterator" "Iterator module memory"
- p_config "mem.mod.validator" "Validator module and key cache memory"
- p_config "msg.cache.count" "msg cache count"
- p_config "rrset.cache.count" "rrset cache count"
- p_config "infra.cache.count" "infra cache count"
- p_config "key.cache.count" "key cache count"
+ p_config "mem.total.sbrk" "Total memory" "GAUGE"
+ p_config "mem.cache.rrset" "RRset cache memory" "GAUGE"
+ p_config "mem.cache.message" "Message cache memory" "GAUGE"
+ p_config "mem.mod.iterator" "Iterator module memory" "GAUGE"
+ p_config "mem.mod.validator" "Validator module and key cache memory" "GAUGE"
+ p_config "msg.cache.count" "msg cache count" "GAUGE"
+ p_config "rrset.cache.count" "rrset cache count" "GAUGE"
+ p_config "infra.cache.count" "infra cache count" "GAUGE"
+ p_config "key.cache.count" "key cache count" "GAUGE"
echo "graph_info The memory used by unbound."
;;
by_type)
echo "graph_title Unbound DNS queries by type"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel queries / second"
+ echo "graph_vlabel queries / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
for x in `grep "^num.query.type" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
tp=`echo $nm | sed -e s/num.query.type.//`
- p_config "$nm" "$tp"
+ p_config "$nm" "$tp" "ABSOLUTE"
done
echo "graph_info queries by DNS RR type queried for"
;;
by_class)
echo "graph_title Unbound DNS queries by class"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel queries / second"
+ echo "graph_vlabel queries / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
for x in `grep "^num.query.class" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
tp=`echo $nm | sed -e s/num.query.class.//`
- p_config "$nm" "$tp"
+ p_config "$nm" "$tp" "ABSOLUTE"
done
echo "graph_info queries by DNS RR class queried for."
;;
by_opcode)
echo "graph_title Unbound DNS queries by opcode"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel queries / second"
+ echo "graph_vlabel queries / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
for x in `grep "^num.query.opcode" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
tp=`echo $nm | sed -e s/num.query.opcode.//`
- p_config "$nm" "$tp"
+ p_config "$nm" "$tp" "ABSOLUTE"
done
echo "graph_info queries by opcode in the query packet."
;;
by_rcode)
echo "graph_title Unbound DNS answers by return code"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel answer packets / second"
+ echo "graph_vlabel answer packets / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
for x in `grep "^num.answer.rcode" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
tp=`echo $nm | sed -e s/num.answer.rcode.//`
- p_config "$nm" "$tp"
+ p_config "$nm" "$tp" "ABSOLUTE"
done
- p_config "num.answer.secure" "answer secure"
- p_config "num.answer.bogus" "answer bogus"
- p_config "num.rrset.bogus" "num rrsets marked bogus"
- echo "graph_info answers sorted by return value. rrsets bogus is the number of rrsets marked bogus per second by the validator"
+ p_config "num.answer.secure" "answer secure" "ABSOLUTE"
+ p_config "num.answer.bogus" "answer bogus" "ABSOLUTE"
+ p_config "num.rrset.bogus" "num rrsets marked bogus" "ABSOLUTE"
+ echo "graph_info answers sorted by return value. rrsets bogus is the number of rrsets marked bogus per \${graph_period} by the validator"
;;
by_flags)
echo "graph_title Unbound DNS incoming queries by flags"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel queries / second"
+ echo "graph_vlabel queries / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
- p_config "num.query.flags.QR" "QR (query reply) flag"
- p_config "num.query.flags.AA" "AA (auth answer) flag"
- p_config "num.query.flags.TC" "TC (truncated) flag"
- p_config "num.query.flags.RD" "RD (recursion desired) flag"
- p_config "num.query.flags.RA" "RA (rec avail) flag"
- p_config "num.query.flags.Z" "Z (zero) flag"
- p_config "num.query.flags.AD" "AD (auth data) flag"
- p_config "num.query.flags.CD" "CD (check disabled) flag"
- p_config "num.query.edns.present" "EDNS OPT present"
- p_config "num.query.edns.DO" "DO (DNSSEC OK) flag"
+ p_config "num.query.flags.QR" "QR (query reply) flag" "ABSOLUTE"
+ p_config "num.query.flags.AA" "AA (auth answer) flag" "ABSOLUTE"
+ p_config "num.query.flags.TC" "TC (truncated) flag" "ABSOLUTE"
+ p_config "num.query.flags.RD" "RD (recursion desired) flag" "ABSOLUTE"
+ p_config "num.query.flags.RA" "RA (rec avail) flag" "ABSOLUTE"
+ p_config "num.query.flags.Z" "Z (zero) flag" "ABSOLUTE"
+ p_config "num.query.flags.AD" "AD (auth data) flag" "ABSOLUTE"
+ p_config "num.query.flags.CD" "CD (check disabled) flag" "ABSOLUTE"
+ p_config "num.query.edns.present" "EDNS OPT present" "ABSOLUTE"
+ p_config "num.query.edns.DO" "DO (DNSSEC OK) flag" "ABSOLUTE"
echo "graph_info This graphs plots the flags inside incoming queries. For example, if QR, AA, TC, RA, Z flags are set, the query can be rejected. RD, AD, CD and DO are legitimately set by some software."
;;
histogram)
echo "graph_title Unbound DNS histogram of reply time"
echo "graph_args --base 1000 -l 0"
- echo "graph_vlabel queries / second"
+ echo "graph_vlabel queries / \${graph_period}"
+ echo "graph_scale no"
echo "graph_category DNS"
echo hcache.label "cache hits"
echo hcache.min 0
+ echo hcache.type ABSOLUTE
echo hcache.draw AREA
echo hcache.colour 999999
echo h64ms.label "0 msec - 66 msec"
echo h64ms.min 0
+ echo h64ms.type ABSOLUTE
echo h64ms.draw STACK
echo h64ms.colour 0000FF
echo h128ms.label "66 msec - 131 msec"
echo h128ms.min 0
+ echo h128ms.type ABSOLUTE
echo h128ms.colour 1F00DF
echo h128ms.draw STACK
echo h256ms.label "131 msec - 262 msec"
echo h256ms.min 0
+ echo h256ms.type ABSOLUTE
echo h256ms.draw STACK
echo h256ms.colour 3F00BF
echo h512ms.label "262 msec - 524 msec"
echo h512ms.min 0
+ echo h512ms.type ABSOLUTE
echo h512ms.draw STACK
echo h512ms.colour 5F009F
echo h1s.label "524 msec - 1 sec"
echo h1s.min 0
+ echo h1s.type ABSOLUTE
echo h1s.draw STACK
echo h1s.colour 7F007F
echo h2s.label "1 sec - 2 sec"
echo h2s.min 0
+ echo h2s.type ABSOLUTE
echo h2s.draw STACK
echo h2s.colour 9F005F
echo h4s.label "2 sec - 4 sec"
echo h4s.min 0
+ echo h4s.type ABSOLUTE
echo h4s.draw STACK
echo h4s.colour BF003F
echo h8s.label "4 sec - 8 sec"
echo h8s.min 0
+ echo h8s.type ABSOLUTE
echo h8s.draw STACK
echo h8s.colour DF001F
echo h16s.label "8 sec - ..."
echo h16s.min 0
+ echo h16s.type ABSOLUTE
echo h16s.draw STACK
echo h16s.colour FF0000
echo "graph_info Histogram of the reply times for queries."
@@ -404,27 +424,21 @@ if test $value = 0 || test $value = "0.000000"; then
fi
elapsed="$value"
-# print value for $1 / elapsed
-print_qps ( ) {
+# print value for $1
+print_value ( ) {
mn=`echo $1 | sed $ABBREV | tr . _`
get_value $1
- echo "$mn.value" `echo scale=6';' $value / $elapsed | bc `
+ echo "$mn.value" $value
}
-# print qps if line already found in $2
-print_qps_line ( ) {
+# print value if line already found in $2
+print_value_line ( ) {
mn=`echo $1 | sed $ABBREV | tr . _`
value="`echo $2 | sed -e 's/^.*=//'`"
- echo "$mn.value" `echo scale=6';' $value / $elapsed | bc `
-}
-
-# print value for $1
-print_value ( ) {
- mn=`echo $1 | sed $ABBREV | tr . _`
- get_value $1
echo "$mn.value" $value
}
+
case $id in
hits)
for x in `grep "^thread[0-9][0-9]*\.num\.queries=" $state |
@@ -433,7 +447,7 @@ hits)
num.query.tcpout num.query.ipv6 unwanted.queries \
unwanted.replies; do
if grep "^"$x"=" $state >/dev/null 2>&1; then
- print_qps $x
+ print_value $x
fi
done
;;
@@ -467,38 +481,38 @@ memory)
by_type)
for x in `grep "^num.query.type" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
- print_qps_line $nm $x
+ print_value_line $nm $x
done
;;
by_class)
for x in `grep "^num.query.class" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
- print_qps_line $nm $x
+ print_value_line $nm $x
done
;;
by_opcode)
for x in `grep "^num.query.opcode" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
- print_qps_line $nm $x
+ print_value_line $nm $x
done
;;
by_rcode)
for x in `grep "^num.answer.rcode" $state`; do
nm=`echo $x | sed -e 's/=.*$//'`
- print_qps_line $nm $x
+ print_value_line $nm $x
done
- print_qps "num.answer.secure"
- print_qps "num.answer.bogus"
- print_qps "num.rrset.bogus"
+ print_value "num.answer.secure"
+ print_value "num.answer.bogus"
+ print_value "num.rrset.bogus"
;;
by_flags)
for x in num.query.flags.QR num.query.flags.AA num.query.flags.TC num.query.flags.RD num.query.flags.RA num.query.flags.Z num.query.flags.AD num.query.flags.CD num.query.edns.present num.query.edns.DO; do
- print_qps $x
+ print_value $x
done
;;
histogram)
get_value total.num.cachehits
- echo hcache.value `echo scale=6';' $value / $elapsed | bc `
+ echo hcache.value $value
r=0
for x in histogram.000000.000000.to.000000.000001 \
histogram.000000.000001.to.000000.000002 \
@@ -520,21 +534,21 @@ histogram)
get_value $x
r=`expr $r + $value`
done
- echo h64ms.value `echo scale=6';' $r / $elapsed | bc `
+ echo h64ms.value $r
get_value histogram.000000.065536.to.000000.131072
- echo h128ms.value `echo scale=6';' $value / $elapsed | bc `
+ echo h128ms.value $value
get_value histogram.000000.131072.to.000000.262144
- echo h256ms.value `echo scale=6';' $value / $elapsed | bc `
+ echo h256ms.value $value
get_value histogram.000000.262144.to.000000.524288
- echo h512ms.value `echo scale=6';' $value / $elapsed | bc `
+ echo h512ms.value $value
get_value histogram.000000.524288.to.000001.000000
- echo h1s.value `echo scale=6';' $value / $elapsed | bc `
+ echo h1s.value $value
get_value histogram.000001.000000.to.000002.000000
- echo h2s.value `echo scale=6';' $value / $elapsed | bc `
+ echo h2s.value $value
get_value histogram.000002.000000.to.000004.000000
- echo h4s.value `echo scale=6';' $value / $elapsed | bc `
+ echo h4s.value $value
get_value histogram.000004.000000.to.000008.000000
- echo h8s.value `echo scale=6';' $value / $elapsed | bc `
+ echo h8s.value $value
r=0
for x in histogram.000008.000000.to.000016.000000 \
histogram.000016.000000.to.000032.000000 \
@@ -555,6 +569,6 @@ histogram)
get_value $x
r=`expr $r + $value`
done
- echo h16s.value `echo scale=6';' $r / $elapsed | bc `
+ echo h16s.value $r
;;
esac
diff --git a/contrib/warmup.cmd b/contrib/warmup.cmd
index d7df01827382..b3895a86fe2e 100644
--- a/contrib/warmup.cmd
+++ b/contrib/warmup.cmd
@@ -1,68 +1,153 @@
@echo off
rem --------------------------------------------------------------
-rem -- Warm up DNS cache script by your own MRU domains
+rem -- Warm up DNS cache script by your own MRU domains or from
+rem -- file when it specified as script argument.
rem --
-rem -- Version 1.0
+rem -- Version 1.1
rem -- By Yuri Voinov (c) 2014
rem --------------------------------------------------------------
+rem DNS host address
+set address="127.0.0.1"
+
rem Check dig installed
for /f "delims=" %%a in ('where dig') do @set dig=%%a
if /I "%dig%"=="" echo Dig not found. If installed, add path to PATH environment variable. & exit 1
echo Dig found: %dig%
-echo Warming up cache by MRU domains...
-rem dig -f my_domains 1>nul 2>nul
-rem echo Done.
+set arg=%1%
+
+if defined %arg% (goto builtin) else (goto from_file)
+:builtin
+echo Warming up cache by MRU domains...
for %%a in (
-mail.ru
-my.mail.ru
-mra.mail.ru
+2gis.ru
+admir.kz
+adobe.com
agent.mail.ru
-news.mail.ru
-icq.com
-lenta.ru
-gazeta.ru
-peerbet.ru
-www.opennet.ru
-snob.ru
+aimp.ru
+akamai.com
+akamai.net
+almaty.tele2.kz
+aol.com
+apple.com
+arin.com
artlebedev.ru
-mail.google.com
-translate.google.com
-drive.google.com
-google.com
-google.kz
-drive.google.com
+auto.mail.ru
+beeline.kz
+bing.com
blogspot.com
+comodo.com
+dnscrypt.org
+drive.google.com
+drive.mail.ru
+facebook.com
farmanager.com
+fb.com
+firefox.com
forum.farmanager.com
+gazeta.ru
+getsharex.com
+gismeteo.ru
+google.com
+google.kz
+google.ru
+googlevideo.com
+goto.kz
+iana.org
+icq.com
+imap.mail.ru
+instagram.com
+intel.com
+irr.kz
+java.com
+kaspersky.com
+kaspersky.ru
+kcell.kz
+krisha.kz
+lady.mail.ru
+lenta.ru
+libreoffice.org
+linkedin.com
+livejournal.com
+mail.google.com
+mail.ru
+microsoft.com
+mozilla.org
+mra.mail.ru
+munin-monitoring.org
+my.mail.ru
+news.bbcimg.co.uk
+news.mail.ru
+newsimg.bbc.net.uk
+nvidia.com
+odnoklassniki.ru
+ok.ru
+opencsw.org
+opendns.com
+opendns.org
+opennet.ru
+opera.com
+oracle.com
+peerbet.ru
+piriform.com
plugring.farmanager.com
+privoxy.org
+qip.ru
+raidcall.com
+rambler.ru
+reddit.com
+ru.wikipedia.org
+shallalist.de
+skype.com
+snob.ru
+squid-cache.org
+squidclamav.darold.net
+squidguard.org
+ssl.comodo.com
+ssl.verisign.com
symantec.com
symantecliveupdate.com
-shalla.de
-torstatus.blutmagie.de
+tele2.kz
+tengrinews.kz
+thunderbird.com
torproject.org
-dnscrypt.org
+torstatus.blutmagie.de
+translate.google.com
unbound.net
-getsharex.com
-skype.com
+verisign.com
+vk.com
+vk.me
+vk.ru
+vkontakte.com
+vkontakte.ru
vlc.org
-aimp.ru
-mozilla.org
-libreoffice.org
-piriform.com
-raidcall.com
-nvidia.com
-intel.com
-microsoft.com
+watsapp.net
+weather.mail.ru
windowsupdate.com
-ru.wikipedia.org
+www.baidu.com
www.bbc.co.uk
-tengrinews.kz
-) do "%dig%" %%a 1>nul 2>nul
+www.internic.net
+www.opennet.ru
+www.topgear.com
+ya.ru
+yahoo.com
+yandex.com
+yandex.ru
+youtube.com
+ytimg.com
+) do "%dig%" %%a @%address% 1>nul 2>nul
+goto end
+:from_file
+echo Warming up cache from %1% file...
+%dig% -f %arg% @%address% 1>nul 2>nul
+
+:end
echo Saving cache...
-unbound_cache.cmd -s
+if exist unbound_cache.cmd unbound_cache.cmd -s
echo Done.
+
+exit 0 \ No newline at end of file
diff --git a/contrib/warmup.sh b/contrib/warmup.sh
index 820f019d7122..b4d9135a68dd 100755
--- a/contrib/warmup.sh
+++ b/contrib/warmup.sh
@@ -1,65 +1,150 @@
#!/bin/sh
# --------------------------------------------------------------
-# -- Warm up DNS cache script by your own MRU domains
+# -- Warm up DNS cache script by your own MRU domains or from
+# -- file when it specified as script argument.
# --
-# -- Version 1.0
+# -- Version 1.1
# -- By Yuri Voinov (c) 2014
# --------------------------------------------------------------
+# Default DNS host address
+address="127.0.0.1"
+
+cat=`which cat`
dig=`which dig`
+if [ -z "$1" ]; then
echo "Warming up cache by MRU domains..."
-$dig -f - >/dev/null 2>&1 <<EOT
-mail.ru
-my.mail.ru
-mra.mail.ru
+$dig -f - @$address >/dev/null 2>&1 <<EOT
+2gis.ru
+admir.kz
+adobe.com
agent.mail.ru
-news.mail.ru
-icq.com
-lenta.ru
-gazeta.ru
-peerbet.ru
-www.opennet.ru
-snob.ru
+aimp.ru
+akamai.com
+akamai.net
+almaty.tele2.kz
+aol.com
+apple.com
+arin.com
artlebedev.ru
-mail.google.com
-translate.google.com
-drive.google.com
-google.com
-google.kz
-drive.google.com
+auto.mail.ru
+beeline.kz
+bing.com
blogspot.com
+clamav.net
+comodo.com
+dnscrypt.org
+drive.google.com
+drive.mail.ru
+facebook.com
farmanager.com
+fb.com
+firefox.com
forum.farmanager.com
+gazeta.ru
+getsharex.com
+gismeteo.ru
+google.com
+google.kz
+google.ru
+googlevideo.com
+goto.kz
+iana.org
+icq.com
+imap.mail.ru
+instagram.com
+instagram.com
+intel.com
+irr.kz
+java.com
+kaspersky.com
+kaspersky.ru
+kcell.kz
+krisha.kz
+lady.mail.ru
+lenta.ru
+libreoffice.org
+linkedin.com
+livejournal.com
+mail.google.com
+mail.ru
+microsoft.com
+mozilla.org
+mra.mail.ru
+munin-monitoring.org
+my.mail.ru
+news.bbcimg.co.uk
+news.mail.ru
+newsimg.bbc.net.uk
+nvidia.com
+odnoklassniki.ru
+ok.ru
+opencsw.org
+opendns.com
+opendns.org
+opennet.ru
+opera.com
+oracle.com
+peerbet.ru
+piriform.com
plugring.farmanager.com
+privoxy.org
+qip.ru
+raidcall.com
+rambler.ru
+reddit.com
+ru.wikipedia.org
+shallalist.de
+skype.com
+snob.ru
+squid-cache.org
+squidclamav.darold.net
+squidguard.org
+ssl.comodo.com
+ssl.verisign.com
symantec.com
symantecliveupdate.com
-shalla.de
-torstatus.blutmagie.de
+tele2.kz
+tengrinews.kz
+thunderbird.com
torproject.org
-dnscrypt.org
+torstatus.blutmagie.de
+translate.google.com
unbound.net
-getsharex.com
-skype.com
+verisign.com
+vk.com
+vk.me
+vk.ru
+vkontakte.com
+vkontakte.ru
vlc.org
-aimp.ru
-mozilla.org
-libreoffice.org
-piriform.com
-raidcall.com
-nvidia.com
-intel.com
-microsoft.com
+watsapp.net
+weather.mail.ru
windowsupdate.com
-ru.wikipedia.org
+www.baidu.com
www.bbc.co.uk
-tengrinews.kz
+www.internic.net
+www.opennet.ru
+www.topgear.com
+ya.ru
+yahoo.com
+yandex.com
+yandex.ru
+youtube.com
+ytimg.com
EOT
+else
+ echo "Warming up cache from $1 file..."
+ $cat $1 | $dig -f - @$address >/dev/null 2>&1
+fi
+
echo "Done."
echo "Saving cache..."
-/usr/local/bin/unbound_cache.sh -s
+script=`which unbound_cache.sh`
+[ -f "$script" ] && $script -s
echo "Done."
exit 0
diff --git a/daemon/remote.c b/daemon/remote.c
index a5be6d68c882..7a8fdb75e75b 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -327,9 +327,13 @@ add_open(const char* ip, int nr, struct listen_port** list, int noproto_is_err,
* group as the user we run as.
*/
if(fd != -1) {
+#ifdef HAVE_CHOWN
if (cfg->username && cfg->username[0])
chown(ip, cfg->uid, cfg->gid);
chmod(ip, (mode_t)(S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP));
+#else
+ (void)cfg;
+#endif
}
} else {
hints.ai_socktype = SOCK_STREAM;
diff --git a/daemon/unbound.c b/daemon/unbound.c
index a31b0392ffdb..f6bd924a57b9 100644
--- a/daemon/unbound.c
+++ b/daemon/unbound.c
@@ -504,16 +504,18 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode,
if(cfg->pidfile && cfg->pidfile[0]) {
writepid(daemon->pidfile, getpid());
if(cfg->username && cfg->username[0]) {
+# ifdef HAVE_CHOWN
if(chown(daemon->pidfile, cfg->uid, cfg->gid) == -1) {
log_err("cannot chown %u.%u %s: %s",
(unsigned)cfg->uid, (unsigned)cfg->gid,
daemon->pidfile, strerror(errno));
}
+# endif /* HAVE_CHOWN */
}
}
#else
(void)daemon;
-#endif
+#endif /* HAVE_KILL */
/* Set user context */
#ifdef HAVE_GETPWNAM
diff --git a/daemon/worker.c b/daemon/worker.c
index 59ae9dfcefcb..5edc21dd46e7 100644
--- a/daemon/worker.c
+++ b/daemon/worker.c
@@ -900,7 +900,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
goto send_reply;
}
if(local_zones_answer(worker->daemon->local_zones, &qinfo, &edns,
- c->buffer, worker->scratchpad)) {
+ c->buffer, worker->scratchpad, repinfo)) {
regional_free_all(worker->scratchpad);
if(sldns_buffer_limit(c->buffer) == 0) {
comm_point_drop_reply(repinfo);
diff --git a/doc/Changelog b/doc/Changelog
index 1bd19f19c436..4b3a4949a217 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,12 +1,94 @@
-8 December 2014: Wouter
- - Fix CVE-2014-8602: denial of service by making resolver chase
- endless series of delegations.
+13 February 2015: Wouter
+ - Fix #643: doc/example.conf.in: unnecessary whitespace.
+
+12 February 2015: Wouter
+ - tag 1.5.2rc1
+
+11 February 2015: Wouter
+ - iana portlist update.
+
+10 February 2015: Wouter
+ - Fix scrubber with harden-glue turned off to reject NS (and other
+ not-address) records.
+
+9 February 2015: Wouter
+ - Fix validation failure in case upstream forwarder (ISC BIND) does
+ not have the same trust anchors and decides to insert unsigned NS
+ record in authority section.
+
+2 February 2015: Wouter
+ - infra-cache-min-rtt patch from Florian Riehm, for expected long
+ uplink roundtrip times.
+
+30 January 2015: Wouter
+ - Fix 0x20 capsforid fallback to omit gratuitous NS and additional
+ section changes.
+ - Portability fix for Solaris ('sun' is not usable for a variable).
+
+29 January 2015: Wouter
+ - Fix pyunbound byte string representation for python3.
+
+26 January 2015: Wouter
+ - Fix unintended use of gcc extension for incomplete enum types,
+ compile with pedantic c99 compliance (from Daniel Dickman).
+
+23 January 2015: Wouter
+ - windows port fixes, no AF_LOCAL, no chown, no chmod(grp).
+
+16 January 2015: Wouter
+ - unit test for local unix connection. Documentation and log_addr
+ does not inspect port for AF_LOCAL.
+ - unbound-checkconf -f prints chroot with pidfile path.
+
+13 January 2015: Wouter
+ - iana portlist update.
+
+12 January 2015: Wouter
+ - Cast sun_len sizeof to socklen_t.
+ - Fix pyunbound ord call, portable for python 2 and 3.
+
+7 January 2015: Wouter
+ - Fix warnings in pythonmod changes.
+
+6 January 2015: Wouter
+ - iana portlist update.
- patch for remote control over local sockets, from Dag-Erling
Smorgrav, Ilya Bakulin. Use control-interface: /path/sock and
control-use-cert: no.
- Fixup that patch and uid lookup (only for daemon).
- coded the default of control-use-cert, to yes.
+5 January 2015: Wouter
+ - getauxval test for ppc64 linux compatibility.
+ - make strip works for unbound-host and unbound-anchor.
+ - patch from Stephane Lapie that adds to the python API, that
+ exposes struct delegpt, and adds the find_delegation function.
+ - print query name when max target count is exceeded.
+ - patch from Stuart Henderson that fixes DESTDIR in
+ unbound-control-setup for installs where config is not in
+ the prefix location.
+ - Fix #634: fix fail to start on Linux LTS 3.14.X, ignores missing
+ IP_MTU_DISCOVER OMIT option (fix from Remi Gacogne).
+ - Updated contrib warmup.cmd/sh to support two modes - load
+ from pre-defined list of domains or (with filename as argument)
+ load from user-specified list of domains, and updated contrib
+ unbound_cache.sh/cmd to support loading/save/reload cache to/from
+ default path or (with secondary argument) arbitrary path/filename,
+ from Yuri Voinov.
+ - Patch from Philip Paeps to contrib/unbound_munin_ that uses
+ type ABSOLUTE. Allows munin.conf: [idleserver.example.net]
+ unbound_munin_hits.graph_period minute
+
+9 December 2014: Wouter
+ - svn trunk has 1.5.2 in development.
+ - config.guess and config.sub update from libtoolize.
+ - local-zone: example.com inform makes unbound log a message with
+ client IP for queries in that zone. Eg. for finding infected hosts.
+
+8 December 2014: Wouter
+ - Fix CVE-2014-8602: denial of service by making resolver chase
+ endless series of delegations.
+
1 December 2014: Wouter
- Fix bug#632: unbound fails to build on AArch64, protects
getentropy compat code from calling sysctl if it is has been removed.
diff --git a/doc/README b/doc/README
index df92fccb5d36..5c6648599e5c 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.5.1
+README for Unbound 1.5.2
Copyright 2007 NLnet Labs
http://unbound.net
diff --git a/doc/example.conf.in b/doc/example.conf.in
index b95b3a6339c4..ddcb4f03d1bc 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.5.1.
+# See unbound.conf(5) man page, version 1.5.2.
#
# this is a comment.
@@ -138,6 +138,9 @@ server:
# the time to live (TTL) value for cached roundtrip times, lameness and
# EDNS version information for hosts. In seconds.
# infra-host-ttl: 900
+
+ # minimum wait time for responses, increase if uplink is long. In msec.
+ # infra-cache-min-rtt: 50
# the number of slabs to use for the Infrastructure cache.
# the number of slabs must be a power of 2.
@@ -437,7 +440,7 @@ server:
# the amount of memory to use for the negative cache (used for DLV).
# plain value in bytes or you can append k, m or G. default is "1Mb".
# neg-cache-size: 1m
-
+
# By default, for a number of zones a small default 'nothing here'
# reply is built-in. Query traffic is thus blocked. If you
# wish to serve such zone you can unblock them by uncommenting one
@@ -497,6 +500,7 @@ server:
# o redirect serves the zone data for any subdomain in the zone.
# o nodefault can be used to normally resolve AS112 zones.
# o typetransparent resolves normally for other types and other names
+ # o inform resolves normally, but logs client IP address
#
# defaults are localhost address, reverse for 127.0.0.1 and ::1
# and nxdomain for AS112 zones. If you configure one of these zones
@@ -552,6 +556,10 @@ remote-control:
# set up the keys and certificates with unbound-control-setup.
# control-enable: no
+ # Set to no and use an absolute path as control-interface to use
+ # a unix local named pipe for unbound-control.
+ # control-use-cert: yes
+
# what interfaces are listened to for remote control.
# give 0.0.0.0 and ::0 to listen to all interfaces.
# control-interface: 127.0.0.1
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index 55a9cb286e6e..02f45e66fc69 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "libunbound" "3" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" libunbound.3 -- unbound library functions manual
.\"
@@ -42,7 +42,7 @@
.B ub_ctx_zone_remove,
.B ub_ctx_data_add,
.B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.5.1 functions.
+\- Unbound DNS validating resolver 1.5.2 functions.
.SH "SYNOPSIS"
.B #include <unbound.h>
.LP
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index 80a3438dcaac..aaba750ae0ed 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "unbound-anchor" "8" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\"
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index 5ab53480b6fe..93fe204a1aa2 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "unbound-checkconf" "8" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" unbound-checkconf.8 -- unbound configuration checker manual
.\"
@@ -13,6 +13,7 @@ unbound\-checkconf
.SH "SYNOPSIS"
.B unbound\-checkconf
.RB [ \-h ]
+.RB [ \-f ]
.RB [ \-o
.IR option ]
.RI [ cfgfile ]
@@ -29,6 +30,9 @@ The available options are:
.B \-h
Show the version and commandline option help.
.TP
+.B \-f
+Print full pathname, with chroot applied to it. Use with the -o option.
+.TP
.B \-o\fI option
If given, after checking the config file the value of this option is
printed to stdout. For "" (disabled) options an empty line is printed.
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index 92d2d1a9343d..95ed5908616b 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "unbound-control" "8" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" unbound-control.8 -- unbound remote control manual
.\"
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index d9e92bbe099a..475b04cc473e 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "unbound\-host" "1" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" unbound-host.1 -- unbound DNS lookup utility
.\"
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index 3b74a3242ada..50a04b3d0a25 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "unbound" "8" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" unbound.8 -- unbound manual
.\"
@@ -9,7 +9,7 @@
.\"
.SH "NAME"
.B unbound
-\- Unbound DNS validating resolver 1.5.1.
+\- Unbound DNS validating resolver 1.5.2.
.SH "SYNOPSIS"
.B unbound
.RB [ \-h ]
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index d4420e26a0a4..bbfce632e30f 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "Dec 8, 2014" "NLnet Labs" "unbound 1.5.1"
+.TH "unbound.conf" "5" "Feb 19, 2015" "NLnet Labs" "unbound 1.5.2"
.\"
.\" unbound.conf.5 -- unbound.conf manual
.\"
@@ -301,6 +301,11 @@ by threads. Must be set to a power of 2.
.B infra\-cache\-numhosts: \fI<number>
Number of hosts for which information is cached. Default is 10000.
.TP
+.B infra\-cache\-min\-rtt: \fI<msec>
+Lower limit for dynamic retransmit timeout calculation in infrastructure
+cache. Default is 50 milliseconds. Increase this value if using forwarders
+needing more time to do recursive name resolution.
+.TP
.B do\-ip4: \fI<yes or no>
Enable or disable whether ip4 queries are answered or issued. Default is yes.
.TP
@@ -791,7 +796,7 @@ data leakage about the local network to the upstream DNS servers.
.B local\-zone: \fI<zone> <type>
Configure a local zone. The type determines the answer to give if
there is no match from local\-data. The types are deny, refuse, static,
-transparent, redirect, nodefault, typetransparent, and are explained
+transparent, redirect, nodefault, typetransparent, inform, and are explained
below. After that the default settings are listed. Use local\-data: to
enter data into the local zone. Answers for local zones are authoritative
DNS answers. By default the zones are class IN.
@@ -841,6 +846,13 @@ local\-data: "example.com. A 127.0.0.1"
queries for www.example.com and www.foo.example.com are redirected, so
that users with web browsers cannot access sites with suffix example.com.
.TP 10
+\h'5'\fIinform\fR
+The query is answered normally. The client IP address (@portnumber)
+is printed to the logfile. The log message is: timestamp, unbound-pid,
+info: zonename inform IP@port queryname type class. This option can be
+used for normal resolution, but machines looking up infected names are
+logged, eg. to run antivirus on them.
+.TP 10
\h'5'\fInodefault\fR
Used to turn off default contents for AS112 zones. The other types
also turn off default contents for the zone. The 'nodefault' option
diff --git a/iterator/iter_scrub.c b/iterator/iter_scrub.c
index b2248bc0cbc5..1c81975b234f 100644
--- a/iterator/iter_scrub.c
+++ b/iterator/iter_scrub.c
@@ -680,7 +680,9 @@ scrub_sanitize(sldns_buffer* pkt, struct msg_parse* msg,
* (we dont want its glue that was approved
* during the normalize action) */
del_addi = 1;
- } else if(!env->cfg->harden_glue) {
+ } else if(!env->cfg->harden_glue && (
+ rrset->type == LDNS_RR_TYPE_A ||
+ rrset->type == LDNS_RR_TYPE_AAAA)) {
/* store in cache! Since it is relevant
* (from normalize) it will be picked up
* from the cache to be used later */
diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c
index 9d0aa698f996..10ae12f75c6c 100644
--- a/iterator/iter_utils.c
+++ b/iterator/iter_utils.c
@@ -715,6 +715,42 @@ reply_equal(struct reply_info* p, struct reply_info* q, struct regional* region)
}
void
+caps_strip_reply(struct reply_info* rep)
+{
+ size_t i;
+ if(!rep) return;
+ /* see if message is a referral, in which case the additional and
+ * NS record cannot be removed */
+ /* referrals have the AA flag unset (strict check, not elsewhere in
+ * unbound, but for 0x20 this is very convenient). */
+ if(!(rep->flags&BIT_AA))
+ return;
+ /* remove the additional section from the reply */
+ if(rep->ar_numrrsets != 0) {
+ verbose(VERB_ALGO, "caps fallback: removing additional section");
+ rep->rrset_count -= rep->ar_numrrsets;
+ rep->ar_numrrsets = 0;
+ }
+ /* is there an NS set in the authority section to remove? */
+ /* the failure case (Cisco firewalls) only has one rrset in authsec */
+ for(i=rep->an_numrrsets; i<rep->an_numrrsets+rep->ns_numrrsets; i++) {
+ struct ub_packed_rrset_key* s = rep->rrsets[i];
+ if(ntohs(s->rk.type) == LDNS_RR_TYPE_NS) {
+ /* remove NS rrset and break from loop (loop limits
+ * have changed) */
+ /* move last rrset into this position (there is no
+ * additional section any more) */
+ verbose(VERB_ALGO, "caps fallback: removing NS rrset");
+ if(i < rep->rrset_count-1)
+ rep->rrsets[i]=rep->rrsets[rep->rrset_count-1];
+ rep->rrset_count --;
+ rep->ns_numrrsets --;
+ break;
+ }
+ }
+}
+
+void
iter_store_parentside_rrset(struct module_env* env,
struct ub_packed_rrset_key* rrset)
{
diff --git a/iterator/iter_utils.h b/iterator/iter_utils.h
index d7c2b68afa2d..9373487e002c 100644
--- a/iterator/iter_utils.h
+++ b/iterator/iter_utils.h
@@ -223,6 +223,15 @@ int iter_msg_from_zone(struct dns_msg* msg, struct delegpt* dp,
int reply_equal(struct reply_info* p, struct reply_info* q, struct regional* region);
/**
+ * Remove unused bits from the reply if possible.
+ * So that caps-for-id (0x20) fallback is more likely to be successful.
+ * This removes like, the additional section, and NS record in the authority
+ * section if those records are gratuitous (not for a referral).
+ * @param rep: the reply to strip stuff out of.
+ */
+void caps_strip_reply(struct reply_info* rep);
+
+/**
* Store parent-side rrset in seperate rrset cache entries for later
* last-resort * lookups in case the child-side versions of this information
* fails.
diff --git a/iterator/iterator.c b/iterator/iterator.c
index 6e05c99a0e95..2037cc8814f2 100644
--- a/iterator/iterator.c
+++ b/iterator/iterator.c
@@ -1383,8 +1383,10 @@ query_for_targets(struct module_qstate* qstate, struct iter_qstate* iq,
return 0;
if(iq->depth > 0 && iq->target_count &&
iq->target_count[1] > MAX_TARGET_COUNT) {
- verbose(VERB_QUERY, "request has exceeded the maximum "
- "number of glue fetches %d", iq->target_count[1]);
+ char s[LDNS_MAX_DOMAINLEN+1];
+ dname_str(qstate->qinfo.qname, s);
+ verbose(VERB_QUERY, "request %s has exceeded the maximum "
+ "number of glue fetches %d", s, iq->target_count[1]);
return 0;
}
@@ -1581,8 +1583,10 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq,
}
if(iq->depth > 0 && iq->target_count &&
iq->target_count[1] > MAX_TARGET_COUNT) {
- verbose(VERB_QUERY, "request has exceeded the maximum "
- "number of glue fetches %d", iq->target_count[1]);
+ char s[LDNS_MAX_DOMAINLEN+1];
+ dname_str(qstate->qinfo.qname, s);
+ verbose(VERB_QUERY, "request %s has exceeded the maximum "
+ "number of glue fetches %d", s, iq->target_count[1]);
return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL);
}
/* mark cycle targets for parent-side lookups */
@@ -2878,6 +2882,9 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq,
iq->response->rep);
if(event == module_event_capsfail || iq->caps_fallback) {
+ /* for fallback we care about main answer, not additionals */
+ /* removing that makes comparison more likely to succeed */
+ caps_strip_reply(iq->response->rep);
if(!iq->caps_fallback) {
/* start fallback */
iq->caps_fallback = 1;
diff --git a/libunbound/libworker.c b/libunbound/libworker.c
index e388e7956c81..c72b586ab70d 100644
--- a/libunbound/libworker.c
+++ b/libunbound/libworker.c
@@ -606,7 +606,7 @@ int libworker_fg(struct ub_ctx* ctx, struct ctx_query* q)
sldns_buffer_write_u16_at(w->back->udp_buff, 0, qid);
sldns_buffer_write_u16_at(w->back->udp_buff, 2, qflags);
if(local_zones_answer(ctx->local_zones, &qinfo, &edns,
- w->back->udp_buff, w->env->scratch)) {
+ w->back->udp_buff, w->env->scratch, NULL)) {
regional_free_all(w->env->scratch);
libworker_fillup_fg(q, LDNS_RCODE_NOERROR,
w->back->udp_buff, sec_status_insecure, NULL);
@@ -676,7 +676,7 @@ int libworker_attach_mesh(struct ub_ctx* ctx, struct ctx_query* q,
sldns_buffer_write_u16_at(w->back->udp_buff, 0, qid);
sldns_buffer_write_u16_at(w->back->udp_buff, 2, qflags);
if(local_zones_answer(ctx->local_zones, &qinfo, &edns,
- w->back->udp_buff, w->env->scratch)) {
+ w->back->udp_buff, w->env->scratch, NULL)) {
regional_free_all(w->env->scratch);
free(qinfo.qname);
libworker_event_done_cb(q, LDNS_RCODE_NOERROR,
@@ -796,7 +796,7 @@ handle_newq(struct libworker* w, uint8_t* buf, uint32_t len)
sldns_buffer_write_u16_at(w->back->udp_buff, 0, qid);
sldns_buffer_write_u16_at(w->back->udp_buff, 2, qflags);
if(local_zones_answer(w->ctx->local_zones, &qinfo, &edns,
- w->back->udp_buff, w->env->scratch)) {
+ w->back->udp_buff, w->env->scratch, NULL)) {
regional_free_all(w->env->scratch);
q->msg_security = sec_status_insecure;
add_bg_result(w, q, w->back->udp_buff, UB_NOERROR, NULL);
diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i
index 313c74862f4d..1bef79f22094 100644
--- a/libunbound/python/libunbound.i
+++ b/libunbound/python/libunbound.i
@@ -44,6 +44,10 @@
%pythoncode %{
import encodings.idna
+ try:
+ import builtins
+ except ImportError:
+ import __builtin__ as builtins
# Ensure compatibility with older python versions
if 'bytes' not in vars():
@@ -52,7 +56,7 @@
def ord(s):
if isinstance(s, int):
return s
- return __builtins__.ord(s)
+ return builtins.ord(s)
%}
//%include "doc.i"
@@ -699,7 +703,7 @@ Result: ['74.125.43.147', '74.125.43.99', '74.125.43.103', '74.125.43.104']
while (idx < slen):
complen = ord(s[idx])
# In python 3.x `str()` converts the string to unicode which is the expected text string type
- res.append(str(s[idx+1:idx+1+complen]))
+ res.append(str(s[idx+1:idx+1+complen].decode()))
idx += complen + 1
return res
diff --git a/pythonmod/interface.i b/pythonmod/interface.i
index 4f1a25f21344..b2dd089043ed 100644
--- a/pythonmod/interface.i
+++ b/pythonmod/interface.i
@@ -26,6 +26,9 @@
#include "util/storage/lruhash.h"
#include "services/cache/dns.h"
#include "services/mesh.h"
+ #include "iterator/iter_delegpt.h"
+ #include "iterator/iter_hints.h"
+ #include "iterator/iter_utils.h"
#include "ldns/wire2str.h"
#include "ldns/str2wire.h"
#include "ldns/pkthdr.h"
@@ -672,6 +675,99 @@ struct config_file {
};
/* ************************************************************************************ *
+ ASN: Adding structures related to forwards_lookup and dns_cache_find_delegation
+ * ************************************************************************************ */
+struct delegpt_ns {
+ struct delegpt_ns* next;
+ int resolved;
+ uint8_t got4;
+ uint8_t got6;
+ uint8_t lame;
+ uint8_t done_pside4;
+ uint8_t done_pside6;
+};
+
+struct delegpt_addr {
+ struct delegpt_addr* next_result;
+ struct delegpt_addr* next_usable;
+ struct delegpt_addr* next_target;
+ int attempts;
+ int sel_rtt;
+ int bogus;
+ int lame;
+};
+
+struct delegpt {
+ int namelabs;
+ struct delegpt_ns* nslist;
+ struct delegpt_addr* target_list;
+ struct delegpt_addr* usable_list;
+ struct delegpt_addr* result_list;
+ int bogus;
+ uint8_t has_parent_side_NS;
+ uint8_t dp_type_mlc;
+};
+
+
+%inline %{
+ PyObject* _get_dp_dname(struct delegpt* dp) {
+ return PyString_FromStringAndSize((char*)dp->name, dp->namelen);
+ }
+ PyObject* _get_dp_dname_components(struct delegpt* dp) {
+ return GetNameAsLabelList((char*)dp->name, dp->namelen);
+ }
+ PyObject* _get_dpns_dname(struct delegpt_ns* dpns) {
+ return PyString_FromStringAndSize((char*)dpns->name, dpns->namelen);
+ }
+ PyObject* _get_dpns_dname_components(struct delegpt_ns* dpns) {
+ return GetNameAsLabelList((char*)dpns->name, dpns->namelen);
+ }
+
+ PyObject* _delegpt_addr_addr_get(struct delegpt_addr* target) {
+ char dest[64];
+ delegpt_addr_addr2str(target, dest, 64);
+ if (dest[0] == 0)
+ return Py_None;
+ return PyString_FromString(dest);
+ }
+
+%}
+
+%extend delegpt {
+ %pythoncode %{
+ __swig_getmethods__["dname"] = _unboundmodule._get_dp_dname
+ if _newclass:dname = _swig_property(_unboundmodule._get_dp_dname)
+
+ __swig_getmethods__["dname_list"] = _unboundmodule._get_dp_dname_components
+ if _newclass:dname_list = _swig_property(_unboundmodule._get_dp_dname_components)
+
+ def _get_dname_str(self): return dnameAsStr(self.dname)
+ __swig_getmethods__["dname_str"] = _get_dname_str
+ if _newclass:dname_str = _swig_property(_get_dname_str)
+ %}
+}
+%extend delegpt_ns {
+ %pythoncode %{
+ __swig_getmethods__["dname"] = _unboundmodule._get_dpns_dname
+ if _newclass:dname = _swig_property(_unboundmodule._get_dpns_dname)
+
+ __swig_getmethods__["dname_list"] = _unboundmodule._get_dpns_dname_components
+ if _newclass:dname_list = _swig_property(_unboundmodule._get_dpns_dname_components)
+
+ def _get_dname_str(self): return dnameAsStr(self.dname)
+ __swig_getmethods__["dname_str"] = _get_dname_str
+ if _newclass:dname_str = _swig_property(_get_dname_str)
+ %}
+}
+%extend delegpt_addr {
+ %pythoncode %{
+ def _addr_get(self): return _delegpt_addr_addr_get(self)
+ __swig_getmethods__["addr"] = _addr_get
+ if _newclass:addr = _swig_property(_addr_get)
+ %}
+}
+
+/* ************************************************************************************ *
Enums
* ************************************************************************************ */
%rename ("MODULE_STATE_INITIAL") "module_state_initial";
@@ -880,6 +976,65 @@ int set_return_msg(struct module_qstate* qstate,
%}
/* ************************************************************************************ *
+ ASN: Delegation pointer related functions
+ * ************************************************************************************ */
+
+/* Functions which we will need to lookup delegations */
+struct delegpt* dns_cache_find_delegation(struct module_env* env,
+ uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass,
+ struct regional* region, struct dns_msg** msg, uint32_t timenow);
+int iter_dp_is_useless(struct query_info* qinfo, uint16_t qflags,
+ struct delegpt* dp);
+struct iter_hints_stub* hints_lookup_stub(struct iter_hints* hints,
+ uint8_t* qname, uint16_t qclass, struct delegpt* dp);
+
+/* Custom function to perform logic similar to the one in daemon/cachedump.c */
+struct delegpt* find_delegation(struct module_qstate* qstate, char *nm, size_t nmlen);
+
+%{
+#define BIT_RD 0x100
+
+struct delegpt* find_delegation(struct module_qstate* qstate, char *nm, size_t nmlen)
+{
+ struct delegpt *dp;
+ struct dns_msg *msg = NULL;
+ struct regional* region = qstate->env->scratch;
+ char b[260];
+ struct query_info qinfo;
+ struct iter_hints_stub* stub;
+ uint32_t timenow = *qstate->env->now;
+
+ regional_free_all(region);
+ qinfo.qname = (uint8_t*)nm;
+ qinfo.qname_len = nmlen;
+ qinfo.qtype = LDNS_RR_TYPE_A;
+ qinfo.qclass = LDNS_RR_CLASS_IN;
+
+ while(1) {
+ dp = dns_cache_find_delegation(qstate->env, (uint8_t*)nm, nmlen, qinfo.qtype, qinfo.qclass, region, &msg, timenow);
+ if(!dp)
+ return NULL;
+ if(iter_dp_is_useless(&qinfo, BIT_RD, dp)) {
+ if (dname_is_root((uint8_t*)nm))
+ return NULL;
+ nm = (char*)dp->name;
+ nmlen = dp->namelen;
+ dname_remove_label((uint8_t**)&nm, &nmlen);
+ dname_str((uint8_t*)nm, b);
+ continue;
+ }
+ stub = hints_lookup_stub(qstate->env->hints, qinfo.qname, qinfo.qclass, dp);
+ if (stub) {
+ return stub->dp;
+ } else {
+ return dp;
+ }
+ }
+ return NULL;
+}
+%}
+
+/* ************************************************************************************ *
Functions
* ************************************************************************************ */
diff --git a/pythonmod/pythonmod_utils.c b/pythonmod/pythonmod_utils.c
index 1091dcf10727..05914b88a8fb 100644
--- a/pythonmod/pythonmod_utils.c
+++ b/pythonmod/pythonmod_utils.c
@@ -48,6 +48,7 @@
#include "util/data/msgreply.h"
#include "util/storage/slabhash.h"
#include "util/regional.h"
+#include "iterator/iter_delegpt.h"
#include "ldns/sbuffer.h"
#undef _POSIX_C_SOURCE
@@ -176,3 +177,17 @@ void reply_addr2str(struct comm_reply* reply, char* dest, int maxlen)
return;
dest[maxlen-1] = 0;
}
+
+/* Convert target->addr to string */
+void delegpt_addr_addr2str(struct delegpt_addr* target, char *dest, int maxlen)
+{
+ int af = (int)((struct sockaddr_in*) &(target->addr))->sin_family;
+ void* sinaddr = &((struct sockaddr_in*) &(target->addr))->sin_addr;
+
+ if(af == AF_INET6)
+ sinaddr = &((struct sockaddr_in6*)&(target->addr))->sin6_addr;
+ dest[0] = 0;
+ if (inet_ntop(af, sinaddr, dest, (socklen_t)maxlen) == 0)
+ return;
+ dest[maxlen-1] = 0;
+}
diff --git a/pythonmod/pythonmod_utils.h b/pythonmod/pythonmod_utils.h
index a901f391a460..768eb46de6ac 100644
--- a/pythonmod/pythonmod_utils.h
+++ b/pythonmod/pythonmod_utils.h
@@ -42,6 +42,7 @@
#define PYTHONMOD_UTILS_H
#include "util/module.h"
+struct delegpt_addr;
/**
* Store the reply_info and query_info pair in message cache (qstate->msg_cache)
@@ -86,4 +87,7 @@ int createResponse(struct module_qstate* qstate, sldns_buffer* pkt);
*/
void reply_addr2str(struct comm_reply* reply, char* dest, int maxlen);
+/* Convert target->addr to string */
+void delegpt_addr_addr2str(struct delegpt_addr* target, char *dest, int maxlen);
+
#endif /* PYTHONMOD_UTILS_H */
diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c
index 0ce0a6b7b175..1addfa901dbb 100644
--- a/services/listen_dnsport.c
+++ b/services/listen_dnsport.c
@@ -372,29 +372,47 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
* (and also uses the interface mtu to determine the size of the packets).
* So there won't be any EMSGSIZE error. Against DNS fragmentation attacks.
* FreeBSD already has same semantics without setting the option. */
-# if defined(IP_PMTUDISC_OMIT)
- int action = IP_PMTUDISC_OMIT;
-# else
- int action = IP_PMTUDISC_DONT;
-# endif
+ int omit_set = 0;
+ int action;
+# if defined(IP_PMTUDISC_OMIT)
+ action = IP_PMTUDISC_OMIT;
if (setsockopt(s, IPPROTO_IP, IP_MTU_DISCOVER,
&action, (socklen_t)sizeof(action)) < 0) {
- log_err("setsockopt(..., IP_MTU_DISCOVER, "
-# if defined(IP_PMTUDISC_OMIT)
- "IP_PMTUDISC_OMIT"
+
+ if (errno != EINVAL) {
+ log_err("setsockopt(..., IP_MTU_DISCOVER, IP_PMTUDISC_OMIT...) failed: %s",
+ strerror(errno));
+
+# ifndef USE_WINSOCK
+ close(s);
# else
- "IP_PMTUDISC_DONT"
+ closesocket(s);
# endif
- "...) failed: %s",
- strerror(errno));
+ *noproto = 0;
+ *inuse = 0;
+ return -1;
+ }
+ }
+ else
+ {
+ omit_set = 1;
+ }
+# endif
+ if (omit_set == 0) {
+ action = IP_PMTUDISC_DONT;
+ if (setsockopt(s, IPPROTO_IP, IP_MTU_DISCOVER,
+ &action, (socklen_t)sizeof(action)) < 0) {
+ log_err("setsockopt(..., IP_MTU_DISCOVER, IP_PMTUDISC_DONT...) failed: %s",
+ strerror(errno));
# ifndef USE_WINSOCK
- close(s);
+ close(s);
# else
- closesocket(s);
+ closesocket(s);
# endif
- *noproto = 0;
- *inuse = 0;
- return -1;
+ *noproto = 0;
+ *inuse = 0;
+ return -1;
+ }
}
# elif defined(IP_DONTFRAG)
int off = 0;
@@ -580,15 +598,16 @@ create_local_accept_sock(const char *path, int* noproto)
{
#ifdef HAVE_SYS_UN_H
int s;
- struct sockaddr_un sun;
+ struct sockaddr_un usock;
+ verbose(VERB_ALGO, "creating unix socket %s", path);
#ifdef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN
/* this member exists on BSDs, not Linux */
- sun.sun_len = (sa_family_t)sizeof(sun);
+ usock.sun_len = (socklen_t)sizeof(usock);
#endif
- sun.sun_family = AF_LOCAL;
+ usock.sun_family = AF_LOCAL;
/* length is 92-108, 104 on FreeBSD */
- (void)strlcpy(sun.sun_path, path, sizeof(sun.sun_path));
+ (void)strlcpy(usock.sun_path, path, sizeof(usock.sun_path));
if ((s = socket(PF_LOCAL, SOCK_STREAM, 0)) == -1) {
log_err("Cannot create local socket %s (%s)",
@@ -603,7 +622,7 @@ create_local_accept_sock(const char *path, int* noproto)
return -1;
}
- if (bind(s, (struct sockaddr *)&sun,
+ if (bind(s, (struct sockaddr *)&usock,
(socklen_t)sizeof(struct sockaddr_un)) == -1) {
log_err("Cannot bind local socket %s (%s)",
path, strerror(errno));
@@ -623,6 +642,7 @@ create_local_accept_sock(const char *path, int* noproto)
(void)noproto; /*unused*/
return s;
#else
+ (void)path;
log_err("Local sockets are not supported");
*noproto = 1;
return -1;
diff --git a/services/localzone.c b/services/localzone.c
index d285a127cbbf..57510bd27364 100644
--- a/services/localzone.c
+++ b/services/localzone.c
@@ -48,6 +48,7 @@
#include "util/data/packed_rrset.h"
#include "util/data/msgencode.h"
#include "util/net_help.h"
+#include "util/netevent.h"
#include "util/data/msgreply.h"
#include "util/data/msgparse.h"
@@ -1022,6 +1023,10 @@ void local_zones_print(struct local_zones* zones)
log_nametypeclass(0, "static zone",
z->name, 0, z->dclass);
break;
+ case local_zone_inform:
+ log_nametypeclass(0, "inform zone",
+ z->name, 0, z->dclass);
+ break;
default:
log_nametypeclass(0, "badtyped zone",
z->name, 0, z->dclass);
@@ -1169,9 +1174,25 @@ lz_zone_answer(struct local_zone* z, struct query_info* qinfo,
return 0;
}
+/** print log information for an inform zone query */
+static void
+lz_inform_print(struct local_zone* z, struct query_info* qinfo,
+ struct comm_reply* repinfo)
+{
+ char ip[128], txt[512];
+ char zname[LDNS_MAX_DOMAINLEN+1];
+ uint16_t port = ntohs(((struct sockaddr_in*)&repinfo->addr)->sin_port);
+ dname_str(z->name, zname);
+ addr_to_str(&repinfo->addr, repinfo->addrlen, ip, sizeof(ip));
+ snprintf(txt, sizeof(txt), "%s inform %s@%u", zname, ip,
+ (unsigned)port);
+ log_nametypeclass(0, txt, qinfo->qname, qinfo->qtype, qinfo->qclass);
+}
+
int
local_zones_answer(struct local_zones* zones, struct query_info* qinfo,
- struct edns_data* edns, sldns_buffer* buf, struct regional* temp)
+ struct edns_data* edns, sldns_buffer* buf, struct regional* temp,
+ struct comm_reply* repinfo)
{
/* see if query is covered by a zone,
* if so: - try to match (exact) local data
@@ -1190,6 +1211,9 @@ local_zones_answer(struct local_zones* zones, struct query_info* qinfo,
lock_rw_rdlock(&z->lock);
lock_rw_unlock(&zones->lock);
+ if(z->type == local_zone_inform && repinfo)
+ lz_inform_print(z, qinfo, repinfo);
+
if(local_data_answer(z, qinfo, edns, buf, temp, labs, &ld)) {
lock_rw_unlock(&z->lock);
return 1;
@@ -1209,6 +1233,7 @@ const char* local_zone_type2str(enum localzone_type t)
case local_zone_typetransparent: return "typetransparent";
case local_zone_static: return "static";
case local_zone_nodefault: return "nodefault";
+ case local_zone_inform: return "inform";
}
return "badtyped";
}
@@ -1227,6 +1252,8 @@ int local_zone_str2type(const char* type, enum localzone_type* t)
*t = local_zone_typetransparent;
else if(strcmp(type, "redirect") == 0)
*t = local_zone_redirect;
+ else if(strcmp(type, "inform") == 0)
+ *t = local_zone_inform;
else return 0;
return 1;
}
diff --git a/services/localzone.h b/services/localzone.h
index 788fbfb3ba2b..29ba8663fd04 100644
--- a/services/localzone.h
+++ b/services/localzone.h
@@ -49,6 +49,7 @@ struct config_file;
struct edns_data;
struct query_info;
struct sldns_buffer;
+struct comm_reply;
/**
* Local zone type
@@ -70,7 +71,9 @@ enum localzone_type {
local_zone_redirect,
/** remove default AS112 blocking contents for zone
* nodefault is used in config not during service. */
- local_zone_nodefault
+ local_zone_nodefault,
+ /** log client address, but no block (transparent) */
+ local_zone_inform
};
/**
@@ -220,12 +223,14 @@ void local_zones_print(struct local_zones* zones);
* @param edns: edns info (parsed).
* @param buf: buffer with query ID and flags, also for reply.
* @param temp: temporary storage region.
+ * @param repinfo: source address for checks. may be NULL.
* @return true if answer is in buffer. false if query is not answered
* by authority data. If the reply should be dropped altogether, the return
* value is true, but the buffer is cleared (empty).
*/
int local_zones_answer(struct local_zones* zones, struct query_info* qinfo,
- struct edns_data* edns, struct sldns_buffer* buf, struct regional* temp);
+ struct edns_data* edns, struct sldns_buffer* buf, struct regional* temp,
+ struct comm_reply* repinfo);
/**
* Parse the string into localzone type.
diff --git a/smallapp/unbound-checkconf.c b/smallapp/unbound-checkconf.c
index 7723c3357695..b5d7b9f44419 100644
--- a/smallapp/unbound-checkconf.c
+++ b/smallapp/unbound-checkconf.c
@@ -78,6 +78,7 @@ usage()
printf(" Checks unbound configuration file for errors.\n");
printf("file if omitted %s is used.\n", CONFIGFILE);
printf("-o option print value of option to stdout.\n");
+ printf("-f output full pathname with chroot applied, eg. with -o pidfile.\n");
printf("-h show this usage help.\n");
printf("Version %s\n", PACKAGE_VERSION);
printf("BSD licensed, see LICENSE in source package for details.\n");
@@ -90,10 +91,15 @@ usage()
* @param cfg: config
* @param opt: option name without trailing :.
* This is different from config_set_option.
+ * @param final: if final pathname with chroot applied has to be printed.
*/
static void
-print_option(struct config_file* cfg, const char* opt)
+print_option(struct config_file* cfg, const char* opt, int final)
{
+ if(strcmp(opt, "pidfile") == 0 && final) {
+ printf("%s\n", fname_after_chroot(cfg->pidfile, cfg, 1));
+ return;
+ }
if(!config_get_option(cfg, opt, config_print_func, stdout))
fatal_exit("cannot print option '%s'", opt);
}
@@ -456,7 +462,7 @@ check_hints(struct config_file* cfg)
/** check config file */
static void
-checkconf(const char* cfgfile, const char* opt)
+checkconf(const char* cfgfile, const char* opt, int final)
{
struct config_file* cfg = config_create();
if(!cfg)
@@ -467,7 +473,7 @@ checkconf(const char* cfgfile, const char* opt)
exit(1);
}
if(opt) {
- print_option(cfg, opt);
+ print_option(cfg, opt, final);
config_delete(cfg);
return;
}
@@ -493,6 +499,7 @@ extern char* optarg;
int main(int argc, char* argv[])
{
int c;
+ int final = 0;
const char* f;
const char* opt = NULL;
const char* cfgfile = CONFIGFILE;
@@ -505,8 +512,11 @@ int main(int argc, char* argv[])
cfgfile = CONFIGFILE;
#endif /* USE_WINSOCK */
/* parse the options */
- while( (c=getopt(argc, argv, "ho:")) != -1) {
+ while( (c=getopt(argc, argv, "fho:")) != -1) {
switch(c) {
+ case 'f':
+ final = 1;
+ break;
case 'o':
opt = optarg;
break;
@@ -523,7 +533,7 @@ int main(int argc, char* argv[])
if(argc == 1)
f = argv[0];
else f = cfgfile;
- checkconf(f, opt);
+ checkconf(f, opt, final);
checklock_stop();
return 0;
}
diff --git a/smallapp/unbound-control-setup.sh.in b/smallapp/unbound-control-setup.sh.in
index 79605dc6fd45..75e76e25d967 100644
--- a/smallapp/unbound-control-setup.sh.in
+++ b/smallapp/unbound-control-setup.sh.in
@@ -36,8 +36,7 @@
# settings:
# directory for files
-prefix=@prefix@
-DESTDIR=@sysconfdir@/unbound
+DESTDIR=@ub_conf_dir@
# issuer and subject name for certificates
SERVERNAME=unbound
diff --git a/smallapp/unbound-control.c b/smallapp/unbound-control.c
index ac8d96857d47..3b47d3bf885a 100644
--- a/smallapp/unbound-control.c
+++ b/smallapp/unbound-control.c
@@ -204,12 +204,12 @@ contact_server(const char* svr, struct config_file* cfg, int statuscmd)
fatal_exit("could not parse IP@port: %s", svr);
#ifdef HAVE_SYS_UN_H
} else if(svr[0] == '/') {
- struct sockaddr_un* sun = (struct sockaddr_un *) &addr;
- sun->sun_family = AF_LOCAL;
+ struct sockaddr_un* usock = (struct sockaddr_un *) &addr;
+ usock->sun_family = AF_LOCAL;
#ifdef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN
- sun->sun_len = (sa_family_t)sizeof(sun);
+ usock->sun_len = (socklen_t)sizeof(usock);
#endif
- (void)strlcpy(sun->sun_path, svr, sizeof(sun->sun_path));
+ (void)strlcpy(usock->sun_path, svr, sizeof(usock->sun_path));
addrlen = (socklen_t)sizeof(struct sockaddr_un);
addrfamily = AF_LOCAL;
#endif
diff --git a/testcode/do-tests.sh b/testcode/do-tests.sh
index 84d2ef566fd9..6ea12cd2f336 100755
--- a/testcode/do-tests.sh
+++ b/testcode/do-tests.sh
@@ -14,7 +14,7 @@ NEED_NOMINGW='tcp_sigpipe.tpkg 07-confroot.tpkg 08-host-lib.tpkg fwd_ancil.tpkg'
test_tool_avail "dig"
test_tool_avail "ldns-testns"
-# test for ipv6, uses streamptcp peculiarity.
+# test for ipv6, uses streamtcp peculiarity.
if ./streamtcp -f ::1 2>&1 | grep "not supported" >/dev/null 2>&1; then
HAVE_IPV6=no
else
diff --git a/testcode/testbed.sh b/testcode/testbed.sh
deleted file mode 100755
index 62ce2059be61..000000000000
--- a/testcode/testbed.sh
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env bash
-# Testbed for NSD.
-# By Wouter Wijngaards, NLnet Labs, 2006.
-# BSD License.
-
-# this version prefers gmake if available.
-# adds variable LDNS for the LDNS path to use.
-
-# global settings
-CONFIGURE_FLAGS=""
-REPORT_FILE=testdata/testbed.report
-LOG_FILE=testdata/testbed.log
-HOST_FILE=testdata/host_file.$USER
-
-if test ! -f $HOST_FILE; then
- echo "No such file: $HOST_FILE"
- exit 1
-fi
-
-function echossh() # like ssh but echos.
-{
- echo "> ssh $*"
- ssh $*
-}
-
-# Compile and run NSD on platforms
-function dotest()
-# parameters: <host> <dir>
-# host is name of ssh host
-# dir is directory of nsd trunk on host
-{
- echo "$1 begin on "`date` | tee -a $REPORT_FILE
-
- DISABLE=""
- if test $IP6 = no; then
- DISABLE="--disable-ipv6"
- fi
- if test x$LDNS != x; then
- DISABLE="--with-ldns=$LDNS $DISABLE"
- fi
- if test x$LIBEVENT != x; then
- DISABLE="--with-libevent=$LIBEVENT $DISABLE"
- fi
-
- cat >makeconf.mak.$$ << EOF
-#configure: configure.ac
-# $AC_CMD
-# touch configure
-Makefile: Makefile.in #configure
- ./configure $CONFIGURE_FLAGS $DISABLE
- touch Makefile
-EOF
- scp makeconf.mak.$$ $1:$2
- # determine make to use
- tempx=`ssh $1 "cd $2; which gmake"`
- MAKE_CMD=`ssh $1 "cd $2; if test -f '$tempx'; then echo $tempx; else echo $MAKE_CMD; fi"`
-
- if test $SVN = yes; then
- echossh $1 "cd $2; svn up"
- echossh $1 "cd $2; $MAKE_CMD -f makeconf.mak.$$ configure"
- else
- # svn and autoconf locally
- echo "fake svn via svnexport, tar, autoconf, bison, flex."
- svn export svn+ssh://open.nlnetlabs.nl/svn/nsd/trunk unbound_ttt
- (cd unbound_ttt; $AC_CMD; rm -r autom4te* .c-mode-rc.el .cvsignore)
- if test $FIXCONFIGURE = yes; then
- echo fixing up configure length test.
- (cd unbound_ttt; mv configure oldconf; sed -e 's?while (test "X"?lt_cv_sys_max_cmd_len=65500; echo skip || while (test "X"?' <oldconf >configure; chmod +x ./configure)
- fi
- du unbound_ttt
- rsync -vrcpz --rsync-path=/home/wouter/bin/rsync unbound_ttt $1:unbound_ttt
- # tar czf unbound_ttt.tgz unbound_ttt
- rm -rf unbound_ttt
- # ls -al unbound_ttt.tgz
- # scp unbound_ttt.tgz $1:unbound_ttt.tar.gz
- # rm unbound_ttt.tgz
- # echossh $1 "gtar xzf unbound_ttt.tar.gz && rm unbound_ttt.tar.gz"
- fi
- echossh $1 "cd $2; $MAKE_CMD -f makeconf.mak.$$ Makefile"
- echossh $1 "cd $2; $MAKE_CMD all tests"
- echossh $1 "cd $2; $MAKE_CMD doc"
- if test $RUN_TEST = yes; then
- echossh $1 "cd $2; bash testcode/do-tests.sh"
- echossh $1 "cd $2/testdata; sh ../testcode/mini_tpkg.sh -q report" | tee -a $REPORT_FILE
- fi
- echossh $1 "cd $2; rm -f makeconf.mak.$$"
- rm -f makeconf.mak.$$
- echo "$1 end on "`date` | tee -a $REPORT_FILE
-}
-
-echo "on "`date`" by $USER." > $REPORT_FILE
-echo "on "`date`" by $USER." > $LOG_FILE
-
-# read host names
-declare -a hostname desc dir vars
-IFS=' '
-i=0
-while read a b c d; do
- if echo $a | grep "^#" >/dev/null; then
- continue # skip it
- fi
- # append after arrays
- hostname[$i]=$a
- desc[$i]=$b
- dir[$i]=$c
- vars[$i]=$d
- i=$(($i+1))
-done <$HOST_FILE
-echo "testing on $i hosts"
-
-# do the test
-for((i=0; i<${#hostname[*]}; i=$i+1)); do
- if echo ${hostname[$i]} | grep "^#" >/dev/null; then
- continue # skip it
- fi
- # echo "hostname=[${hostname[$i]}]"
- # echo "desc=[${desc[$i]}]"
- # echo "dir=[${dir[$i]}]"
- # echo "vars=[${vars[$i]}]"
- AC_CMD="libtoolize -c --force; autoconf && autoheader"
- MAKE_CMD="make"
- SVN=yes
- IP6=yes
- FIXCONFIGURE=no
- RUN_TEST=yes
- LDNS=
- LIBEVENT=
- eval ${vars[$i]}
- echo "*** ${hostname[$i]} ${desc[$i]} ***" | tee -a $LOG_FILE | tee -a $REPORT_FILE
- dotest ${hostname[$i]} ${dir[$i]} 2>&1 | tee -a $LOG_FILE
-done
-
-echo "done"
diff --git a/testcode/testbed.txt b/testcode/testbed.txt
deleted file mode 100644
index b0175049eec4..000000000000
--- a/testcode/testbed.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-Testbed.sh help page.
-
-Testbed helps in running the test packages (using tpkg(1)) on several systems.
-The script is specially written for unbound (edit it to change to different
-software). It is licensed BSD.
-
-The hosts to run on are listed in host_file.<username>. You need to have
-public-key authorized ssh access to these systems (or type your password lots
-and lots of times). The host_file describes the directories and environment
-of each host. You need only user-level access to the host.
-
-The host_file is very restrictive in formatting. Comments are lines starting
-with the # mark. The entries must be separated by tabs. Please list the
-hostname<tab>description<tab>checkoutdir<tab>variables
-
-hostname: network hostname to ssh to.
-desc: pretty text to describe the machine architecture.
-checkoutdir: directory on the remote host where a svn checkout is present.
-variables: zero or more variables separated by spaces. BLA=value BAR=val.
-
-Only important variable for unbound is the LDNS=<dir> variable that if present
-forces --with-ldns=<dir> to be passed to ./configure. In case LDNS is not
-installed on the system itself, but present somewhere else.
-
-You can also set LIBEVENT=<dir> for the libevent directory, if it is
-installed in a nonstandard location.
-
-*** Running the testbed
-
-Run by executing the script. It will take all the hosts from the file in
-turn and update the svn directory there, possible autoreconf if necessary,
-possibly ./configure <args> if necessary, make the executables.
-Then it will run the testcode/do-tests script. This script should execute
-the tests that this host is capable of running.
-
-in testdata/testbed.log has a line-by-line log. See your make errors here.
-in testdata/testbed.report has only the tpkg reports. Summary.
-
diff --git a/testdata/ctrl_pipe.tpkg b/testdata/ctrl_pipe.tpkg
new file mode 100644
index 000000000000..877fcf9010d9
--- /dev/null
+++ b/testdata/ctrl_pipe.tpkg
Binary files differ
diff --git a/testdata/fwd_capsid_strip.tpkg b/testdata/fwd_capsid_strip.tpkg
new file mode 100644
index 000000000000..c0be8a3c5dd6
--- /dev/null
+++ b/testdata/fwd_capsid_strip.tpkg
Binary files differ
diff --git a/testdata/val_spurious_ns.rpl b/testdata/val_spurious_ns.rpl
new file mode 100644
index 000000000000..741fd1affc3c
--- /dev/null
+++ b/testdata/val_spurious_ns.rpl
@@ -0,0 +1,151 @@
+; config options
+; The island of trust is at example.com
+server:
+ trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
+ val-override-date: "20070916134226"
+ target-fetch-policy: "0 0 0 0 0"
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test validator with spurious unsigned NS in auth section
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
+ENTRY_END
+
+; response to DNSKEY priming query
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN DNSKEY
+SECTION ANSWER
+example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJII s70j+sDS/UT2QRp61SE7S3E EXopNXoFE73JLRmvpi/UrOO/Vz4Se 6wXv/CYCKjGw06U4WRgR YXcpEhJROyNapmdIKSx hOzfLVE1gqA0PweZR8d tY3aNQSRn3sPpwJr6Mi /PqQKAMMrZ9ckJpf1+b QMOOvxgzz2U1GS18b3y ZKcgTMEaJzd/GZYzi/B N2DzQ0MsrSwYXfsNLFO Bbs8PJMW4LYIxeeOe6rUgkWOF 7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}
+example.com. 3600 IN RRSIG DNSKEY 3 2 3600 20070926134802 20070829134802 2854 example.com. MCwCFG1yhRNtTEa3Eno2zhVVuy2EJX3wAhQeLyUp6+UXcpC5qGNu9tkrTEgPUg== ;{id = 2854}
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
+ENTRY_END
+
+; response to query of interest
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854}
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+;example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; recursion happens here.
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+SECTION AUTHORITY
+; removed by spurious NS record removal code
+;;example.com. IN NS ns.example.com.
+;;example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854}
+ENTRY_END
+
+SCENARIO_END
diff --git a/util/config_file.c b/util/config_file.c
index 3554e3fa0505..f4eaccf1b3db 100644
--- a/util/config_file.c
+++ b/util/config_file.c
@@ -55,6 +55,7 @@
#include "util/regional.h"
#include "util/fptr_wlist.h"
#include "util/data/dname.h"
+#include "util/rtt.h"
#include "ldns/wire2str.h"
#include "ldns/parseutil.h"
#ifdef HAVE_GLOB_H
@@ -129,6 +130,7 @@ config_create(void)
cfg->prefetch_key = 0;
cfg->infra_cache_slabs = 4;
cfg->infra_cache_numhosts = 10000;
+ cfg->infra_cache_min_rtt = 50;
cfg->delay_close = 0;
if(!(cfg->outgoing_avail_ports = (int*)calloc(65536, sizeof(int))))
goto error_exit;
@@ -375,6 +377,10 @@ int config_set_option(struct config_file* cfg, const char* opt,
{ IS_NUMBER_OR_ZERO; cfg->max_ttl = atoi(val); MAX_TTL=(time_t)cfg->max_ttl;}
else if(strcmp(opt, "cache-min-ttl:") == 0)
{ IS_NUMBER_OR_ZERO; cfg->min_ttl = atoi(val); MIN_TTL=(time_t)cfg->min_ttl;}
+ else if(strcmp(opt, "infra-cache-min-rtt:") == 0) {
+ IS_NUMBER_OR_ZERO; cfg->infra_cache_min_rtt = atoi(val);
+ RTT_MIN_TIMEOUT=cfg->infra_cache_min_rtt;
+ }
else S_NUMBER_OR_ZERO("infra-host-ttl:", host_ttl)
else S_POW2("infra-cache-slabs:", infra_cache_slabs)
else S_SIZET_NONZERO("infra-cache-numhosts:", infra_cache_numhosts)
@@ -623,6 +629,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_DEC(opt, "cache-min-ttl", min_ttl)
else O_DEC(opt, "infra-host-ttl", host_ttl)
else O_DEC(opt, "infra-cache-slabs", infra_cache_slabs)
+ else O_DEC(opt, "infra-cache-min-rtt", infra_cache_min_rtt)
else O_MEM(opt, "infra-cache-numhosts", infra_cache_numhosts)
else O_UNS(opt, "delay-close", delay_close)
else O_YNO(opt, "do-ip4", do_ip4)
@@ -1188,6 +1195,7 @@ config_apply(struct config_file* config)
{
MAX_TTL = (time_t)config->max_ttl;
MIN_TTL = (time_t)config->min_ttl;
+ RTT_MIN_TIMEOUT = config->infra_cache_min_rtt;
EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size;
MINIMAL_RESPONSES = config->minimal_responses;
RRSET_ROUNDROBIN = config->rrset_roundrobin;
@@ -1205,6 +1213,8 @@ void config_lookup_uid(struct config_file* cfg)
cfg->uid = pwd->pw_uid;
cfg->gid = pwd->pw_gid;
}
+#else
+ (void)cfg;
#endif
}
diff --git a/util/config_file.h b/util/config_file.h
index 327eadc76f7b..7ffc00a02d2e 100644
--- a/util/config_file.h
+++ b/util/config_file.h
@@ -119,6 +119,8 @@ struct config_file {
size_t infra_cache_slabs;
/** max number of hosts in the infra cache */
size_t infra_cache_numhosts;
+ /** min value for infra cache rtt */
+ int infra_cache_min_rtt;
/** delay close of udp-timeouted ports, if 0 no delayclose. in msec */
int delay_close;
diff --git a/util/configlexer.c b/util/configlexer.c
index 3a71d967e687..7bb48afda21a 100644
--- a/util/configlexer.c
+++ b/util/configlexer.c
@@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 162
-#define YY_END_OF_BUFFER 163
+#define YY_NUM_RULES 164
+#define YY_END_OF_BUFFER 165
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -372,185 +372,187 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[1611] =
+static yyconst flex_int16_t yy_accept[1628] =
{ 0,
- 1, 1, 144, 144, 148, 148, 152, 152, 156, 156,
- 1, 1, 163, 160, 1, 142, 142, 161, 2, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 161, 144,
- 145, 145, 146, 161, 148, 149, 149, 150, 161, 155,
- 152, 153, 153, 154, 161, 156, 157, 157, 158, 161,
- 159, 143, 2, 147, 159, 161, 160, 0, 1, 2,
- 2, 2, 2, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 144, 0, 148, 0, 155, 0, 152, 156,
- 0, 159, 0, 2, 2, 159, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 159, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 159, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 65, 160, 160, 160, 160,
- 160, 6, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 159, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 159, 160, 160, 160, 160, 29, 160, 160, 160,
- 160, 160, 160, 160, 160, 129, 160, 12, 13, 160,
- 15, 14, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 122,
- 160, 160, 160, 160, 160, 3, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 159, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 151, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 32, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 33, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 80, 151, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 79, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 63,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 20, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 30,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 31, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 22, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 26, 160, 27, 160, 160, 160,
- 66, 160, 67, 160, 64, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 5, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 82, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 23, 160, 160, 160,
- 160, 107, 106, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 34, 160, 160, 160, 160, 160, 160, 160,
- 160, 69, 68, 160, 160, 160, 160, 160, 160, 160,
- 103, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 50,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 54, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 105,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 4,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 100, 160, 160, 160, 160, 160, 160,
- 160, 116, 101, 160, 127, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 21, 160, 160, 160, 160,
- 71, 160, 72, 70, 160, 160, 160, 160, 160, 160,
- 78, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 102, 160, 160, 160, 160, 126, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 62, 160, 160,
- 160, 160, 160, 160, 160, 160, 28, 160, 160, 17,
-
- 160, 160, 160, 16, 160, 87, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 41,
- 42, 160, 160, 160, 160, 160, 160, 130, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 73, 160, 160, 160, 160, 160, 77, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 81, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 121, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 91, 160, 95, 160, 160, 160, 160, 76, 160,
-
- 160, 114, 160, 160, 160, 128, 160, 160, 160, 160,
- 160, 160, 160, 135, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 94, 160, 160, 160, 160, 43,
- 44, 160, 49, 96, 160, 108, 104, 160, 160, 37,
- 160, 98, 160, 160, 160, 160, 160, 7, 160, 61,
- 113, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 83, 134, 160, 160,
- 160, 160, 160, 160, 160, 160, 123, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 97,
-
- 160, 36, 38, 160, 160, 160, 160, 160, 60, 160,
- 160, 160, 160, 117, 18, 19, 160, 160, 160, 160,
- 160, 160, 160, 58, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 119, 160, 160, 160, 160, 160, 160,
- 160, 160, 35, 160, 160, 160, 160, 160, 160, 11,
- 160, 160, 160, 160, 160, 160, 160, 10, 160, 160,
- 39, 160, 125, 118, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 90, 89, 160, 120, 115,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 45, 160, 124, 160,
-
- 160, 160, 160, 40, 160, 160, 160, 84, 86, 109,
- 160, 160, 160, 88, 160, 160, 160, 160, 160, 160,
- 160, 160, 131, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 24, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 133, 160, 160, 112, 160, 160, 160, 160, 160,
- 160, 160, 25, 160, 9, 160, 160, 110, 51, 160,
- 160, 160, 93, 160, 160, 160, 160, 160, 160, 132,
- 74, 160, 160, 160, 53, 57, 52, 160, 46, 160,
- 8, 160, 160, 92, 160, 160, 160, 160, 160, 160,
-
- 160, 160, 160, 56, 160, 47, 160, 111, 160, 160,
- 85, 160, 160, 160, 160, 160, 160, 75, 55, 48,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 59, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 99, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 138, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 136, 160,
-
- 139, 140, 160, 160, 160, 160, 160, 137, 141, 0
+ 1, 1, 146, 146, 150, 150, 154, 154, 158, 158,
+ 1, 1, 165, 162, 1, 144, 144, 163, 2, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 163, 146,
+ 147, 147, 148, 163, 150, 151, 151, 152, 163, 157,
+ 154, 155, 155, 156, 163, 158, 159, 159, 160, 163,
+ 161, 145, 2, 149, 161, 163, 162, 0, 1, 2,
+ 2, 2, 2, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 146, 0, 150, 0, 157, 0, 154, 158,
+ 0, 161, 0, 2, 2, 161, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 161, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 161, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 66, 162, 162, 162, 162,
+ 162, 6, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 161, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 161, 162, 162, 162, 162, 29, 162, 162, 162,
+ 162, 162, 162, 162, 162, 131, 162, 12, 13, 162,
+ 15, 14, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 124,
+ 162, 162, 162, 162, 162, 3, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 161, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 153, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 32, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 33, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 81, 153, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 80, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 64, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 20, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 30, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 31, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 22, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 26, 162, 27, 162,
+ 162, 162, 67, 162, 68, 162, 65, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 5, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 83, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 23,
+ 162, 162, 162, 162, 108, 107, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 34, 162, 162, 162, 162,
+ 162, 162, 162, 162, 70, 69, 162, 162, 162, 162,
+ 162, 162, 162, 104, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 51, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 55, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 106, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 4, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 101, 162, 162,
+ 162, 162, 162, 162, 162, 117, 162, 102, 162, 129,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 21, 162, 162, 162, 162, 72, 162, 73, 71, 162,
+ 162, 162, 162, 162, 162, 79, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 103, 162, 162, 162,
+ 162, 128, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 63, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 28, 162, 162, 17, 162, 162, 162, 16,
+ 162, 88, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 41, 42, 162, 162, 162,
+ 162, 162, 162, 162, 132, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 74, 162,
+ 162, 162, 162, 162, 78, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 82, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 123, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 92,
+
+ 162, 96, 162, 162, 162, 162, 77, 162, 162, 115,
+ 162, 162, 162, 162, 130, 162, 162, 162, 162, 162,
+ 162, 162, 137, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 95, 162, 162, 162, 162, 162, 43,
+ 44, 162, 50, 97, 162, 109, 105, 162, 162, 37,
+ 162, 99, 162, 162, 162, 162, 162, 7, 162, 62,
+ 114, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 84, 136, 162,
+ 162, 162, 162, 162, 162, 162, 162, 125, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 98, 162, 36, 38, 162, 162, 162, 162, 162,
+ 61, 162, 162, 162, 162, 119, 18, 19, 162, 162,
+ 162, 162, 162, 162, 162, 59, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 121, 118, 162, 162, 162,
+ 162, 162, 162, 162, 162, 35, 162, 162, 162, 162,
+ 162, 162, 11, 162, 162, 162, 162, 162, 162, 162,
+ 162, 10, 162, 162, 39, 162, 127, 120, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 91,
+ 90, 162, 122, 116, 162, 162, 162, 162, 162, 162,
+
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 45, 162, 126, 162, 162, 162, 162, 40, 162,
+ 162, 162, 85, 87, 110, 162, 162, 162, 89, 162,
+ 162, 162, 162, 162, 162, 162, 162, 133, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 24, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 135, 162, 162,
+ 113, 162, 162, 162, 162, 162, 162, 48, 162, 25,
+ 162, 9, 162, 162, 111, 52, 162, 162, 162, 94,
+ 162, 162, 162, 162, 162, 162, 134, 75, 162, 162,
+
+ 162, 54, 58, 53, 162, 46, 162, 8, 162, 162,
+ 93, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 57, 162, 47, 162, 112, 162, 162, 86, 162, 162,
+ 162, 162, 162, 162, 76, 56, 49, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 60, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 100, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+
+ 162, 140, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 138, 162, 141, 142, 162,
+ 162, 162, 162, 162, 139, 143, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -596,15 +598,15 @@ static yyconst flex_int32_t yy_meta[66] =
1, 1, 1, 1, 1
} ;
-static yyconst flex_int16_t yy_base[1625] =
+static yyconst flex_int16_t yy_base[1642] =
{ 0,
0, 0, 63, 66, 69, 71, 77, 83, 88, 91,
- 129, 135, 428, 340, 95, 4656, 4656, 4656, 107, 110,
+ 129, 135, 428, 340, 95, 4681, 4681, 4681, 107, 110,
142, 180, 108, 50, 145, 172, 118, 148, 121, 181,
197, 166, 217, 223, 251, 230, 164, 262, 116, 312,
- 4656, 4656, 4656, 94, 298, 4656, 4656, 4656, 96, 269,
- 294, 4656, 4656, 4656, 244, 254, 4656, 4656, 4656, 102,
- 249, 4656, 259, 4656, 247, 287, 237, 309, 111, 0,
+ 4681, 4681, 4681, 94, 298, 4681, 4681, 4681, 96, 269,
+ 294, 4681, 4681, 4681, 244, 254, 4681, 4681, 4681, 102,
+ 249, 4681, 259, 4681, 247, 287, 237, 309, 111, 0,
313, 0, 0, 284, 170, 265, 288, 289, 296, 305,
301, 273, 302, 328, 306, 311, 308, 309, 216, 325,
329, 339, 353, 344, 356, 357, 338, 365, 346, 367,
@@ -631,8 +633,8 @@ static yyconst flex_int16_t yy_base[1625] =
934, 960, 938, 945, 943, 949, 959, 969, 973, 970,
982, 985, 976, 983, 981, 992, 996, 978, 1002, 1001,
- 1010, 1015, 1012, 1003, 1021, 4656, 1026, 1004, 1028, 1023,
- 1033, 4656, 1037, 1038, 1020, 1041, 1048, 1006, 1044, 1047,
+ 1010, 1015, 1012, 1003, 1021, 4681, 1026, 1004, 1028, 1023,
+ 1033, 4681, 1037, 1038, 1020, 1041, 1048, 1006, 1044, 1047,
1049, 1063, 1051, 1072, 1064, 1060, 1107, 1075, 1076, 1104,
1098, 1085, 1110, 1089, 1116, 1103, 1112, 1131, 1102, 1125,
1122, 1144, 1136, 1141, 1157, 1130, 1150, 1148, 1151, 899,
@@ -645,324 +647,328 @@ static yyconst flex_int16_t yy_base[1625] =
1342, 1318, 1317, 1321, 1331, 1333, 1327, 1332, 1335, 1344,
1341, 1343, 1350, 1337, 1348, 1371, 1370, 1373, 1376, 1366,
1368, 1377, 1378, 1386, 1389, 1397, 1401, 1392, 1400, 1411,
- 1408, 1416, 1412, 1426, 1404, 1431, 4656, 1445, 1442, 1424,
- 1437, 1448, 1443, 1435, 1484, 4656, 1439, 4656, 4656, 1451,
- 4656, 4656, 1465, 1438, 1473, 1449, 1532, 1475, 1467, 1472,
+ 1408, 1416, 1412, 1426, 1404, 1431, 4681, 1445, 1442, 1424,
+ 1437, 1448, 1443, 1435, 1484, 4681, 1439, 4681, 4681, 1451,
+ 4681, 4681, 1465, 1438, 1473, 1449, 1532, 1475, 1467, 1472,
1483, 1490, 1491, 1504, 1499, 1518, 1525, 1510, 1502, 1508,
1513, 1537, 1541, 1535, 1542, 1543, 1561, 1562, 1557, 1566,
- 1559, 1565, 1558, 1570, 1574, 1579, 1582, 1586, 1577, 4656,
- 1588, 1584, 1594, 1592, 1609, 4656, 1589, 1600, 1603, 1606,
+ 1559, 1565, 1558, 1570, 1574, 1579, 1582, 1586, 1577, 4681,
+ 1588, 1584, 1594, 1592, 1609, 4681, 1589, 1600, 1603, 1606,
1613, 1611, 1619, 1625, 1623, 1630, 1633, 1634, 1637, 1639,
1640, 1618, 1667, 1661, 1652, 1660, 1668, 1653, 1676, 1682,
1680, 1666, 1678, 1686, 1669, 1685, 1690, 1687, 1693, 1696,
- 1695, 1694, 1744, 1721, 1712, 1705, 1716, 1701, 1723, 1724,
- 1732, 1741, 1757, 1761, 1759, 1713, 1763, 1764, 1748, 1795,
- 1780, 1765, 1786, 1804, 1797, 1800, 1806, 1790, 1767, 1807,
- 4656, 1799, 1812, 1791, 1827, 1814, 1824, 1835, 1826, 1847,
- 1829, 1836, 1846, 1861, 4656, 1839, 1841, 1854, 1860, 1870,
- 1873, 1871, 1863, 1887, 4656, 1893, 1900, 1881, 1879, 1883,
- 1892, 1888, 1907, 1908, 1910, 1902, 1911, 1899, 1914, 1906,
-
- 1922, 1928, 1929, 1927, 1940, 1937, 1952, 1941, 1955, 1949,
- 1950, 1936, 1965, 1951, 1970, 1964, 1967, 1976, 120, 1972,
- 1986, 1977, 1973, 4656, 76, 1987, 1991, 1982, 2009, 2011,
- 2007, 2005, 2010, 2015, 2016, 2025, 2008, 2021, 2023, 2038,
- 2029, 2052, 2050, 2054, 2043, 2042, 2046, 2051, 2058, 2047,
- 2070, 2067, 2079, 2080, 2077, 2081, 2087, 2076, 2084, 2082,
- 2106, 2102, 2098, 2111, 4656, 2119, 2107, 2116, 2108, 2125,
- 2140, 2122, 2129, 2144, 2135, 2136, 2145, 2149, 2157, 2151,
- 2156, 2152, 2147, 2163, 2174, 2168, 2171, 2190, 2178, 4656,
- 2182, 2176, 2192, 2180, 2193, 2188, 2197, 2207, 2202, 2214,
-
- 2213, 2222, 4656, 2229, 2231, 2223, 2230, 2224, 2243, 2240,
- 2246, 2233, 2256, 2239, 2257, 2263, 2250, 2259, 2269, 4656,
- 2252, 2279, 2273, 2285, 2284, 2275, 2271, 2287, 2277, 2290,
- 2289, 2281, 2295, 2292, 2298, 2303, 2302, 2314, 2308, 2328,
- 4656, 2338, 2309, 2335, 2337, 2330, 2350, 2345, 2336, 2329,
- 2325, 2355, 2356, 2362, 2359, 2363, 2366, 2368, 2371, 2354,
- 2372, 2392, 2394, 2398, 2386, 2393, 2390, 2409, 2389, 2417,
- 2396, 2412, 2425, 4656, 2427, 2428, 2420, 2416, 2445, 2438,
- 2421, 2431, 2430, 2432, 2457, 2468, 2447, 2452, 2454, 2461,
- 2455, 2449, 2460, 2484, 2481, 2487, 2476, 2483, 2474, 2499,
-
- 2500, 2502, 2495, 2508, 4656, 2507, 4656, 2504, 2516, 2524,
- 4656, 2523, 4656, 2528, 4656, 2527, 2536, 2526, 2513, 2531,
- 2534, 2532, 2546, 2529, 2559, 2540, 2558, 2544, 2551, 2572,
- 4656, 2561, 2566, 2581, 2563, 2564, 2574, 2590, 2593, 2585,
- 2575, 2586, 2603, 2599, 4656, 2591, 2613, 2604, 2608, 2630,
- 2627, 2619, 2620, 2632, 2625, 2631, 2642, 2638, 2626, 2643,
- 2647, 2663, 2622, 2671, 2673, 2674, 2660, 2661, 2664, 2666,
- 2670, 2672, 2687, 2690, 2693, 2675, 4656, 2677, 2708, 2709,
- 2700, 4656, 4656, 2722, 2723, 2719, 2712, 2720, 2706, 2732,
- 2745, 2734, 2731, 2737, 2747, 2748, 2749, 2740, 2751, 2761,
-
- 2764, 2752, 4656, 2777, 2767, 2781, 2776, 2775, 2787, 2773,
- 2796, 4656, 4656, 2790, 2788, 2792, 2797, 2815, 2802, 2803,
- 4656, 2800, 2827, 2828, 2829, 2830, 2832, 2813, 2823, 2839,
- 2837, 2840, 2857, 2848, 2858, 2853, 2866, 2846, 2849, 4656,
- 2865, 2877, 2875, 2876, 2873, 2878, 2868, 2884, 2885, 2886,
- 2900, 2891, 2892, 2899, 2903, 2904, 2923, 2905, 2928, 2929,
- 2939, 2933, 4656, 2941, 2926, 2942, 2918, 2940, 2945, 2952,
- 2962, 2937, 2938, 2955, 2956, 2959, 2935, 2979, 2967, 4656,
- 2969, 2990, 2982, 2984, 2983, 2972, 2994, 2986, 2999, 4656,
- 3011, 3004, 3000, 3021, 3023, 3024, 3025, 3010, 3017, 3014,
-
- 3031, 3039, 3026, 3036, 3038, 3040, 3043, 3055, 3072, 3071,
- 3078, 3079, 3057, 3065, 3084, 3073, 3082, 3075, 3063, 3093,
- 3081, 3097, 3089, 4656, 3091, 3095, 3107, 3111, 3114, 3120,
- 3116, 4656, 4656, 3115, 4656, 3121, 3123, 3109, 3122, 3137,
- 3113, 3135, 3140, 3141, 3143, 4656, 3162, 3151, 3152, 3156,
- 4656, 3171, 4656, 4656, 3159, 3179, 3160, 3175, 3178, 3181,
- 4656, 3184, 3189, 3192, 3194, 3183, 3185, 3187, 3198, 3203,
- 4656, 3212, 3225, 3210, 3220, 4656, 3218, 3231, 3207, 3230,
- 3236, 3241, 3243, 3249, 3244, 3245, 3256, 4656, 3247, 3255,
- 3251, 3265, 3272, 3278, 3270, 3273, 4656, 3282, 3290, 4656,
-
- 3276, 3293, 3294, 4656, 3292, 4656, 3296, 3300, 3299, 3309,
- 3301, 3321, 3331, 3314, 3328, 3329, 3322, 3338, 3336, 4656,
- 4656, 3337, 3339, 3342, 3340, 3345, 3347, 4656, 3351, 3348,
- 3358, 3367, 3363, 3365, 3370, 3384, 3385, 3372, 3388, 3374,
- 3377, 4656, 3378, 3379, 3397, 3395, 3405, 4656, 3417, 3416,
- 3408, 3415, 3429, 3431, 3433, 3423, 3437, 3438, 3420, 3440,
- 3441, 3432, 4656, 3444, 3452, 3435, 3461, 3455, 3463, 3467,
- 3471, 3474, 3456, 3477, 4656, 3480, 3458, 3485, 3482, 3481,
- 3490, 3478, 3479, 3489, 3516, 3500, 3514, 3517, 3511, 3528,
- 3527, 4656, 3509, 4656, 3524, 3534, 3532, 3538, 4656, 3530,
-
- 3537, 4656, 3543, 3558, 3540, 4656, 3568, 3555, 3570, 3565,
- 3561, 3559, 3579, 4656, 3583, 3581, 3589, 3586, 3573, 3590,
- 3592, 3596, 3603, 3609, 4656, 3606, 3619, 3617, 3627, 4656,
- 4656, 3630, 4656, 4656, 3626, 4656, 4656, 3632, 3634, 4656,
- 3635, 4656, 3613, 3640, 3639, 3616, 3642, 4656, 3645, 4656,
- 4656, 3643, 3658, 3636, 3666, 3673, 3676, 3678, 3667, 3662,
- 3669, 3672, 3674, 3683, 3670, 3691, 3693, 3695, 3689, 3699,
- 3668, 3700, 3705, 3719, 3720, 3704, 4656, 4656, 3708, 3715,
- 3716, 3710, 3731, 3729, 3726, 3753, 4656, 3734, 3736, 3747,
- 3741, 3746, 3750, 3751, 3769, 3779, 3767, 3765, 3763, 4656,
-
- 3768, 4656, 4656, 3778, 3785, 3799, 3786, 3789, 4656, 3800,
- 3802, 3803, 3804, 4656, 4656, 4656, 3816, 3796, 3810, 3815,
- 3827, 3814, 3828, 4656, 3823, 3830, 3834, 3825, 3822, 3824,
- 3857, 3856, 3858, 4656, 3868, 3865, 3866, 3861, 3859, 3864,
- 3873, 3863, 4656, 3876, 3867, 3895, 3899, 3886, 3900, 4656,
- 3891, 3892, 3889, 3903, 3915, 3913, 3918, 4656, 3916, 3907,
- 4656, 3917, 4656, 4656, 3926, 3927, 3929, 3924, 3933, 3941,
- 3931, 3943, 3965, 3962, 3959, 4656, 4656, 3958, 4656, 4656,
- 3954, 3961, 3951, 3947, 3968, 3975, 3960, 3989, 3981, 3976,
- 3985, 3978, 3987, 3991, 4002, 3993, 4656, 4012, 4656, 4003,
-
- 4019, 4018, 4014, 4656, 4016, 4020, 4006, 4656, 4656, 4656,
- 4030, 4036, 4042, 4656, 4048, 4045, 4034, 4060, 4049, 4064,
- 4041, 4056, 4656, 4052, 4058, 4070, 4068, 4072, 4082, 4076,
- 4081, 4063, 4083, 4096, 4100, 4656, 4106, 4087, 4090, 4118,
- 4119, 4103, 4108, 4104, 4121, 4113, 4131, 4123, 4130, 4126,
- 4137, 4656, 4138, 4135, 4656, 4141, 4151, 4159, 4160, 4161,
- 4162, 4166, 4656, 4171, 4656, 4173, 4169, 4656, 4656, 4168,
- 4175, 4179, 4656, 4180, 4186, 4181, 4192, 4193, 4200, 4656,
- 4656, 4195, 4190, 4212, 4656, 4656, 4656, 4191, 4656, 4217,
- 4656, 4223, 4211, 4656, 4207, 4228, 4208, 4230, 4219, 4224,
-
- 4242, 4235, 4249, 4656, 4258, 4656, 4259, 4656, 4251, 4260,
- 4656, 4268, 4252, 4265, 4256, 4253, 4257, 4656, 4656, 4656,
- 4278, 4269, 4264, 4280, 4276, 4285, 4281, 4295, 4311, 4304,
- 4309, 4312, 4293, 4300, 4323, 4316, 4656, 4319, 4305, 4327,
- 4329, 4321, 4336, 4328, 4338, 4339, 4340, 4346, 4341, 4364,
- 4365, 4356, 4371, 4373, 4376, 4377, 4374, 4368, 4384, 4383,
- 4387, 4388, 4392, 4394, 4399, 4656, 4411, 4403, 4404, 4405,
- 4424, 4430, 4409, 4426, 4436, 4439, 4434, 4429, 4442, 4440,
- 4451, 4446, 4454, 4453, 4656, 4455, 4471, 4464, 4469, 4478,
- 4470, 4474, 4494, 4477, 4500, 4484, 4490, 4501, 4656, 4497,
-
- 4656, 4656, 4504, 4499, 4506, 4512, 4513, 4656, 4656, 4656,
- 4564, 4571, 4578, 4585, 4592, 82, 4599, 4606, 4613, 4620,
- 4627, 4634, 4641, 4648
+ 1695, 1694, 1744, 1721, 1712, 1705, 1716, 1701, 1723, 1742,
+ 1732, 1746, 1757, 1763, 1752, 1754, 1764, 1771, 1774, 1802,
+ 1780, 1782, 1788, 1793, 1792, 1798, 1799, 1795, 1740, 1807,
+ 4681, 1790, 1815, 1812, 1819, 1838, 1817, 1839, 1830, 1842,
+ 1833, 1837, 1841, 1856, 4681, 1835, 1855, 1852, 1866, 1879,
+ 1880, 1863, 1860, 1890, 4681, 1895, 1888, 1893, 1882, 1881,
+ 1899, 1883, 1898, 1900, 1907, 1917, 1908, 1918, 1912, 1919,
+
+ 1935, 1924, 1928, 1916, 1939, 1944, 1945, 1940, 1951, 1946,
+ 1941, 1960, 1963, 1955, 1961, 1956, 1972, 1977, 120, 1973,
+ 1983, 1974, 1969, 4681, 76, 1981, 1988, 1978, 2010, 2011,
+ 2004, 2000, 2012, 2018, 2002, 2005, 2013, 2015, 2033, 2025,
+ 2029, 2027, 2045, 2044, 2041, 2050, 2054, 2040, 2056, 2061,
+ 2059, 2074, 2063, 2076, 2060, 2083, 2084, 2077, 2075, 2087,
+ 2095, 2091, 2085, 2103, 2106, 4681, 2121, 2105, 2112, 2109,
+ 2126, 2138, 2118, 2128, 2134, 2132, 2148, 2139, 2146, 2153,
+ 2158, 2147, 2155, 2145, 2161, 2164, 2157, 2173, 2183, 2175,
+ 4681, 2189, 2180, 2185, 2184, 2187, 2200, 2191, 2211, 2190,
+
+ 2209, 2216, 2221, 4681, 2220, 2232, 2222, 2234, 2219, 2240,
+ 2246, 2244, 2225, 2248, 2247, 2249, 2256, 2242, 2259, 2263,
+ 4681, 2266, 2267, 2272, 2283, 2276, 2269, 2278, 2291, 2275,
+ 2284, 2302, 2281, 2286, 2282, 2313, 2297, 2294, 2305, 2315,
+ 2303, 2330, 4681, 2343, 2322, 2328, 2346, 2311, 2341, 2347,
+ 2334, 2337, 2333, 2349, 2360, 2353, 2357, 2362, 2361, 2363,
+ 2381, 2354, 2372, 2380, 2390, 2396, 2384, 2394, 2398, 2399,
+ 2389, 2409, 2404, 2419, 2426, 4681, 2420, 2428, 2421, 2415,
+ 2443, 2438, 2425, 2430, 2424, 2437, 2439, 2462, 2440, 2454,
+ 2455, 2460, 2461, 2442, 2453, 2477, 2480, 2487, 2471, 2483,
+
+ 2476, 2493, 2489, 2495, 2488, 2501, 4681, 2506, 4681, 2504,
+ 2512, 2521, 4681, 2525, 4681, 2527, 4681, 2526, 2531, 2515,
+ 2516, 2520, 2533, 2522, 2544, 2535, 2545, 2547, 2539, 2559,
+ 2548, 2565, 4681, 2558, 2564, 2579, 2561, 2573, 2575, 2582,
+ 2594, 2583, 2592, 2587, 2590, 2589, 2607, 4681, 2574, 2614,
+ 2606, 2603, 2626, 2628, 2622, 2634, 2630, 2611, 2645, 2641,
+ 2646, 2633, 2639, 2649, 2659, 2654, 2660, 2652, 2662, 2666,
+ 2663, 2668, 2685, 2670, 2687, 2702, 2681, 2686, 2695, 4681,
+ 2690, 2696, 2709, 2704, 4681, 4681, 2680, 2722, 2714, 2708,
+ 2728, 2715, 2741, 2729, 2743, 2740, 2739, 2731, 2736, 2746,
+
+ 2747, 2751, 2756, 2763, 2758, 4681, 2766, 2764, 2792, 2783,
+ 2774, 2796, 2784, 2795, 4681, 4681, 2799, 2787, 2790, 2786,
+ 2806, 2802, 2810, 4681, 2816, 2811, 2825, 2834, 2835, 2832,
+ 2821, 2831, 2820, 2837, 2838, 2842, 2853, 2848, 2852, 2866,
+ 2856, 2871, 2876, 4681, 2873, 2884, 2877, 2880, 2879, 2878,
+ 2881, 2886, 2905, 2875, 2904, 2894, 2924, 2907, 2906, 2909,
+ 2910, 2915, 2926, 2930, 2942, 2936, 4681, 2944, 2931, 2947,
+ 2920, 2948, 2958, 2954, 2965, 2940, 2941, 2953, 2943, 2982,
+ 2963, 2992, 2974, 4681, 2986, 2983, 2981, 2990, 2998, 2976,
+ 3011, 2988, 3010, 4681, 3013, 3003, 3008, 3020, 3031, 3037,
+
+ 3023, 3016, 3029, 3030, 3033, 3040, 3043, 3051, 3050, 3062,
+ 3047, 3058, 3069, 3080, 3086, 3085, 3057, 3075, 3094, 3079,
+ 3088, 3089, 3073, 3107, 3082, 3109, 3096, 4681, 3114, 3097,
+ 3111, 3116, 3115, 3121, 3123, 4681, 3124, 4681, 3118, 4681,
+ 3125, 3126, 3113, 3146, 3140, 3142, 3135, 3160, 3150, 3149,
+ 4681, 3167, 3153, 3166, 3169, 4681, 3170, 4681, 4681, 3172,
+ 3176, 3157, 3180, 3187, 3183, 4681, 3184, 3192, 3199, 3195,
+ 3188, 3205, 3208, 3211, 3206, 3210, 4681, 3219, 3226, 3207,
+ 3231, 4681, 3215, 3241, 3233, 3238, 3247, 3256, 3257, 3227,
+ 3244, 3267, 3268, 4681, 3250, 3252, 3275, 3270, 3278, 3279,
+
+ 3271, 3289, 4681, 3294, 3298, 4681, 3291, 3265, 3295, 4681,
+ 3307, 4681, 3309, 3305, 3302, 3310, 3323, 3324, 3335, 3322,
+ 3339, 3340, 3331, 3348, 3347, 4681, 4681, 3350, 3352, 3356,
+ 3349, 3346, 3358, 3353, 4681, 3362, 3373, 3342, 3366, 3389,
+ 3377, 3380, 3397, 3398, 3384, 3401, 3383, 3393, 4681, 3391,
+ 3400, 3410, 3405, 3413, 4681, 3403, 3432, 3425, 3427, 3430,
+ 3444, 3447, 3448, 3436, 3450, 3451, 3437, 3453, 3455, 3454,
+ 4681, 3461, 3460, 3465, 3467, 3468, 3463, 3476, 3488, 3485,
+ 3472, 3497, 4681, 3498, 3475, 3506, 3496, 3502, 3503, 3492,
+ 3509, 3499, 3516, 3512, 3528, 3529, 3526, 3546, 3541, 4681,
+
+ 3530, 4681, 3542, 3557, 3556, 3561, 4681, 3544, 3548, 4681,
+ 3563, 3569, 3571, 3576, 4681, 3579, 3567, 3594, 3580, 3585,
+ 3583, 3603, 4681, 3578, 3597, 3611, 3608, 3596, 3610, 3605,
+ 3612, 3619, 3622, 4681, 3618, 3615, 3637, 3640, 3649, 4681,
+ 4681, 3635, 4681, 4681, 3650, 4681, 4681, 3652, 3653, 4681,
+ 3654, 4681, 3660, 3658, 3655, 3643, 3661, 4681, 3668, 4681,
+ 4681, 3664, 3670, 3675, 3678, 3673, 3674, 3690, 3682, 3685,
+ 3692, 3695, 3696, 3701, 3691, 3713, 3705, 3698, 3700, 3702,
+ 3712, 3723, 3725, 3721, 3739, 3745, 3746, 4681, 4681, 3729,
+ 3740, 3732, 3735, 3748, 3741, 3742, 3764, 4681, 3774, 3768,
+
+ 3763, 3762, 3775, 3767, 3779, 3786, 3800, 3781, 3782, 3784,
+ 3792, 4681, 3795, 4681, 4681, 3796, 3815, 3817, 3806, 3810,
+ 4681, 3829, 3813, 3831, 3834, 4681, 4681, 4681, 3835, 3824,
+ 3838, 3844, 3845, 3833, 3856, 4681, 3839, 3848, 3862, 3842,
+ 3868, 3870, 3882, 3885, 3886, 4681, 4681, 3891, 3884, 3887,
+ 3881, 3878, 3894, 3895, 3889, 4681, 3896, 3897, 3898, 3921,
+ 3905, 3922, 4681, 3916, 3918, 3917, 3939, 3932, 3940, 3934,
+ 3945, 4681, 3937, 3943, 4681, 3947, 4681, 4681, 3933, 3951,
+ 3968, 3954, 3955, 3975, 3958, 3970, 3990, 3987, 3985, 4681,
+ 4681, 3982, 4681, 4681, 3974, 3994, 3978, 3973, 4008, 4004,
+
+ 4005, 3998, 4009, 4012, 4011, 4002, 4010, 4015, 4034, 4025,
+ 4026, 4681, 4044, 4681, 4032, 4048, 4052, 4049, 4681, 4051,
+ 4053, 4037, 4681, 4681, 4681, 4061, 4068, 4054, 4681, 4077,
+ 4075, 4070, 4081, 4076, 4071, 4074, 4100, 4681, 4087, 4090,
+ 4107, 4101, 4096, 4097, 4111, 4115, 4103, 4122, 4117, 4125,
+ 4126, 4681, 4135, 4121, 4118, 4150, 4151, 4138, 4142, 4139,
+ 4155, 4148, 4156, 4145, 4174, 4162, 4171, 4681, 4173, 4166,
+ 4681, 4176, 4187, 4194, 4195, 4196, 4197, 4681, 4199, 4681,
+ 4203, 4681, 4205, 4206, 4681, 4681, 4200, 4209, 4210, 4681,
+ 4213, 4198, 4212, 4229, 4223, 4236, 4681, 4681, 4231, 4234,
+
+ 4245, 4681, 4681, 4681, 4248, 4681, 4250, 4681, 4252, 4238,
+ 4681, 4239, 4259, 4235, 4255, 4262, 4264, 4280, 4271, 4267,
+ 4681, 4288, 4681, 4292, 4681, 4281, 4294, 4681, 4303, 4286,
+ 4296, 4287, 4284, 4289, 4681, 4681, 4681, 4314, 4304, 4312,
+ 4307, 4317, 4320, 4313, 4322, 4342, 4334, 4341, 4345, 4329,
+ 4333, 4359, 4344, 4681, 4351, 4355, 4361, 4363, 4353, 4370,
+ 4357, 4365, 4368, 4378, 4385, 4377, 4384, 4394, 4381, 4401,
+ 4404, 4408, 4410, 4403, 4411, 4417, 4412, 4405, 4414, 4438,
+ 4426, 4430, 4681, 4442, 4429, 4431, 4439, 4453, 4456, 4436,
+ 4458, 4463, 4457, 4460, 4449, 4471, 4466, 4485, 4477, 4494,
+
+ 4478, 4681, 4498, 4501, 4483, 4488, 4508, 4495, 4512, 4510,
+ 4513, 4520, 4516, 4517, 4525, 4681, 4537, 4681, 4681, 4540,
+ 4529, 4530, 4546, 4550, 4681, 4681, 4681, 4589, 4596, 4603,
+ 4610, 4617, 82, 4624, 4631, 4638, 4645, 4652, 4659, 4666,
+ 4673
} ;
-static yyconst flex_int16_t yy_def[1625] =
+static yyconst flex_int16_t yy_def[1642] =
{ 0,
- 1610, 1, 1611, 1611, 1612, 1612, 1613, 1613, 1614, 1614,
- 1615, 1615, 1610, 1616, 1610, 1610, 1610, 1610, 1617, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1618,
- 1610, 1610, 1610, 1618, 1619, 1610, 1610, 1610, 1619, 1620,
- 1610, 1610, 1610, 1610, 1620, 1621, 1610, 1610, 1610, 1621,
- 1622, 1610, 1623, 1610, 1622, 1622, 1616, 1616, 1610, 1624,
- 1617, 1624, 1617, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1618, 1618, 1619, 1619, 1620, 1620, 1610, 1621,
- 1621, 1622, 1622, 1623, 1623, 1622, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1622, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1622, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
- 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1622, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1622, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1610, 1610, 1616,
- 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1622, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1610, 1622, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1610, 1616, 1610, 1616, 1616, 1616,
- 1610, 1616, 1610, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616,
- 1616, 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1610, 1610, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
- 1610, 1616, 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1610,
-
- 1616, 1616, 1616, 1610, 1616, 1610, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1610, 1616, 1610, 1616, 1616, 1616, 1616, 1610, 1616,
-
- 1616, 1610, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1610,
- 1610, 1616, 1610, 1610, 1616, 1610, 1610, 1616, 1616, 1610,
- 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1610,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1610, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
-
- 1616, 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1610, 1616,
- 1616, 1616, 1616, 1610, 1610, 1610, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616,
- 1610, 1616, 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1610, 1610, 1616, 1610, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1610, 1616,
-
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1610, 1610, 1610,
- 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1610, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1610, 1616, 1610, 1616, 1616, 1610, 1610, 1616,
- 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1610,
- 1610, 1616, 1616, 1616, 1610, 1610, 1610, 1616, 1610, 1616,
- 1610, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616, 1616,
-
- 1616, 1616, 1616, 1610, 1616, 1610, 1616, 1610, 1616, 1616,
- 1610, 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1610, 1610,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1610, 1616, 1616, 1616, 1616, 1616,
- 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1610, 1616,
-
- 1610, 1610, 1616, 1616, 1616, 1616, 1616, 1610, 1610, 0,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610
+ 1627, 1, 1628, 1628, 1629, 1629, 1630, 1630, 1631, 1631,
+ 1632, 1632, 1627, 1633, 1627, 1627, 1627, 1627, 1634, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1635,
+ 1627, 1627, 1627, 1635, 1636, 1627, 1627, 1627, 1636, 1637,
+ 1627, 1627, 1627, 1627, 1637, 1638, 1627, 1627, 1627, 1638,
+ 1639, 1627, 1640, 1627, 1639, 1639, 1633, 1633, 1627, 1641,
+ 1634, 1641, 1634, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1635, 1635, 1636, 1636, 1637, 1637, 1627, 1638,
+ 1638, 1639, 1639, 1640, 1640, 1639, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1639, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1639, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1639, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1639, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1627, 1633,
+ 1627, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1639, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1639, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1633,
+ 1633, 1633, 1627, 1633, 1627, 1633, 1627, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627,
+ 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1633, 1627,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1627, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633,
+ 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1627, 1633, 1633, 1627, 1633, 1633, 1633, 1627,
+ 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627,
+
+ 1633, 1627, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1627,
+ 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1627,
+ 1627, 1633, 1627, 1627, 1633, 1627, 1627, 1633, 1633, 1627,
+ 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1627, 1633, 1627, 1627, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1627, 1627, 1627, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1627, 1633, 1633, 1627, 1633, 1627, 1627, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627,
+ 1627, 1633, 1627, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1627, 1633, 1627, 1633, 1633, 1633, 1633, 1627, 1633,
+ 1633, 1633, 1627, 1627, 1627, 1633, 1633, 1633, 1627, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627,
+ 1633, 1627, 1633, 1633, 1627, 1627, 1633, 1633, 1633, 1627,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633,
+
+ 1633, 1627, 1627, 1627, 1633, 1627, 1633, 1627, 1633, 1633,
+ 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1627, 1633, 1627, 1633, 1627, 1633, 1633, 1627, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1627, 1627, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+
+ 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
+ 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1627, 1633,
+ 1633, 1633, 1633, 1633, 1627, 1627, 0, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627
} ;
-static yyconst flex_int16_t yy_nxt[4722] =
+static yyconst flex_int16_t yy_nxt[4747] =
{ 0,
14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
14, 18, 20, 14, 21, 22, 23, 24, 14, 25,
@@ -977,7 +983,7 @@ static yyconst flex_int16_t yy_nxt[4722] =
70, 44, 125, 87, 44, 130, 130, 49, 72, 49,
72, 72, 69, 72, 133, 55, 70, 67, 72, 67,
- 67, 55, 67, 85, 74, 75, 60, 67, 724, 60,
+ 67, 55, 67, 85, 74, 75, 60, 67, 725, 60,
15, 16, 17, 62, 63, 64, 15, 16, 17, 62,
63, 64, 76, 86, 94, 73, 68, 96, 68, 65,
85, 74, 75, 133, 77, 65, 68, 88, 68, 68,
@@ -1010,34 +1016,34 @@ static yyconst flex_int16_t yy_nxt[4722] =
165, 160, 164, 68, 172, 68, 68, 68, 182, 173,
68, 68, 168, 170, 177, 174, 178, 166, 175, 162,
- 169, 68, 176, 171, 68, 179, 180, 1610, 1610, 181,
+ 169, 68, 176, 171, 68, 179, 180, 1627, 1627, 181,
68, 172, 68, 183, 68, 184, 173, 68, 68, 68,
- 68, 177, 174, 178, 189, 175, 187, 1610, 68, 176,
+ 68, 177, 174, 178, 189, 175, 187, 1627, 68, 176,
186, 192, 179, 180, 191, 185, 181, 68, 188, 68,
- 183, 68, 184, 193, 68, 190, 68, 1610, 1610, 68,
- 1610, 189, 68, 187, 196, 194, 68, 186, 192, 195,
- 1610, 191, 185, 204, 127, 188, 127, 127, 1610, 127,
+ 183, 68, 184, 193, 68, 190, 68, 1627, 1627, 68,
+ 1627, 189, 68, 187, 196, 194, 68, 186, 192, 195,
+ 1627, 191, 185, 204, 127, 188, 127, 127, 1627, 127,
193, 132, 190, 132, 132, 72, 132, 72, 72, 133,
72, 68, 194, 197, 198, 68, 195, 199, 201, 200,
- 213, 203, 1610, 202, 68, 68, 68, 1610, 68, 68,
- 205, 1610, 214, 68, 215, 217, 222, 216, 68, 218,
+ 213, 203, 1627, 202, 68, 68, 68, 1627, 68, 68,
+ 205, 1627, 214, 68, 215, 217, 222, 216, 68, 218,
197, 198, 135, 68, 199, 68, 200, 213, 203, 68,
- 202, 206, 68, 219, 68, 227, 1610, 68, 68, 214,
- 68, 215, 217, 222, 216, 68, 218, 220, 1610, 1610,
- 221, 223, 1610, 224, 225, 1610, 226, 231, 206, 207,
+ 202, 206, 68, 219, 68, 227, 1627, 68, 68, 214,
+ 68, 215, 217, 222, 216, 68, 218, 220, 1627, 1627,
+ 221, 223, 1627, 224, 225, 1627, 226, 231, 206, 207,
219, 68, 68, 228, 208, 233, 68, 68, 234, 209,
- 236, 68, 1610, 68, 220, 210, 211, 221, 223, 68,
+ 236, 68, 1627, 68, 220, 210, 211, 221, 223, 68,
224, 225, 68, 226, 229, 235, 207, 232, 68, 68,
- 228, 208, 233, 237, 230, 239, 209, 1610, 238, 68,
- 1610, 68, 210, 211, 240, 68, 241, 68, 242, 243,
+ 228, 208, 233, 237, 230, 239, 209, 1627, 238, 68,
+ 1627, 68, 210, 211, 240, 68, 241, 68, 242, 243,
246, 68, 235, 68, 232, 68, 68, 244, 68, 245,
250, 230, 239, 251, 68, 238, 68, 68, 68, 68,
68, 240, 68, 241, 247, 242, 243, 246, 253, 68,
248, 249, 254, 257, 244, 255, 245, 256, 260, 68,
- 251, 68, 1610, 68, 258, 267, 263, 269, 68, 1610,
- 266, 247, 68, 261, 1610, 253, 68, 248, 249, 68,
+ 251, 68, 1627, 68, 258, 267, 263, 269, 68, 1627,
+ 266, 247, 68, 261, 1627, 253, 68, 248, 249, 68,
257, 133, 255, 68, 256, 265, 259, 68, 264, 68,
262, 268, 267, 263, 269, 68, 68, 270, 68, 272,
@@ -1047,48 +1053,48 @@ static yyconst flex_int16_t yy_nxt[4722] =
68, 68, 271, 279, 68, 275, 68, 276, 277, 68,
68, 283, 285, 68, 286, 288, 278, 280, 281, 287,
293, 68, 284, 289, 68, 291, 68, 290, 292, 68,
- 295, 300, 296, 294, 68, 1610, 1610, 68, 297, 285,
- 306, 68, 288, 68, 1610, 68, 287, 293, 68, 68,
+ 295, 300, 296, 294, 68, 1627, 1627, 68, 297, 285,
+ 306, 68, 288, 68, 1627, 68, 287, 293, 68, 68,
289, 68, 291, 68, 290, 292, 68, 302, 300, 296,
294, 68, 301, 298, 303, 297, 299, 68, 68, 304,
305, 68, 308, 68, 307, 309, 310, 311, 312, 68,
- 317, 1610, 68, 314, 302, 313, 327, 1610, 68, 301,
+ 317, 1627, 68, 314, 302, 313, 327, 1627, 68, 301,
298, 303, 319, 299, 68, 68, 304, 305, 68, 308,
328, 307, 309, 310, 311, 68, 315, 68, 316, 68,
314, 68, 313, 318, 68, 68, 322, 68, 68, 319,
68, 320, 68, 321, 326, 323, 329, 328, 324, 68,
- 325, 330, 68, 315, 331, 316, 68, 1610, 68, 349,
- 318, 332, 68, 322, 1610, 68, 68, 333, 320, 335,
+ 325, 330, 68, 315, 331, 316, 68, 1627, 68, 349,
+ 318, 332, 68, 322, 1627, 68, 68, 333, 320, 335,
321, 326, 323, 329, 68, 324, 346, 325, 330, 344,
- 343, 331, 68, 334, 68, 1610, 347, 345, 332, 351,
+ 343, 331, 68, 334, 68, 1627, 347, 345, 332, 351,
68, 68, 68, 133, 333, 348, 335, 68, 68, 353,
- 437, 68, 68, 346, 1610, 352, 344, 343, 350, 356,
+ 437, 68, 68, 346, 1627, 352, 344, 343, 350, 356,
334, 336, 337, 347, 345, 68, 351, 68, 355, 354,
- 358, 338, 348, 339, 340, 341, 68, 68, 342, 1610,
- 68, 68, 352, 357, 361, 350, 68, 1610, 336, 337,
+ 358, 338, 348, 339, 340, 341, 68, 68, 342, 1627,
+ 68, 68, 352, 357, 361, 350, 68, 1627, 336, 337,
68, 68, 68, 366, 68, 355, 354, 358, 338, 364,
339, 340, 341, 359, 360, 342, 362, 363, 368, 369,
- 357, 361, 68, 365, 367, 1610, 68, 68, 68, 371,
- 366, 68, 370, 68, 1610, 372, 364, 68, 373, 375,
+ 357, 361, 68, 365, 367, 1627, 68, 68, 68, 371,
+ 366, 68, 370, 68, 1627, 372, 364, 68, 373, 375,
374, 377, 68, 362, 363, 368, 369, 68, 68, 378,
365, 367, 376, 381, 380, 379, 371, 68, 68, 370,
382, 68, 372, 400, 68, 373, 68, 374, 377, 68,
68, 68, 383, 68, 384, 385, 378, 386, 387, 376,
68, 380, 379, 389, 68, 388, 391, 382, 390, 68,
- 68, 68, 68, 393, 68, 397, 1610, 392, 68, 383,
+ 68, 68, 68, 393, 68, 397, 1627, 392, 68, 383,
68, 384, 385, 68, 386, 387, 394, 398, 68, 68,
389, 68, 388, 391, 68, 390, 68, 399, 395, 396,
393, 68, 397, 401, 392, 68, 68, 405, 404, 68,
402, 403, 68, 394, 398, 68, 68, 68, 406, 68,
- 408, 407, 1610, 1610, 399, 395, 396, 1610, 68, 1610,
+ 408, 407, 1627, 1627, 399, 395, 396, 1627, 68, 1627,
- 401, 68, 68, 415, 405, 404, 414, 402, 403, 1610,
+ 401, 68, 68, 415, 405, 404, 414, 402, 403, 1627,
68, 416, 418, 68, 68, 406, 419, 408, 407, 409,
- 417, 1610, 420, 68, 410, 421, 411, 68, 422, 423,
- 415, 1610, 426, 414, 412, 424, 68, 433, 428, 418,
+ 417, 1627, 420, 68, 410, 421, 411, 68, 422, 423,
+ 415, 1627, 426, 414, 412, 424, 68, 433, 428, 418,
68, 68, 68, 419, 413, 68, 409, 417, 68, 420,
68, 410, 421, 411, 68, 422, 423, 425, 427, 426,
68, 412, 424, 68, 429, 428, 430, 431, 68, 68,
@@ -1098,40 +1104,40 @@ static yyconst flex_int16_t yy_nxt[4722] =
434, 447, 436, 449, 435, 441, 443, 68, 438, 444,
439, 68, 450, 451, 440, 68, 68, 68, 452, 442,
- 453, 454, 455, 456, 457, 1610, 461, 68, 447, 458,
- 68, 459, 460, 443, 463, 1610, 444, 467, 462, 68,
- 68, 469, 1610, 68, 68, 68, 68, 68, 454, 455,
+ 453, 454, 455, 456, 457, 1627, 461, 68, 447, 458,
+ 68, 459, 460, 443, 463, 1627, 444, 467, 462, 68,
+ 68, 469, 1627, 68, 68, 68, 68, 68, 454, 455,
456, 68, 68, 68, 471, 68, 458, 68, 459, 460,
68, 463, 464, 68, 467, 462, 468, 465, 472, 470,
- 474, 466, 68, 477, 475, 68, 479, 476, 68, 1610,
- 1610, 471, 491, 483, 68, 480, 68, 68, 68, 464,
+ 474, 466, 68, 477, 475, 68, 479, 476, 68, 1627,
+ 1627, 471, 491, 483, 68, 480, 68, 68, 68, 464,
473, 68, 68, 468, 465, 472, 470, 474, 466, 68,
477, 475, 481, 478, 476, 68, 68, 68, 482, 485,
- 483, 484, 480, 68, 1610, 486, 487, 473, 68, 488,
- 68, 489, 68, 1610, 493, 490, 68, 492, 1610, 481,
- 478, 497, 68, 1610, 499, 482, 485, 68, 484, 494,
+ 483, 484, 480, 68, 1627, 486, 487, 473, 68, 488,
+ 68, 489, 68, 1627, 493, 490, 68, 492, 1627, 481,
+ 478, 497, 68, 1627, 499, 482, 485, 68, 484, 494,
68, 68, 486, 487, 509, 68, 488, 498, 68, 495,
504, 493, 68, 496, 492, 68, 68, 502, 497, 68,
- 500, 499, 501, 503, 505, 68, 494, 506, 1610, 68,
+ 500, 499, 501, 503, 505, 68, 494, 506, 1627, 68,
68, 68, 507, 68, 498, 68, 508, 504, 510, 68,
68, 68, 68, 511, 502, 512, 68, 500, 68, 501,
- 503, 505, 514, 515, 506, 513, 518, 1610, 516, 507,
+ 503, 505, 514, 515, 506, 513, 518, 1627, 516, 507,
- 1610, 517, 519, 508, 68, 510, 68, 520, 68, 68,
+ 1627, 517, 519, 508, 68, 510, 68, 520, 68, 68,
511, 68, 512, 521, 68, 68, 68, 522, 524, 514,
515, 523, 513, 518, 68, 516, 528, 68, 517, 519,
- 68, 525, 527, 526, 520, 68, 530, 1610, 68, 68,
+ 68, 525, 527, 526, 520, 68, 530, 1627, 68, 68,
521, 529, 68, 531, 522, 524, 68, 535, 523, 68,
68, 532, 533, 528, 133, 548, 550, 534, 525, 527,
- 526, 1610, 68, 530, 68, 545, 536, 537, 529, 68,
+ 526, 1627, 68, 530, 68, 545, 536, 537, 529, 68,
531, 539, 538, 68, 535, 68, 68, 68, 532, 546,
68, 68, 548, 68, 534, 547, 68, 68, 549, 68,
- 1610, 557, 545, 536, 537, 1610, 558, 560, 539, 538,
+ 1627, 557, 545, 536, 537, 1627, 558, 560, 539, 538,
- 540, 561, 1610, 68, 541, 68, 546, 542, 559, 562,
- 68, 68, 547, 68, 543, 549, 563, 544, 557, 1610,
- 1610, 68, 68, 558, 560, 564, 567, 540, 68, 68,
+ 540, 561, 1627, 68, 541, 68, 546, 542, 559, 562,
+ 68, 68, 547, 68, 543, 549, 563, 544, 557, 1627,
+ 1627, 68, 68, 558, 560, 564, 567, 540, 68, 68,
565, 541, 570, 568, 542, 559, 562, 68, 569, 566,
68, 543, 68, 563, 544, 551, 68, 552, 68, 571,
553, 68, 564, 567, 575, 554, 68, 565, 574, 570,
@@ -1145,348 +1151,350 @@ static yyconst flex_int16_t yy_nxt[4722] =
68, 595, 68, 593, 68, 610, 68, 68, 586, 589,
68, 594, 68, 591, 588, 597, 590, 598, 68, 601,
602, 68, 600, 596, 68, 592, 599, 68, 595, 68,
- 593, 68, 603, 605, 607, 1610, 68, 68, 594, 606,
+ 593, 68, 603, 605, 607, 1627, 68, 68, 594, 606,
604, 68, 597, 68, 598, 609, 601, 602, 68, 600,
608, 68, 68, 599, 611, 68, 612, 68, 68, 603,
605, 607, 613, 614, 615, 616, 606, 604, 617, 618,
68, 68, 609, 622, 619, 620, 624, 608, 68, 68,
623, 625, 621, 612, 68, 68, 68, 68, 627, 613,
- 614, 615, 616, 626, 68, 617, 68, 640, 68, 630,
+ 614, 615, 616, 626, 68, 617, 68, 641, 68, 630,
68, 619, 620, 68, 68, 68, 628, 623, 133, 621,
- 629, 68, 68, 68, 68, 627, 636, 1610, 637, 68,
- 626, 638, 639, 68, 640, 649, 630, 643, 641, 642,
- 68, 68, 1610, 628, 68, 652, 1610, 629, 631, 68,
- 632, 68, 68, 636, 633, 637, 634, 644, 638, 639,
- 68, 635, 649, 645, 643, 641, 642, 647, 665, 68,
- 1610, 651, 68, 646, 648, 631, 68, 632, 650, 1610,
- 658, 633, 1610, 634, 644, 68, 657, 68, 635, 68,
-
- 645, 68, 68, 68, 647, 68, 667, 653, 651, 659,
- 646, 648, 654, 661, 655, 650, 660, 658, 68, 662,
- 664, 669, 666, 657, 68, 1610, 668, 1610, 68, 68,
- 671, 663, 656, 68, 653, 68, 659, 68, 68, 654,
- 661, 655, 68, 660, 68, 68, 662, 664, 669, 666,
- 68, 670, 68, 668, 672, 673, 674, 671, 663, 656,
- 676, 677, 68, 675, 68, 68, 678, 68, 679, 680,
- 681, 1610, 1610, 68, 68, 687, 683, 68, 670, 68,
- 682, 672, 673, 674, 68, 68, 684, 676, 677, 685,
- 675, 686, 68, 678, 688, 693, 680, 681, 68, 68,
-
- 689, 68, 687, 683, 690, 694, 696, 682, 68, 68,
- 703, 68, 691, 684, 695, 692, 685, 68, 686, 68,
- 697, 68, 693, 698, 699, 68, 68, 700, 702, 701,
- 68, 68, 694, 696, 704, 705, 706, 68, 68, 691,
- 68, 695, 692, 717, 68, 68, 68, 697, 68, 68,
- 698, 699, 68, 711, 700, 702, 701, 707, 709, 708,
- 68, 704, 705, 706, 710, 68, 68, 68, 712, 714,
- 713, 715, 718, 716, 68, 68, 1610, 719, 68, 68,
- 711, 720, 1610, 1610, 707, 709, 708, 68, 68, 68,
- 68, 710, 722, 68, 721, 712, 714, 713, 715, 723,
-
- 716, 725, 68, 68, 719, 68, 726, 727, 68, 728,
- 68, 68, 729, 731, 68, 68, 732, 730, 733, 722,
- 68, 721, 1610, 734, 68, 68, 723, 1610, 725, 68,
- 735, 737, 741, 726, 727, 736, 728, 1610, 740, 729,
- 731, 1610, 738, 68, 730, 68, 68, 68, 68, 68,
- 734, 739, 742, 68, 68, 743, 749, 735, 737, 68,
- 744, 68, 736, 68, 745, 740, 746, 68, 748, 738,
- 1610, 751, 747, 1610, 752, 750, 68, 753, 739, 742,
- 68, 68, 743, 749, 68, 68, 754, 744, 68, 68,
- 68, 745, 68, 746, 756, 748, 68, 755, 751, 747,
-
- 757, 752, 750, 758, 753, 68, 761, 759, 68, 1610,
- 760, 763, 1610, 754, 68, 68, 762, 68, 68, 68,
- 68, 756, 68, 764, 755, 68, 768, 757, 765, 766,
- 758, 767, 769, 761, 759, 770, 68, 760, 763, 771,
- 68, 772, 778, 762, 68, 68, 68, 773, 779, 68,
- 764, 774, 775, 776, 68, 765, 766, 68, 767, 769,
- 68, 780, 770, 68, 777, 781, 771, 68, 772, 782,
- 787, 783, 784, 68, 68, 779, 786, 785, 68, 775,
- 776, 788, 68, 68, 789, 68, 790, 68, 780, 68,
- 68, 777, 781, 1610, 68, 68, 782, 796, 783, 784,
-
- 795, 68, 797, 786, 785, 799, 68, 801, 1610, 68,
- 791, 789, 68, 790, 68, 792, 68, 793, 68, 794,
- 68, 798, 802, 800, 796, 805, 68, 795, 68, 797,
- 68, 68, 799, 807, 801, 68, 803, 791, 804, 806,
- 68, 811, 792, 808, 793, 68, 794, 809, 798, 802,
- 800, 68, 68, 810, 813, 812, 814, 815, 818, 824,
- 68, 68, 68, 803, 816, 804, 806, 68, 68, 68,
- 808, 68, 817, 819, 809, 820, 822, 68, 68, 821,
- 810, 68, 812, 814, 68, 818, 825, 823, 68, 826,
- 68, 816, 827, 830, 68, 68, 834, 68, 831, 817,
-
- 819, 68, 820, 822, 828, 829, 821, 68, 832, 68,
- 838, 68, 835, 68, 823, 68, 826, 68, 1610, 68,
- 830, 837, 68, 68, 833, 68, 836, 68, 68, 846,
- 68, 828, 829, 68, 839, 832, 68, 838, 840, 835,
- 68, 68, 842, 841, 843, 844, 68, 68, 837, 845,
- 848, 833, 68, 836, 847, 849, 846, 850, 852, 853,
- 851, 839, 854, 68, 1610, 840, 68, 68, 68, 842,
- 841, 843, 856, 68, 68, 68, 68, 848, 859, 1610,
- 863, 847, 849, 68, 855, 852, 853, 851, 68, 854,
- 858, 857, 68, 68, 68, 860, 862, 68, 861, 856,
-
- 68, 68, 864, 874, 68, 859, 68, 863, 865, 68,
- 68, 855, 866, 869, 867, 868, 870, 858, 857, 875,
- 1610, 872, 860, 862, 68, 861, 871, 68, 68, 864,
- 68, 68, 68, 873, 68, 865, 68, 876, 877, 866,
- 869, 867, 868, 870, 878, 879, 880, 68, 872, 883,
- 68, 884, 881, 871, 68, 68, 882, 1610, 68, 68,
- 873, 885, 887, 68, 876, 68, 68, 886, 68, 68,
- 68, 878, 879, 880, 888, 889, 68, 890, 884, 1610,
- 894, 895, 891, 68, 892, 68, 896, 68, 885, 887,
- 68, 893, 68, 68, 886, 68, 897, 898, 68, 68,
-
- 900, 888, 899, 901, 890, 902, 68, 894, 895, 891,
- 903, 892, 68, 896, 68, 907, 904, 905, 893, 68,
- 909, 68, 68, 897, 898, 68, 906, 900, 910, 899,
- 901, 911, 902, 68, 912, 1610, 908, 68, 68, 913,
- 68, 914, 68, 904, 905, 68, 68, 909, 915, 917,
- 919, 68, 916, 906, 68, 910, 918, 921, 920, 926,
- 922, 68, 68, 908, 68, 68, 68, 68, 914, 68,
- 68, 923, 68, 924, 68, 915, 917, 919, 68, 916,
- 925, 927, 68, 918, 68, 920, 926, 922, 928, 68,
- 929, 930, 937, 931, 932, 933, 68, 68, 923, 68,
-
- 924, 68, 68, 935, 68, 934, 938, 925, 927, 936,
- 68, 939, 68, 68, 940, 928, 941, 929, 930, 68,
- 931, 932, 933, 68, 68, 943, 942, 944, 68, 68,
- 935, 68, 934, 938, 949, 950, 936, 68, 939, 945,
- 951, 68, 68, 941, 946, 954, 68, 947, 952, 955,
- 956, 68, 943, 942, 944, 957, 961, 68, 68, 948,
- 68, 953, 950, 68, 68, 68, 945, 951, 68, 68,
- 68, 946, 954, 958, 947, 952, 68, 956, 959, 960,
- 68, 68, 957, 961, 963, 68, 948, 962, 953, 965,
- 964, 968, 966, 969, 971, 967, 970, 1610, 68, 68,
-
- 958, 68, 68, 975, 68, 959, 960, 974, 68, 68,
- 68, 68, 68, 68, 962, 68, 965, 964, 968, 966,
- 969, 972, 967, 970, 973, 68, 976, 979, 68, 977,
- 975, 68, 978, 980, 974, 982, 985, 981, 68, 983,
- 984, 989, 990, 1610, 68, 1610, 68, 68, 972, 1610,
- 68, 973, 986, 976, 979, 987, 977, 68, 68, 978,
- 68, 68, 982, 985, 981, 988, 983, 984, 991, 68,
- 68, 992, 68, 997, 994, 68, 995, 993, 68, 986,
- 996, 999, 987, 68, 1000, 68, 68, 68, 1002, 68,
- 68, 998, 988, 1003, 1005, 991, 1001, 1006, 992, 68,
-
- 997, 994, 68, 995, 993, 68, 1004, 996, 999, 1009,
- 1007, 68, 1010, 68, 68, 68, 1008, 1610, 998, 68,
- 1003, 1011, 1013, 1001, 1006, 68, 68, 1012, 68, 1014,
- 68, 1016, 1015, 1004, 68, 68, 1009, 1007, 68, 1010,
- 68, 68, 1017, 1008, 1018, 1019, 1020, 1022, 1011, 1023,
- 1024, 68, 1021, 68, 1012, 1028, 1014, 1032, 1016, 1015,
- 1033, 68, 1025, 1026, 1610, 68, 68, 68, 68, 1017,
- 68, 1018, 1019, 1020, 1022, 68, 1023, 68, 68, 1021,
- 1027, 1029, 1030, 1031, 68, 1034, 68, 68, 1035, 1025,
- 1026, 68, 1037, 1038, 1040, 68, 68, 1610, 1036, 1047,
-
- 1041, 1039, 1046, 68, 68, 1042, 68, 1027, 1029, 1030,
- 1031, 68, 1034, 68, 68, 68, 68, 1044, 1043, 1037,
- 1038, 1040, 68, 68, 68, 1036, 1045, 1041, 1039, 68,
- 68, 1048, 1042, 1049, 1051, 1050, 1052, 68, 68, 1053,
- 1054, 68, 68, 68, 1044, 1043, 1055, 1056, 1057, 1059,
- 1610, 1061, 1610, 1045, 1060, 1058, 68, 1062, 1048, 1063,
- 1049, 68, 1050, 1052, 68, 1610, 68, 68, 1067, 1068,
- 1071, 68, 1072, 68, 1056, 68, 68, 68, 68, 68,
- 68, 1060, 1058, 68, 1062, 1064, 1069, 1065, 1070, 1075,
- 68, 1073, 1066, 68, 68, 1067, 1068, 68, 1074, 1072,
-
- 68, 1076, 1078, 1079, 1610, 68, 1081, 68, 1077, 1080,
- 68, 1085, 1064, 1069, 1065, 1070, 1075, 68, 1073, 1066,
- 68, 68, 68, 1082, 68, 1074, 1083, 1084, 68, 1078,
- 1079, 1086, 68, 1081, 1088, 1077, 1080, 68, 68, 1087,
- 1089, 1091, 68, 1092, 1093, 1090, 1096, 1097, 68, 68,
- 1082, 1100, 68, 1083, 1084, 68, 1095, 1094, 1086, 68,
- 1098, 68, 68, 68, 68, 1099, 1087, 1089, 1091, 68,
- 1092, 1093, 1090, 1096, 68, 1101, 68, 68, 68, 1103,
- 1102, 68, 1104, 1095, 1094, 1105, 1107, 1098, 1109, 1106,
- 1610, 1110, 1099, 68, 1108, 68, 1111, 1112, 1113, 1114,
-
- 1115, 68, 1101, 68, 1117, 1119, 1120, 1102, 1610, 68,
- 68, 68, 1118, 68, 1116, 1109, 68, 68, 1121, 68,
- 68, 1108, 68, 1111, 1112, 1113, 1114, 68, 1122, 68,
- 1123, 68, 1119, 68, 1128, 68, 1125, 1124, 1126, 1118,
- 1129, 1116, 1130, 1132, 1127, 68, 1610, 68, 1135, 68,
- 1133, 68, 68, 68, 68, 1122, 1134, 1123, 68, 68,
- 68, 68, 1610, 1125, 1124, 1126, 1131, 1129, 1136, 1130,
- 1132, 1127, 1140, 68, 1137, 68, 1141, 1133, 68, 68,
- 1139, 68, 1142, 1134, 1143, 1138, 1144, 1146, 1145, 68,
- 68, 1147, 1148, 1131, 68, 1136, 1610, 68, 68, 1140,
-
- 68, 1137, 1149, 1141, 1151, 1610, 1153, 1139, 1154, 68,
- 1155, 1143, 1138, 68, 1146, 1145, 68, 68, 1147, 68,
- 1150, 68, 68, 68, 1156, 68, 1152, 68, 1158, 1149,
- 68, 1151, 68, 1153, 1157, 1154, 68, 1155, 1159, 1160,
- 1161, 68, 1163, 1162, 1164, 68, 1165, 1150, 68, 1166,
- 68, 1156, 1171, 1152, 1610, 1158, 68, 1167, 68, 1168,
- 1610, 1157, 1175, 68, 1610, 1159, 1160, 1161, 68, 68,
- 1162, 1164, 1172, 1165, 68, 1170, 1166, 1173, 1169, 68,
- 1174, 68, 68, 68, 1167, 68, 1168, 68, 1176, 68,
- 1180, 1179, 1177, 68, 68, 1178, 1181, 1610, 1182, 1172,
-
- 1184, 1610, 1170, 68, 1173, 1169, 1183, 1174, 68, 1187,
- 68, 68, 1192, 1188, 68, 1176, 68, 1180, 1179, 1177,
- 68, 1186, 1178, 1181, 1185, 1182, 1189, 1184, 68, 1191,
- 68, 68, 68, 1183, 68, 1190, 1187, 68, 68, 68,
- 1188, 1193, 1194, 1196, 1195, 1197, 1198, 68, 1186, 1199,
- 1202, 1185, 68, 1189, 1203, 1200, 1191, 1201, 1206, 68,
- 68, 1205, 1190, 1204, 1208, 1610, 68, 68, 1193, 68,
- 1196, 1195, 1197, 1198, 68, 68, 68, 68, 68, 1211,
- 68, 1203, 1200, 68, 1201, 68, 68, 1207, 1205, 68,
- 1204, 1208, 1209, 1210, 1212, 1214, 68, 1213, 1216, 1610,
-
- 1215, 68, 1610, 68, 1217, 68, 1211, 1219, 68, 1221,
- 68, 1218, 68, 1220, 1207, 68, 68, 68, 1223, 1209,
- 1210, 1212, 68, 68, 1213, 1216, 68, 1215, 1225, 1222,
- 1226, 1217, 1227, 68, 1219, 68, 1221, 1224, 1218, 1228,
- 1220, 1229, 1230, 68, 1231, 1223, 68, 1232, 1233, 1234,
- 1235, 1236, 1237, 68, 68, 68, 1222, 1226, 68, 1227,
- 1239, 68, 1238, 1240, 1224, 1241, 1228, 68, 1229, 68,
- 68, 68, 1242, 68, 1232, 68, 68, 1235, 68, 68,
- 1244, 1245, 68, 1246, 1243, 1248, 1249, 1239, 1250, 1238,
- 68, 1251, 1241, 68, 68, 1252, 68, 1253, 1247, 68,
-
- 1610, 68, 1254, 1258, 1255, 68, 1256, 1244, 1245, 68,
- 1246, 1243, 68, 1249, 1257, 68, 68, 68, 68, 68,
- 68, 1259, 1252, 68, 1253, 1247, 1261, 68, 68, 1254,
- 1258, 1255, 1260, 1256, 1262, 1265, 1264, 1263, 68, 1270,
- 1267, 1257, 1266, 1610, 1268, 1610, 1269, 68, 1259, 68,
- 1271, 1277, 68, 1261, 68, 68, 1273, 1275, 1272, 1260,
- 1274, 1262, 68, 1264, 1263, 68, 68, 1267, 68, 1266,
- 68, 1268, 68, 1269, 1276, 68, 68, 1271, 68, 1278,
- 1279, 68, 1280, 1273, 1275, 1272, 1282, 1274, 1281, 1283,
- 1610, 1284, 1610, 68, 1610, 1286, 68, 68, 1285, 68,
-
- 1287, 1276, 1288, 68, 1289, 1290, 68, 1279, 68, 1280,
- 1293, 68, 1292, 1282, 1610, 1281, 1283, 68, 1284, 68,
- 1304, 68, 1286, 1291, 68, 1285, 1294, 68, 68, 1288,
- 68, 1289, 1290, 1295, 68, 1296, 1297, 1300, 1610, 1292,
- 1298, 68, 1299, 1610, 68, 1302, 1303, 68, 1301, 1307,
- 1291, 68, 1305, 1294, 68, 68, 1309, 68, 1308, 1310,
- 1295, 1312, 1296, 1297, 68, 68, 1306, 1298, 68, 1299,
- 68, 1311, 68, 68, 68, 1301, 1307, 68, 68, 1305,
- 68, 68, 1313, 68, 1314, 1308, 1310, 1315, 1312, 1316,
- 1317, 1318, 1319, 1306, 1610, 1320, 68, 1321, 1311, 1322,
-
- 68, 1323, 1324, 1329, 68, 68, 68, 68, 68, 1313,
- 68, 68, 68, 1325, 68, 1334, 68, 1317, 1318, 1319,
- 1327, 68, 1320, 1328, 1321, 1330, 1322, 68, 1323, 68,
- 1329, 68, 1326, 68, 1331, 1332, 1333, 68, 68, 1335,
- 1325, 1338, 68, 68, 1336, 1343, 68, 1327, 68, 1337,
- 1328, 1339, 1330, 68, 68, 1341, 1344, 68, 68, 1326,
- 1340, 1331, 1332, 1333, 68, 1342, 1335, 68, 1338, 68,
- 1346, 1336, 68, 1345, 68, 1347, 1337, 1348, 1339, 68,
- 1350, 1349, 1341, 1344, 68, 68, 1351, 1340, 68, 68,
- 1610, 68, 1342, 1352, 1354, 1353, 1610, 1346, 1355, 1357,
-
- 1345, 68, 1347, 68, 1348, 68, 68, 68, 1349, 1356,
- 1358, 1361, 1359, 1610, 1363, 1364, 68, 68, 1360, 1610,
- 1352, 1354, 1353, 68, 68, 1355, 1357, 68, 1365, 1366,
- 1367, 1368, 1362, 1376, 68, 1377, 1356, 68, 68, 1359,
- 68, 68, 68, 1369, 1370, 1360, 1373, 1371, 68, 1372,
- 1374, 1375, 68, 68, 68, 1365, 1366, 1367, 1368, 1362,
- 68, 68, 68, 68, 1378, 68, 68, 1379, 68, 1380,
- 1369, 1370, 68, 1373, 1371, 1381, 1372, 1374, 1375, 1610,
- 1382, 1384, 1383, 1386, 1610, 1385, 1388, 1610, 1610, 1387,
- 1389, 1390, 1610, 1610, 68, 68, 68, 68, 1393, 68,
-
- 1397, 68, 68, 68, 68, 68, 68, 1382, 1384, 1383,
- 1386, 68, 1385, 1388, 68, 1391, 1387, 1389, 1390, 1392,
- 1394, 1395, 1396, 1398, 68, 1393, 1399, 68, 1404, 68,
- 68, 1403, 1400, 68, 1401, 1408, 1402, 68, 68, 1406,
- 1610, 68, 1391, 1407, 1409, 68, 1392, 1394, 1395, 1396,
- 1398, 68, 1410, 68, 68, 68, 68, 1405, 1403, 1400,
- 1411, 1401, 68, 1402, 68, 68, 1406, 68, 1412, 68,
- 1407, 68, 1413, 1414, 1415, 1416, 1610, 1419, 1421, 68,
- 1420, 68, 1417, 1418, 1405, 68, 1423, 1411, 1427, 68,
- 1424, 1610, 68, 1422, 1429, 1412, 68, 68, 68, 68,
-
- 68, 1415, 1416, 68, 1419, 1421, 68, 1420, 1425, 1417,
- 1418, 1426, 1428, 68, 68, 1427, 68, 1424, 1430, 68,
- 1422, 1429, 1432, 68, 1433, 68, 1434, 68, 1431, 68,
- 1436, 68, 1435, 1437, 1438, 1425, 1439, 1610, 1426, 1428,
- 68, 68, 1441, 1440, 68, 1430, 1442, 1610, 1443, 1432,
- 68, 1433, 68, 1434, 68, 1431, 68, 68, 68, 1435,
- 1437, 1438, 1444, 1439, 1445, 1446, 1447, 1452, 68, 1441,
- 1440, 1450, 68, 1442, 68, 1443, 1448, 1451, 1449, 68,
- 68, 1455, 1453, 68, 1454, 1610, 68, 68, 1456, 1444,
- 68, 1445, 1446, 1447, 68, 1459, 68, 1460, 68, 1457,
-
- 1461, 68, 68, 1448, 1451, 1449, 68, 1463, 68, 1453,
- 68, 1454, 1458, 1462, 68, 1456, 1464, 1465, 1466, 68,
- 68, 68, 1459, 1467, 1460, 68, 1457, 1461, 68, 1468,
- 1469, 1471, 1473, 1470, 68, 1472, 1474, 1477, 68, 1458,
- 1462, 68, 68, 1464, 68, 1466, 68, 1475, 1480, 1481,
- 1467, 68, 1610, 1476, 1478, 1479, 68, 68, 1471, 68,
- 1470, 68, 1472, 1474, 68, 1482, 1483, 1484, 68, 68,
- 1485, 1486, 1487, 68, 1475, 68, 68, 1489, 1488, 68,
- 1476, 1478, 1479, 1490, 1491, 1492, 1494, 1493, 1610, 68,
- 1610, 1610, 1482, 1483, 1484, 1495, 1496, 68, 68, 68,
-
- 68, 1504, 1506, 1610, 68, 1488, 68, 68, 1498, 68,
- 1490, 68, 1492, 68, 1493, 1497, 1502, 68, 68, 68,
- 1499, 1500, 1495, 1496, 68, 1501, 1503, 1505, 68, 68,
- 68, 68, 1507, 68, 1508, 1498, 1510, 1509, 68, 1511,
- 1515, 1610, 1497, 1502, 1512, 68, 68, 1499, 1500, 68,
- 68, 1514, 1501, 1503, 1505, 68, 1513, 68, 1516, 1507,
- 1518, 68, 68, 1510, 1509, 1517, 68, 1515, 68, 1519,
- 1520, 1512, 1522, 68, 1521, 1523, 1610, 1524, 1514, 1610,
- 68, 1525, 1527, 1513, 1528, 1516, 1526, 68, 1531, 68,
- 68, 68, 1517, 1529, 68, 68, 68, 68, 68, 1522,
-
- 1530, 1521, 68, 68, 1524, 1533, 68, 68, 1525, 1527,
- 1532, 1528, 1534, 1526, 68, 1531, 68, 1535, 68, 68,
- 1529, 1536, 1537, 68, 1538, 1539, 1542, 1530, 1540, 1541,
- 1543, 68, 1533, 68, 1547, 1546, 1548, 1532, 68, 1534,
- 1610, 1544, 68, 68, 1535, 1545, 1549, 68, 1536, 68,
- 68, 1538, 1539, 1542, 68, 1540, 1541, 68, 1551, 68,
- 1550, 68, 1546, 1552, 1554, 68, 68, 68, 1544, 1553,
- 1555, 1556, 1545, 1549, 68, 1565, 68, 68, 68, 68,
- 1557, 1558, 1610, 1560, 68, 1551, 1559, 1550, 1610, 1561,
- 1552, 1554, 1562, 1563, 68, 1566, 1553, 1555, 1556, 1570,
-
- 1610, 1567, 68, 68, 1564, 1610, 68, 1557, 1558, 68,
- 1560, 68, 68, 1559, 68, 68, 1561, 1568, 1569, 1562,
- 1563, 68, 68, 1572, 1571, 68, 68, 1573, 1567, 1576,
- 68, 1564, 68, 1574, 1575, 1610, 1577, 68, 1580, 1579,
- 1610, 68, 68, 68, 1568, 1569, 1578, 68, 1581, 68,
- 1572, 1571, 1583, 1585, 1573, 1582, 1576, 1610, 1586, 1584,
- 1574, 1575, 68, 1577, 68, 1580, 1579, 68, 68, 1587,
- 1589, 1591, 68, 1578, 68, 1581, 1588, 68, 68, 1583,
- 68, 1610, 1582, 1590, 68, 1586, 1584, 1592, 1599, 68,
- 1595, 68, 68, 68, 1593, 1601, 1587, 1589, 1591, 1594,
-
- 1596, 1602, 68, 1588, 1597, 1610, 1598, 68, 68, 68,
- 1590, 1610, 68, 1604, 1592, 68, 68, 1595, 1600, 1603,
- 1605, 1593, 68, 1608, 1609, 1610, 1594, 1596, 68, 1606,
- 1610, 1597, 68, 1598, 1610, 68, 1607, 68, 68, 68,
- 1604, 1610, 68, 1610, 68, 1600, 1603, 1605, 1610, 1610,
- 68, 68, 1610, 1610, 1610, 1610, 1606, 1610, 1610, 1610,
- 1610, 1610, 1610, 1607, 40, 40, 40, 40, 40, 40,
- 40, 45, 45, 45, 45, 45, 45, 45, 50, 50,
- 50, 50, 50, 50, 50, 56, 56, 56, 56, 56,
- 56, 56, 61, 61, 61, 61, 61, 61, 61, 71,
-
- 71, 1610, 71, 71, 71, 71, 123, 123, 1610, 1610,
- 1610, 123, 123, 125, 125, 1610, 1610, 125, 1610, 125,
- 127, 1610, 1610, 1610, 1610, 1610, 127, 130, 130, 1610,
- 1610, 1610, 130, 130, 132, 1610, 1610, 1610, 1610, 1610,
- 132, 134, 134, 1610, 134, 134, 134, 134, 72, 72,
- 1610, 72, 72, 72, 72, 13, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
-
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610
+ 629, 68, 68, 68, 68, 627, 637, 1627, 638, 68,
+ 626, 639, 640, 68, 641, 1627, 630, 644, 642, 1627,
+ 68, 666, 1627, 628, 68, 1627, 1627, 629, 631, 68,
+ 632, 68, 1627, 637, 633, 638, 634, 643, 639, 640,
+ 68, 635, 645, 646, 644, 642, 636, 649, 68, 648,
+ 68, 653, 68, 647, 68, 631, 650, 632, 652, 651,
+ 68, 633, 68, 634, 643, 68, 658, 668, 635, 645,
+
+ 646, 68, 68, 636, 649, 661, 648, 659, 662, 68,
+ 647, 660, 68, 650, 654, 652, 651, 663, 68, 655,
+ 68, 656, 667, 658, 664, 665, 68, 1627, 68, 669,
+ 68, 68, 661, 68, 659, 662, 68, 68, 660, 657,
+ 68, 654, 670, 671, 663, 68, 655, 673, 656, 667,
+ 68, 664, 665, 68, 672, 68, 669, 68, 676, 674,
+ 675, 679, 678, 680, 677, 681, 657, 1627, 68, 670,
+ 671, 68, 688, 68, 673, 68, 68, 68, 683, 68,
+ 68, 672, 684, 687, 682, 676, 674, 675, 679, 678,
+ 68, 677, 681, 68, 68, 685, 686, 689, 68, 688,
+
+ 692, 68, 690, 693, 68, 683, 691, 694, 695, 684,
+ 687, 682, 696, 697, 699, 698, 700, 68, 68, 68,
+ 68, 68, 685, 686, 701, 703, 68, 692, 68, 704,
+ 693, 68, 705, 68, 694, 695, 68, 68, 68, 696,
+ 697, 699, 698, 700, 702, 68, 68, 710, 706, 707,
+ 68, 701, 703, 708, 68, 68, 68, 68, 709, 705,
+ 712, 713, 68, 711, 717, 715, 68, 718, 716, 714,
+ 719, 702, 721, 68, 710, 706, 707, 68, 68, 68,
+ 708, 720, 68, 68, 68, 709, 722, 712, 713, 68,
+ 711, 717, 715, 68, 68, 716, 714, 723, 68, 68,
+
+ 724, 68, 726, 727, 728, 729, 730, 68, 720, 732,
+ 68, 68, 68, 722, 731, 68, 68, 733, 734, 68,
+ 735, 68, 1627, 1627, 723, 736, 68, 724, 739, 726,
+ 727, 728, 729, 730, 738, 740, 732, 737, 68, 741,
+ 68, 731, 68, 68, 743, 742, 745, 735, 68, 68,
+ 68, 68, 736, 68, 744, 739, 68, 747, 746, 749,
+ 748, 738, 740, 68, 737, 68, 741, 68, 751, 752,
+ 1627, 68, 742, 745, 1627, 750, 753, 754, 68, 68,
+ 759, 744, 68, 68, 747, 746, 749, 748, 68, 755,
+ 756, 758, 68, 757, 68, 751, 752, 68, 68, 68,
+
+ 762, 68, 750, 753, 754, 763, 1627, 759, 766, 760,
+ 761, 767, 68, 68, 68, 68, 755, 756, 758, 764,
+ 757, 68, 68, 68, 765, 68, 769, 762, 770, 68,
+ 771, 772, 763, 68, 768, 766, 760, 761, 767, 780,
+ 773, 68, 774, 68, 68, 775, 764, 68, 777, 776,
+ 68, 765, 778, 769, 779, 782, 68, 771, 772, 68,
+ 781, 768, 783, 786, 68, 784, 68, 773, 789, 774,
+ 68, 790, 68, 791, 788, 777, 68, 68, 785, 778,
+ 787, 779, 782, 68, 68, 68, 68, 781, 792, 783,
+ 786, 68, 784, 68, 1627, 68, 68, 797, 1627, 68,
+
+ 791, 788, 68, 793, 798, 785, 799, 787, 794, 801,
+ 795, 68, 796, 68, 800, 792, 804, 802, 68, 803,
+ 807, 68, 68, 68, 797, 68, 806, 68, 68, 68,
+ 793, 798, 809, 799, 810, 794, 801, 795, 68, 796,
+ 805, 800, 808, 804, 802, 813, 803, 68, 811, 68,
+ 814, 815, 812, 806, 68, 817, 818, 68, 68, 68,
+ 68, 810, 816, 68, 819, 821, 820, 805, 822, 808,
+ 68, 823, 68, 826, 827, 811, 824, 814, 68, 812,
+ 68, 825, 68, 818, 68, 68, 68, 68, 828, 816,
+ 829, 819, 821, 820, 68, 822, 830, 68, 823, 831,
+
+ 832, 68, 833, 824, 68, 68, 834, 68, 825, 836,
+ 68, 839, 837, 68, 68, 828, 68, 838, 835, 68,
+ 68, 68, 68, 830, 68, 840, 831, 832, 841, 68,
+ 842, 844, 68, 834, 843, 68, 852, 845, 839, 837,
+ 68, 68, 849, 68, 838, 835, 846, 850, 853, 68,
+ 847, 68, 840, 68, 848, 841, 855, 842, 844, 851,
+ 68, 843, 854, 852, 845, 1627, 68, 856, 68, 849,
+ 857, 68, 68, 846, 850, 68, 859, 862, 858, 68,
+ 866, 68, 860, 855, 68, 68, 851, 68, 861, 854,
+ 863, 68, 68, 864, 856, 68, 868, 857, 68, 68,
+
+ 68, 68, 867, 859, 862, 858, 865, 866, 869, 860,
+ 68, 877, 870, 871, 872, 861, 874, 863, 68, 68,
+ 864, 875, 68, 868, 873, 876, 878, 68, 68, 867,
+ 1627, 880, 68, 865, 68, 869, 68, 68, 879, 870,
+ 871, 872, 68, 874, 881, 883, 882, 68, 875, 886,
+ 884, 873, 876, 68, 885, 887, 891, 68, 68, 68,
+ 888, 889, 68, 68, 68, 879, 68, 890, 68, 892,
+ 893, 881, 883, 882, 898, 68, 68, 68, 68, 899,
+ 68, 68, 887, 891, 894, 895, 897, 888, 889, 900,
+ 896, 68, 68, 68, 890, 903, 901, 893, 68, 68,
+
+ 68, 898, 902, 904, 906, 907, 899, 905, 910, 68,
+ 908, 894, 895, 897, 68, 68, 900, 896, 68, 909,
+ 912, 68, 903, 901, 913, 68, 68, 68, 914, 902,
+ 904, 68, 907, 68, 905, 911, 915, 908, 916, 68,
+ 917, 919, 68, 918, 68, 921, 909, 912, 923, 922,
+ 68, 913, 920, 68, 68, 924, 1627, 926, 68, 68,
+ 68, 928, 911, 68, 68, 68, 925, 917, 919, 68,
+ 918, 68, 921, 68, 929, 923, 922, 68, 930, 920,
+ 927, 931, 68, 68, 926, 68, 68, 932, 928, 933,
+ 940, 934, 935, 925, 942, 938, 68, 68, 1627, 68,
+
+ 944, 929, 68, 68, 936, 930, 937, 927, 931, 946,
+ 939, 68, 68, 68, 932, 943, 933, 68, 934, 935,
+ 68, 68, 938, 941, 945, 68, 947, 68, 68, 948,
+ 68, 936, 68, 937, 949, 953, 946, 939, 954, 1627,
+ 950, 68, 943, 951, 68, 68, 956, 957, 959, 68,
+ 941, 945, 68, 947, 955, 952, 948, 1627, 960, 958,
+ 68, 949, 961, 967, 68, 954, 68, 950, 68, 962,
+ 951, 68, 68, 956, 957, 964, 966, 68, 968, 68,
+ 963, 955, 952, 68, 68, 960, 958, 68, 965, 961,
+ 68, 984, 68, 973, 970, 969, 962, 68, 68, 971,
+
+ 68, 68, 964, 966, 68, 968, 68, 963, 68, 975,
+ 972, 974, 976, 1627, 980, 965, 979, 977, 68, 68,
+ 973, 970, 969, 68, 68, 68, 971, 978, 68, 981,
+ 986, 983, 982, 68, 68, 987, 985, 972, 974, 976,
+ 68, 980, 68, 979, 977, 989, 68, 68, 988, 992,
+ 993, 994, 68, 68, 978, 996, 981, 986, 983, 982,
+ 68, 990, 987, 985, 991, 997, 68, 68, 1001, 68,
+ 995, 998, 989, 1004, 68, 988, 992, 68, 68, 68,
+ 1000, 68, 996, 999, 68, 68, 1627, 1003, 990, 68,
+ 1002, 991, 997, 1005, 68, 1001, 68, 995, 998, 1006,
+
+ 1007, 68, 68, 1009, 68, 1008, 1627, 1000, 1010, 1011,
+ 999, 1014, 68, 1017, 1003, 1012, 1016, 1002, 1013, 1015,
+ 1005, 68, 68, 1627, 68, 68, 1021, 1007, 68, 1018,
+ 68, 1028, 1008, 68, 68, 1010, 1011, 68, 1014, 1019,
+ 68, 1022, 1012, 1016, 68, 1013, 1015, 1020, 68, 68,
+ 1023, 1024, 1025, 1021, 68, 1026, 1018, 1027, 68, 68,
+ 1032, 1030, 1029, 68, 1627, 1031, 1019, 1036, 1022, 68,
+ 68, 1033, 68, 68, 1020, 68, 68, 1023, 1024, 1025,
+ 68, 1034, 1026, 1035, 1027, 1037, 68, 1038, 1030, 1029,
+ 68, 68, 1031, 1039, 68, 1040, 1042, 1627, 1033, 1043,
+
+ 1041, 1044, 1046, 1627, 68, 1051, 1049, 1045, 1034, 68,
+ 1035, 68, 1037, 68, 68, 68, 68, 68, 68, 68,
+ 1039, 1056, 68, 1042, 68, 1047, 1043, 1041, 1044, 1046,
+ 1050, 1052, 68, 1049, 1045, 1627, 1054, 1058, 1048, 1053,
+ 1055, 1059, 68, 68, 68, 68, 1057, 68, 68, 1060,
+ 1061, 1062, 1047, 68, 1064, 1627, 1065, 1050, 68, 1066,
+ 1063, 1068, 68, 1054, 68, 1048, 1053, 1055, 68, 68,
+ 1067, 1073, 1074, 1057, 68, 1076, 1627, 1061, 68, 68,
+ 68, 68, 68, 1065, 1075, 68, 68, 1063, 1069, 1070,
+ 1071, 68, 68, 1077, 1082, 1072, 68, 1067, 1073, 1074,
+
+ 1078, 68, 1076, 68, 1079, 1080, 1081, 1083, 1084, 1627,
+ 1091, 1075, 68, 1086, 68, 1069, 1070, 1071, 1085, 68,
+ 68, 68, 1072, 1087, 68, 1088, 68, 1078, 68, 1090,
+ 68, 1079, 1080, 1081, 1083, 1084, 68, 1089, 1093, 1092,
+ 1086, 68, 1094, 1096, 1627, 1085, 68, 1097, 68, 68,
+ 1087, 68, 1088, 1095, 68, 1098, 1090, 1101, 68, 1100,
+ 1099, 68, 1103, 1102, 1089, 1093, 1092, 68, 68, 68,
+ 1096, 68, 1104, 1106, 1097, 68, 1109, 1105, 68, 1107,
+ 1095, 68, 1098, 1108, 1101, 68, 1100, 1099, 68, 68,
+ 1102, 1110, 1113, 1111, 1114, 68, 68, 1112, 1115, 1104,
+
+ 68, 1116, 1117, 1118, 1105, 1627, 1107, 68, 1126, 1120,
+ 1108, 68, 1119, 68, 1121, 1122, 1123, 68, 68, 1124,
+ 68, 1114, 1127, 68, 68, 1115, 68, 68, 1125, 1117,
+ 1118, 1129, 68, 1128, 68, 68, 1120, 1135, 1130, 1119,
+ 1132, 1133, 1122, 1131, 1136, 68, 1124, 68, 1134, 68,
+ 1140, 68, 68, 68, 68, 1125, 68, 1142, 1129, 68,
+ 1128, 68, 68, 68, 68, 1130, 1137, 1132, 1133, 1138,
+ 1131, 1136, 1139, 68, 1143, 1134, 1141, 1140, 68, 1144,
+ 68, 1149, 1146, 1151, 68, 1152, 1147, 68, 68, 1148,
+ 1145, 68, 1153, 1137, 1155, 68, 1138, 1150, 68, 1139,
+
+ 1154, 1143, 1156, 1141, 68, 68, 1144, 68, 68, 1146,
+ 68, 1158, 1152, 1147, 68, 1159, 1148, 1145, 68, 1153,
+ 1160, 68, 68, 1157, 1150, 68, 68, 1154, 1161, 1156,
+ 68, 1162, 1164, 68, 1163, 1166, 1168, 68, 1158, 1167,
+ 1170, 1165, 1159, 68, 68, 68, 68, 1160, 68, 68,
+ 1157, 1169, 1171, 68, 1173, 1161, 1177, 68, 1162, 1164,
+ 1174, 1163, 1166, 1168, 68, 68, 1167, 1170, 1165, 68,
+ 1172, 68, 1175, 1176, 1179, 1178, 68, 1182, 1169, 68,
+ 1181, 1173, 68, 1177, 1180, 68, 1183, 1174, 68, 1627,
+ 68, 1188, 1187, 1184, 68, 68, 1193, 1172, 1185, 1175,
+
+ 1176, 1186, 1178, 68, 1182, 68, 68, 1181, 68, 68,
+ 1190, 1180, 1189, 68, 1191, 1192, 68, 68, 1188, 1187,
+ 1184, 1627, 1194, 1193, 1195, 1185, 1196, 68, 1186, 68,
+ 1199, 1197, 68, 68, 1200, 1627, 68, 1190, 1198, 1189,
+ 68, 1191, 1192, 68, 1201, 68, 1202, 68, 68, 1194,
+ 1627, 1195, 1203, 1196, 1204, 1206, 1205, 1199, 1197, 1207,
+ 68, 68, 68, 1210, 1215, 1198, 1208, 1627, 1211, 68,
+ 1209, 1201, 1212, 68, 1214, 1213, 1218, 68, 68, 1203,
+ 68, 1204, 1206, 1205, 68, 68, 68, 68, 68, 1217,
+ 68, 68, 1219, 1208, 68, 1211, 68, 1209, 1216, 1212,
+
+ 68, 1214, 1213, 1218, 68, 1220, 1221, 1222, 1223, 1627,
+ 1225, 68, 1627, 1224, 1234, 68, 1217, 1226, 68, 1219,
+ 1227, 68, 68, 1228, 1627, 1216, 1229, 68, 1232, 68,
+ 1230, 68, 1220, 1221, 1222, 68, 68, 1225, 68, 68,
+ 1224, 68, 1231, 68, 1226, 1233, 1235, 1227, 68, 1236,
+ 1228, 68, 1237, 1229, 1238, 1232, 1239, 1230, 1240, 1241,
+ 1242, 1243, 1244, 68, 1246, 68, 1247, 1245, 68, 1231,
+ 68, 1250, 1233, 1235, 68, 68, 1236, 1249, 1252, 1237,
+ 1254, 1238, 68, 1239, 1248, 68, 68, 1242, 68, 68,
+ 1255, 68, 68, 68, 1245, 1251, 1258, 1253, 68, 68,
+
+ 1256, 68, 1259, 68, 1249, 68, 68, 1254, 1260, 1261,
+ 68, 1248, 1262, 68, 68, 1257, 1264, 1255, 1263, 1266,
+ 1627, 1627, 1251, 68, 1253, 1265, 68, 1256, 1267, 1259,
+ 68, 1269, 1270, 1268, 68, 68, 68, 68, 1271, 1262,
+ 68, 68, 1257, 1264, 68, 1263, 1266, 68, 1272, 1273,
+ 68, 1274, 1265, 1275, 68, 1267, 1276, 1627, 1269, 1270,
+ 1268, 1277, 1278, 1280, 68, 1271, 68, 68, 68, 1279,
+ 1283, 1284, 1627, 1281, 1627, 1272, 1273, 1285, 1274, 68,
+ 68, 1282, 68, 1276, 68, 1286, 68, 1288, 1277, 1278,
+ 1289, 1627, 1290, 1296, 68, 68, 1279, 1283, 1284, 68,
+
+ 1281, 68, 1287, 1292, 1285, 68, 1291, 68, 1282, 68,
+ 1293, 1297, 1286, 1294, 68, 1295, 68, 68, 68, 1290,
+ 1296, 68, 1298, 68, 1299, 1301, 1304, 1300, 1303, 1287,
+ 1292, 1307, 68, 1291, 68, 68, 1302, 1293, 1297, 1305,
+ 1294, 68, 1295, 68, 1308, 1306, 68, 1311, 68, 68,
+ 68, 1299, 1301, 68, 1300, 1303, 68, 68, 1307, 1309,
+ 68, 1312, 1310, 1302, 1314, 1315, 1305, 1316, 1313, 1627,
+ 1317, 1627, 1306, 68, 1311, 68, 1319, 1320, 68, 1321,
+ 1322, 68, 1318, 1323, 1326, 1327, 1309, 68, 68, 1310,
+ 68, 68, 68, 68, 1325, 1313, 68, 1317, 68, 68,
+
+ 1324, 1328, 68, 1319, 1320, 1329, 68, 1322, 68, 1318,
+ 1323, 68, 68, 68, 1330, 1331, 68, 1334, 1332, 1333,
+ 68, 1325, 1335, 68, 1336, 1337, 1340, 1324, 68, 68,
+ 68, 1339, 1329, 68, 68, 1338, 68, 1344, 68, 68,
+ 68, 1330, 1331, 68, 1334, 1332, 1333, 1341, 1342, 1335,
+ 68, 68, 1337, 1340, 1343, 1345, 1346, 1347, 1339, 68,
+ 1348, 68, 1338, 68, 1344, 1350, 1351, 68, 1352, 1349,
+ 68, 1354, 1353, 68, 1341, 1342, 1355, 68, 68, 68,
+ 68, 1343, 1345, 68, 68, 1356, 68, 1348, 1357, 1358,
+ 1627, 1359, 1350, 1351, 1361, 1352, 1349, 1363, 1354, 1353,
+
+ 68, 68, 68, 1355, 1360, 68, 68, 1364, 1366, 1362,
+ 1365, 1627, 68, 68, 1367, 1357, 1358, 68, 1359, 68,
+ 68, 1361, 68, 1368, 68, 1369, 1627, 1370, 1372, 1371,
+ 68, 1360, 1373, 68, 68, 1366, 1362, 1365, 68, 1374,
+ 1375, 1367, 1377, 1376, 68, 1378, 1627, 1379, 68, 1627,
+ 1368, 68, 1369, 68, 1370, 68, 1371, 1380, 1381, 1373,
+ 1382, 1383, 68, 1384, 1387, 1386, 1374, 68, 1389, 68,
+ 1376, 68, 68, 68, 1379, 1385, 68, 68, 1388, 1390,
+ 68, 1391, 68, 68, 1380, 1381, 68, 1382, 1383, 1392,
+ 1384, 1387, 1386, 1627, 68, 1389, 1393, 1394, 1395, 1396,
+
+ 68, 1398, 1385, 1397, 1399, 1388, 68, 1627, 68, 1627,
+ 1403, 1401, 1402, 1400, 1627, 1627, 68, 1407, 1405, 68,
+ 68, 1404, 68, 68, 68, 68, 1396, 68, 1398, 68,
+ 1397, 1399, 68, 68, 68, 68, 68, 1403, 1401, 1402,
+ 1400, 1406, 1408, 68, 1407, 1405, 1409, 1411, 1404, 1410,
+ 1412, 1414, 1413, 1415, 68, 68, 68, 1417, 1419, 68,
+ 68, 1416, 1627, 1421, 1420, 1423, 1424, 1418, 1406, 1408,
+ 68, 68, 68, 1409, 1411, 68, 1410, 68, 68, 1413,
+ 1415, 68, 1422, 68, 1417, 68, 1425, 1426, 1416, 68,
+ 1421, 1420, 68, 68, 1418, 1427, 68, 1428, 1429, 1431,
+
+ 1430, 1627, 1432, 1433, 1436, 1627, 68, 1435, 68, 1422,
+ 1434, 68, 68, 68, 1426, 1438, 68, 1440, 1444, 1627,
+ 68, 1627, 1427, 68, 1442, 68, 1431, 1430, 68, 1432,
+ 1433, 1436, 68, 1437, 1435, 1439, 68, 1434, 1443, 1441,
+ 68, 1445, 68, 68, 1440, 1444, 68, 68, 68, 68,
+ 68, 1442, 1446, 68, 1447, 1627, 1448, 1449, 1450, 1452,
+ 1437, 1451, 1439, 68, 68, 1443, 1441, 1453, 1445, 1454,
+ 68, 1455, 68, 1457, 1460, 68, 1456, 1458, 1466, 1446,
+ 1459, 1447, 68, 1448, 1449, 1450, 68, 68, 1451, 68,
+ 68, 68, 68, 1461, 1453, 1462, 1454, 1464, 1455, 68,
+
+ 1457, 1460, 1463, 1456, 1458, 1465, 68, 1459, 68, 68,
+ 1467, 1468, 68, 68, 68, 68, 1470, 1469, 1471, 68,
+ 1461, 1472, 1462, 1473, 1464, 68, 1627, 1474, 68, 1463,
+ 1475, 1476, 1465, 1478, 68, 68, 1480, 1467, 68, 68,
+ 1477, 68, 1481, 1470, 1469, 68, 1482, 1479, 1472, 68,
+ 1473, 1484, 1483, 68, 1474, 68, 68, 1475, 1476, 68,
+ 68, 1485, 1486, 68, 68, 1488, 1490, 1477, 1487, 1481,
+ 1489, 1491, 1492, 68, 1479, 1493, 68, 68, 1484, 1483,
+ 68, 1494, 1497, 68, 1498, 1627, 68, 1627, 68, 68,
+ 1495, 1496, 1488, 68, 68, 1487, 1499, 1489, 1491, 1492,
+
+ 68, 1500, 1493, 1501, 68, 1502, 1503, 1504, 1627, 68,
+ 1506, 68, 68, 1505, 68, 1507, 1508, 1495, 1496, 1510,
+ 1511, 1627, 1509, 1499, 1627, 68, 1512, 1514, 1500, 1513,
+ 1501, 1627, 68, 68, 68, 68, 68, 68, 68, 1515,
+ 1505, 68, 1507, 68, 68, 1521, 1510, 68, 68, 1509,
+ 68, 68, 1519, 1512, 1514, 1518, 1513, 1516, 1517, 1523,
+ 1522, 68, 1520, 1525, 1526, 1524, 1515, 68, 1527, 68,
+ 1528, 1529, 68, 68, 68, 1627, 68, 68, 1535, 1519,
+ 1532, 1530, 1518, 68, 1516, 1517, 68, 1522, 68, 1520,
+ 68, 1526, 1524, 68, 1531, 1527, 1533, 68, 1529, 1536,
+
+ 68, 1534, 68, 1537, 1538, 68, 1539, 1532, 1530, 68,
+ 1540, 1541, 1542, 1544, 1627, 1627, 1545, 1543, 68, 68,
+ 1627, 1531, 68, 1533, 68, 68, 68, 68, 1534, 1546,
+ 68, 1538, 68, 1539, 68, 1547, 1548, 1549, 1541, 1542,
+ 1544, 68, 68, 1545, 1543, 68, 1550, 1551, 1553, 1552,
+ 68, 68, 68, 1554, 1555, 68, 1546, 1556, 68, 1559,
+ 68, 1557, 1547, 1548, 1549, 1558, 1560, 68, 1564, 1561,
+ 1565, 68, 68, 1550, 1551, 1553, 1552, 1562, 1566, 68,
+ 68, 1555, 68, 68, 1556, 1563, 1559, 1568, 1557, 68,
+ 1569, 68, 1558, 68, 1567, 68, 1561, 68, 1570, 68,
+
+ 1574, 68, 1571, 68, 1562, 1566, 68, 1573, 68, 1572,
+ 1575, 1576, 1563, 1577, 1568, 68, 68, 1569, 1582, 68,
+ 1578, 1567, 68, 68, 1579, 1570, 1580, 1574, 1583, 1571,
+ 1584, 1627, 68, 1581, 1573, 1585, 1572, 1575, 1576, 68,
+ 1577, 68, 68, 68, 1586, 1587, 68, 1578, 68, 68,
+ 68, 1579, 68, 1580, 1589, 68, 1588, 1584, 1590, 1591,
+ 1581, 1592, 1585, 1593, 68, 1594, 1596, 68, 68, 68,
+ 1597, 1586, 1595, 1599, 68, 1598, 68, 68, 1600, 1601,
+ 68, 1589, 1602, 1588, 1603, 1590, 1591, 68, 1592, 1627,
+ 1593, 68, 1594, 1596, 68, 68, 68, 1597, 68, 1595,
+
+ 1599, 68, 1598, 1604, 68, 1600, 1601, 1605, 1607, 68,
+ 1606, 1603, 1627, 1610, 1608, 68, 68, 1609, 1611, 1627,
+ 1612, 68, 1615, 68, 1616, 1613, 68, 1618, 1619, 1627,
+ 1604, 1627, 68, 68, 1605, 1607, 68, 1606, 1617, 68,
+ 1610, 1608, 1614, 1620, 1609, 1611, 68, 1612, 68, 1615,
+ 68, 68, 1613, 1621, 68, 68, 1622, 1625, 68, 1623,
+ 1624, 1626, 1627, 68, 1627, 1617, 1627, 68, 68, 1614,
+ 1620, 1627, 1627, 1627, 1627, 68, 1627, 1627, 68, 1627,
+ 1621, 1627, 1627, 1622, 68, 1627, 1623, 1624, 68, 40,
+ 40, 40, 40, 40, 40, 40, 45, 45, 45, 45,
+
+ 45, 45, 45, 50, 50, 50, 50, 50, 50, 50,
+ 56, 56, 56, 56, 56, 56, 56, 61, 61, 61,
+ 61, 61, 61, 61, 71, 71, 1627, 71, 71, 71,
+ 71, 123, 123, 1627, 1627, 1627, 123, 123, 125, 125,
+ 1627, 1627, 125, 1627, 125, 127, 1627, 1627, 1627, 1627,
+ 1627, 127, 130, 130, 1627, 1627, 1627, 130, 130, 132,
+ 1627, 1627, 1627, 1627, 1627, 132, 134, 134, 1627, 134,
+ 134, 134, 134, 72, 72, 1627, 72, 72, 72, 72,
+ 13, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627
} ;
-static yyconst flex_int16_t yy_chk[4722] =
+static yyconst flex_int16_t yy_chk[4747] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1496,7 +1504,7 @@ static yyconst flex_int16_t yy_chk[4722] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 3, 3, 3, 4, 4,
4, 5, 5, 6, 6, 5, 24, 6, 7, 7,
- 7, 7, 1616, 7, 8, 8, 8, 8, 24, 8,
+ 7, 7, 1633, 7, 8, 8, 8, 8, 24, 8,
9, 9, 9, 10, 10, 10, 15, 44, 44, 49,
15, 3, 49, 24, 4, 60, 60, 5, 19, 6,
@@ -1679,335 +1687,337 @@ static yyconst flex_int16_t yy_chk[4722] =
516, 517, 518, 528, 519, 519, 523, 538, 521, 532,
520, 521, 522, 526, 524, 528, 530, 525, 527, 523,
531, 529, 532, 531, 530, 529, 534, 0, 535, 538,
- 528, 536, 537, 536, 538, 546, 532, 541, 539, 540,
- 535, 546, 0, 530, 537, 549, 0, 531, 533, 534,
- 533, 539, 540, 534, 533, 535, 533, 542, 536, 537,
- 541, 533, 546, 543, 541, 539, 540, 544, 559, 542,
- 0, 548, 533, 543, 545, 533, 549, 533, 547, 0,
- 552, 533, 0, 533, 542, 543, 551, 545, 533, 544,
-
- 543, 547, 548, 552, 544, 559, 562, 550, 548, 553,
- 543, 545, 550, 555, 550, 547, 554, 552, 551, 556,
- 558, 564, 560, 551, 553, 0, 563, 0, 558, 564,
- 566, 557, 550, 550, 550, 555, 553, 562, 556, 550,
- 555, 550, 554, 554, 557, 560, 556, 558, 564, 560,
- 563, 565, 566, 563, 567, 568, 569, 566, 557, 550,
- 571, 572, 567, 570, 569, 565, 573, 571, 574, 576,
- 577, 0, 0, 568, 572, 583, 579, 576, 565, 577,
- 578, 567, 568, 569, 573, 570, 580, 571, 572, 581,
- 570, 582, 578, 573, 584, 588, 576, 577, 579, 574,
-
- 586, 583, 583, 579, 586, 589, 591, 578, 580, 582,
- 598, 581, 587, 580, 590, 587, 581, 589, 582, 588,
- 592, 590, 588, 593, 594, 584, 592, 595, 597, 596,
- 591, 586, 589, 591, 599, 600, 601, 598, 587, 587,
- 596, 590, 587, 612, 600, 593, 594, 592, 595, 597,
- 593, 594, 599, 606, 595, 597, 596, 602, 604, 603,
- 601, 599, 600, 601, 605, 604, 602, 603, 607, 609,
- 608, 610, 613, 611, 612, 606, 0, 614, 605, 608,
- 606, 615, 0, 0, 602, 604, 603, 610, 611, 614,
- 607, 605, 617, 609, 616, 607, 609, 608, 610, 618,
-
- 611, 620, 616, 613, 614, 617, 621, 622, 615, 623,
- 620, 623, 626, 628, 618, 622, 629, 627, 630, 617,
- 628, 616, 0, 631, 621, 626, 618, 0, 620, 627,
- 632, 634, 638, 621, 622, 633, 623, 0, 637, 626,
- 628, 0, 635, 632, 627, 631, 637, 629, 633, 630,
- 631, 636, 639, 634, 635, 640, 646, 632, 634, 638,
- 641, 639, 633, 636, 642, 637, 643, 641, 645, 635,
- 0, 648, 644, 0, 649, 647, 640, 650, 636, 639,
- 646, 645, 640, 646, 647, 650, 651, 641, 643, 648,
- 642, 642, 644, 643, 653, 645, 649, 652, 648, 644,
-
- 654, 649, 647, 655, 650, 652, 658, 656, 651, 0,
- 657, 660, 0, 651, 658, 655, 659, 653, 654, 656,
- 660, 653, 659, 661, 652, 657, 666, 654, 662, 663,
- 655, 664, 667, 658, 656, 668, 663, 657, 660, 669,
- 662, 670, 675, 659, 661, 667, 669, 671, 676, 664,
- 661, 671, 672, 673, 668, 662, 663, 666, 664, 667,
- 672, 677, 668, 670, 674, 678, 669, 673, 670, 679,
- 684, 680, 681, 675, 676, 676, 683, 682, 671, 672,
- 673, 685, 674, 677, 686, 683, 687, 678, 677, 680,
- 682, 674, 678, 0, 681, 679, 679, 691, 680, 681,
-
- 689, 684, 692, 683, 682, 694, 686, 696, 0, 687,
- 688, 686, 685, 687, 692, 688, 689, 688, 694, 688,
- 691, 693, 697, 695, 691, 700, 696, 689, 688, 692,
- 693, 695, 694, 702, 696, 697, 698, 688, 699, 701,
- 699, 707, 688, 704, 688, 698, 688, 705, 693, 697,
- 695, 701, 700, 706, 709, 708, 710, 711, 714, 721,
- 702, 706, 708, 698, 712, 699, 701, 704, 707, 705,
- 704, 712, 713, 715, 705, 716, 718, 714, 710, 717,
- 706, 709, 708, 710, 711, 714, 722, 719, 717, 723,
- 721, 712, 724, 727, 713, 715, 731, 718, 728, 713,
-
- 715, 716, 716, 718, 725, 726, 717, 719, 729, 727,
- 735, 723, 732, 726, 719, 729, 723, 722, 0, 732,
- 727, 734, 725, 724, 730, 728, 733, 731, 730, 743,
- 734, 725, 726, 733, 736, 729, 735, 735, 737, 732,
- 737, 736, 739, 738, 740, 742, 739, 743, 734, 742,
- 745, 730, 738, 733, 744, 746, 743, 747, 749, 750,
- 748, 736, 751, 751, 0, 737, 740, 750, 746, 739,
- 738, 740, 753, 744, 749, 745, 742, 745, 756, 0,
- 760, 744, 746, 748, 752, 749, 750, 748, 747, 751,
- 755, 754, 760, 752, 753, 757, 759, 755, 758, 753,
-
- 754, 756, 761, 771, 757, 756, 758, 760, 762, 759,
- 761, 752, 763, 766, 764, 765, 767, 755, 754, 772,
- 0, 769, 757, 759, 765, 758, 768, 769, 767, 761,
- 762, 766, 763, 770, 771, 762, 764, 773, 775, 763,
- 766, 764, 765, 767, 776, 777, 778, 768, 769, 780,
- 772, 781, 779, 768, 778, 770, 779, 0, 777, 781,
- 770, 782, 784, 773, 773, 775, 776, 783, 783, 782,
- 784, 776, 777, 778, 785, 786, 780, 787, 781, 0,
- 791, 792, 788, 779, 789, 787, 793, 792, 782, 784,
- 788, 790, 789, 791, 783, 785, 794, 795, 793, 790,
-
- 797, 785, 796, 798, 787, 799, 786, 791, 792, 788,
- 800, 789, 799, 793, 797, 804, 801, 802, 790, 795,
- 808, 798, 794, 794, 795, 796, 803, 797, 809, 796,
- 798, 810, 799, 803, 812, 0, 806, 800, 801, 814,
- 802, 816, 808, 801, 802, 806, 804, 808, 817, 819,
- 821, 819, 818, 803, 809, 809, 820, 823, 822, 828,
- 824, 812, 810, 806, 818, 816, 814, 824, 816, 820,
- 822, 825, 821, 826, 817, 817, 819, 821, 826, 818,
- 827, 829, 828, 820, 823, 822, 828, 824, 830, 829,
- 832, 833, 840, 834, 835, 836, 827, 825, 825, 832,
-
- 826, 835, 836, 838, 833, 837, 841, 827, 829, 839,
- 830, 842, 837, 841, 843, 830, 844, 832, 833, 834,
- 834, 835, 836, 840, 842, 847, 846, 848, 838, 846,
- 838, 839, 837, 841, 851, 852, 839, 844, 842, 849,
- 853, 843, 848, 844, 850, 856, 849, 850, 854, 857,
- 858, 847, 847, 846, 848, 859, 863, 852, 853, 850,
- 863, 855, 852, 855, 859, 851, 849, 853, 850, 856,
- 854, 850, 856, 860, 850, 854, 858, 858, 861, 862,
- 857, 860, 859, 863, 865, 861, 850, 864, 855, 867,
- 866, 870, 868, 871, 873, 869, 872, 0, 867, 868,
-
- 860, 862, 869, 878, 870, 861, 862, 876, 871, 864,
- 872, 865, 866, 876, 864, 878, 867, 866, 870, 868,
- 871, 874, 869, 872, 875, 873, 879, 881, 874, 880,
- 878, 875, 880, 884, 876, 886, 889, 885, 881, 887,
- 888, 892, 893, 0, 889, 0, 879, 880, 874, 0,
- 887, 875, 890, 879, 881, 890, 880, 886, 888, 880,
- 884, 885, 886, 889, 885, 891, 887, 888, 894, 893,
- 890, 895, 892, 900, 897, 894, 898, 896, 898, 890,
- 899, 902, 890, 891, 904, 895, 896, 897, 906, 899,
- 902, 901, 891, 907, 909, 894, 905, 910, 895, 900,
-
- 900, 897, 901, 898, 896, 905, 908, 899, 902, 914,
- 911, 910, 915, 908, 907, 904, 911, 0, 901, 906,
- 907, 916, 918, 905, 910, 909, 915, 917, 914, 919,
- 916, 922, 920, 908, 911, 917, 914, 911, 922, 915,
- 919, 920, 923, 911, 924, 925, 926, 928, 916, 929,
- 930, 928, 927, 918, 917, 934, 919, 938, 922, 920,
- 939, 929, 931, 932, 0, 923, 924, 925, 926, 923,
- 927, 924, 925, 926, 928, 931, 929, 930, 932, 927,
- 933, 935, 936, 937, 938, 941, 934, 939, 942, 931,
- 932, 936, 944, 945, 947, 933, 935, 0, 943, 953,
-
- 948, 946, 952, 941, 937, 949, 947, 933, 935, 936,
- 937, 945, 941, 943, 944, 942, 946, 950, 949, 944,
- 945, 947, 948, 949, 950, 943, 951, 948, 946, 952,
- 953, 954, 949, 955, 957, 956, 958, 954, 951, 959,
- 960, 955, 956, 958, 950, 949, 961, 962, 964, 966,
- 0, 968, 0, 951, 967, 965, 967, 969, 954, 970,
- 955, 957, 956, 958, 965, 0, 959, 960, 972, 973,
- 976, 962, 977, 977, 962, 972, 973, 961, 968, 964,
- 966, 967, 965, 969, 969, 971, 974, 971, 975, 981,
- 970, 978, 971, 974, 975, 972, 973, 976, 979, 977,
-
- 971, 982, 984, 985, 0, 979, 987, 981, 983, 986,
- 986, 992, 971, 974, 971, 975, 981, 978, 978, 971,
- 983, 985, 984, 988, 988, 979, 989, 991, 982, 984,
- 985, 993, 987, 987, 995, 983, 986, 989, 993, 994,
- 996, 998, 992, 999, 1000, 997, 1003, 1004, 998, 991,
- 988, 1006, 1000, 989, 991, 999, 1002, 1001, 993, 994,
- 1005, 995, 996, 997, 1003, 1005, 994, 996, 998, 1001,
- 999, 1000, 997, 1003, 1004, 1007, 1005, 1002, 1006, 1009,
- 1008, 1007, 1010, 1002, 1001, 1011, 1012, 1005, 1014, 1011,
- 0, 1015, 1005, 1008, 1013, 1013, 1016, 1017, 1018, 1019,
-
- 1020, 1019, 1007, 1014, 1022, 1025, 1026, 1008, 0, 1010,
- 1009, 1016, 1023, 1018, 1021, 1014, 1011, 1012, 1027, 1021,
- 1017, 1013, 1015, 1016, 1017, 1018, 1019, 1023, 1028, 1025,
- 1029, 1020, 1025, 1026, 1037, 1022, 1031, 1030, 1034, 1023,
- 1038, 1021, 1039, 1041, 1036, 1027, 0, 1038, 1044, 1028,
- 1042, 1041, 1029, 1034, 1031, 1028, 1043, 1029, 1030, 1036,
- 1039, 1037, 0, 1031, 1030, 1034, 1040, 1038, 1045, 1039,
- 1041, 1036, 1049, 1042, 1047, 1040, 1050, 1042, 1043, 1044,
- 1048, 1045, 1052, 1043, 1055, 1047, 1056, 1058, 1057, 1048,
- 1049, 1059, 1060, 1040, 1050, 1045, 0, 1055, 1057, 1049,
-
- 1047, 1047, 1062, 1050, 1064, 0, 1066, 1048, 1067, 1052,
- 1068, 1055, 1047, 1058, 1058, 1057, 1059, 1056, 1059, 1060,
- 1063, 1066, 1062, 1067, 1069, 1068, 1065, 1063, 1072, 1062,
- 1064, 1064, 1065, 1066, 1070, 1067, 1069, 1068, 1073, 1074,
- 1075, 1070, 1078, 1077, 1079, 1079, 1080, 1063, 1074, 1081,
- 1072, 1069, 1086, 1065, 0, 1072, 1077, 1082, 1075, 1083,
- 0, 1070, 1091, 1073, 0, 1073, 1074, 1075, 1080, 1078,
- 1077, 1079, 1087, 1080, 1081, 1085, 1081, 1089, 1084, 1082,
- 1090, 1083, 1085, 1086, 1082, 1089, 1083, 1084, 1092, 1091,
- 1095, 1094, 1093, 1090, 1087, 1093, 1096, 0, 1098, 1087,
-
- 1101, 0, 1085, 1092, 1089, 1084, 1099, 1090, 1095, 1105,
- 1093, 1096, 1111, 1107, 1101, 1092, 1094, 1095, 1094, 1093,
- 1098, 1103, 1093, 1096, 1102, 1098, 1108, 1101, 1099, 1110,
- 1105, 1102, 1103, 1099, 1107, 1109, 1105, 1109, 1108, 1111,
- 1107, 1112, 1113, 1115, 1114, 1116, 1117, 1110, 1103, 1118,
- 1123, 1102, 1114, 1108, 1124, 1119, 1110, 1122, 1127, 1112,
- 1117, 1126, 1109, 1125, 1130, 0, 1115, 1116, 1112, 1113,
- 1115, 1114, 1116, 1117, 1119, 1122, 1118, 1123, 1125, 1133,
- 1124, 1124, 1119, 1126, 1122, 1127, 1130, 1129, 1126, 1129,
- 1125, 1130, 1131, 1132, 1134, 1136, 1131, 1135, 1138, 0,
-
- 1137, 1133, 0, 1134, 1139, 1132, 1133, 1141, 1135, 1144,
- 1138, 1140, 1140, 1143, 1129, 1141, 1143, 1144, 1146, 1131,
- 1132, 1134, 1136, 1137, 1135, 1138, 1139, 1137, 1149, 1145,
- 1150, 1139, 1151, 1146, 1141, 1145, 1144, 1147, 1140, 1152,
- 1143, 1153, 1154, 1147, 1155, 1146, 1151, 1156, 1157, 1158,
- 1159, 1160, 1161, 1152, 1150, 1149, 1145, 1150, 1159, 1151,
- 1164, 1156, 1162, 1165, 1147, 1166, 1152, 1153, 1153, 1154,
- 1162, 1155, 1167, 1166, 1156, 1157, 1158, 1159, 1160, 1161,
- 1169, 1170, 1164, 1171, 1168, 1172, 1173, 1164, 1174, 1162,
- 1165, 1176, 1166, 1168, 1173, 1177, 1177, 1178, 1171, 1167,
-
- 0, 1169, 1179, 1183, 1180, 1170, 1181, 1169, 1170, 1171,
- 1171, 1168, 1172, 1173, 1182, 1174, 1182, 1183, 1176, 1180,
- 1179, 1184, 1177, 1178, 1178, 1171, 1186, 1184, 1181, 1179,
- 1183, 1180, 1185, 1181, 1187, 1190, 1189, 1188, 1186, 1197,
- 1193, 1182, 1191, 0, 1195, 0, 1196, 1193, 1184, 1189,
- 1198, 1205, 1187, 1186, 1185, 1188, 1200, 1203, 1198, 1185,
- 1201, 1187, 1195, 1189, 1188, 1191, 1190, 1193, 1200, 1191,
- 1197, 1195, 1196, 1196, 1204, 1201, 1198, 1198, 1205, 1207,
- 1208, 1203, 1209, 1200, 1203, 1198, 1211, 1201, 1210, 1212,
- 0, 1213, 0, 1208, 0, 1216, 1204, 1212, 1215, 1211,
-
- 1217, 1204, 1218, 1210, 1219, 1220, 1207, 1208, 1209, 1209,
- 1223, 1219, 1222, 1211, 0, 1210, 1212, 1213, 1213, 1216,
- 1243, 1215, 1216, 1221, 1218, 1215, 1224, 1217, 1220, 1218,
- 1221, 1219, 1220, 1226, 1222, 1227, 1228, 1235, 0, 1222,
- 1229, 1223, 1232, 0, 1226, 1239, 1241, 1224, 1238, 1246,
- 1221, 1243, 1244, 1224, 1246, 1228, 1249, 1227, 1247, 1252,
- 1226, 1254, 1227, 1228, 1235, 1229, 1245, 1229, 1232, 1232,
- 1238, 1253, 1239, 1241, 1254, 1238, 1246, 1245, 1244, 1244,
- 1247, 1252, 1255, 1249, 1256, 1247, 1252, 1257, 1254, 1258,
- 1259, 1260, 1261, 1245, 0, 1262, 1253, 1263, 1253, 1264,
-
- 1260, 1265, 1266, 1271, 1255, 1259, 1271, 1261, 1265, 1255,
- 1262, 1256, 1263, 1267, 1257, 1276, 1258, 1259, 1260, 1261,
- 1269, 1264, 1262, 1270, 1263, 1272, 1264, 1269, 1265, 1266,
- 1271, 1267, 1268, 1268, 1273, 1274, 1275, 1270, 1272, 1279,
- 1267, 1282, 1276, 1273, 1280, 1288, 1279, 1269, 1282, 1281,
- 1270, 1283, 1272, 1280, 1281, 1285, 1289, 1274, 1275, 1268,
- 1284, 1273, 1274, 1275, 1285, 1286, 1279, 1284, 1282, 1283,
- 1291, 1280, 1288, 1290, 1289, 1292, 1281, 1293, 1283, 1291,
- 1295, 1294, 1285, 1289, 1292, 1290, 1296, 1284, 1293, 1294,
- 0, 1286, 1286, 1297, 1299, 1298, 0, 1291, 1301, 1305,
-
- 1290, 1299, 1292, 1298, 1293, 1297, 1301, 1295, 1294, 1304,
- 1306, 1310, 1307, 0, 1312, 1313, 1304, 1296, 1308, 0,
- 1297, 1299, 1298, 1305, 1307, 1301, 1305, 1308, 1317, 1318,
- 1319, 1320, 1311, 1329, 1318, 1330, 1304, 1306, 1310, 1307,
- 1311, 1312, 1313, 1321, 1322, 1308, 1326, 1323, 1319, 1325,
- 1327, 1328, 1322, 1320, 1317, 1317, 1318, 1319, 1320, 1311,
- 1329, 1325, 1330, 1328, 1331, 1321, 1323, 1332, 1326, 1333,
- 1321, 1322, 1327, 1326, 1323, 1335, 1325, 1327, 1328, 0,
- 1336, 1338, 1337, 1340, 0, 1339, 1342, 0, 0, 1341,
- 1344, 1345, 0, 0, 1332, 1331, 1333, 1339, 1348, 1338,
-
- 1353, 1342, 1340, 1336, 1337, 1345, 1335, 1336, 1338, 1337,
- 1340, 1341, 1339, 1342, 1344, 1346, 1341, 1344, 1345, 1347,
- 1349, 1351, 1352, 1354, 1348, 1348, 1355, 1353, 1362, 1351,
- 1352, 1360, 1356, 1346, 1357, 1368, 1359, 1347, 1349, 1366,
- 0, 1354, 1346, 1367, 1369, 1360, 1347, 1349, 1351, 1352,
- 1354, 1356, 1370, 1355, 1359, 1362, 1357, 1365, 1360, 1356,
- 1371, 1357, 1368, 1359, 1365, 1366, 1366, 1367, 1372, 1371,
- 1367, 1369, 1373, 1374, 1375, 1378, 0, 1382, 1384, 1370,
- 1383, 1372, 1381, 1381, 1365, 1384, 1386, 1371, 1390, 1383,
- 1387, 0, 1381, 1385, 1392, 1372, 1378, 1375, 1387, 1382,
-
- 1374, 1375, 1378, 1373, 1382, 1384, 1385, 1383, 1388, 1381,
- 1381, 1389, 1391, 1386, 1390, 1390, 1392, 1387, 1393, 1389,
- 1385, 1392, 1395, 1391, 1396, 1393, 1398, 1388, 1394, 1394,
- 1401, 1396, 1400, 1402, 1403, 1388, 1405, 0, 1389, 1391,
- 1395, 1400, 1407, 1406, 1407, 1393, 1411, 0, 1412, 1395,
- 1398, 1396, 1403, 1398, 1405, 1394, 1402, 1401, 1406, 1400,
- 1402, 1403, 1413, 1405, 1415, 1416, 1417, 1422, 1411, 1407,
- 1406, 1420, 1417, 1411, 1412, 1412, 1418, 1421, 1419, 1421,
- 1413, 1426, 1424, 1416, 1425, 0, 1415, 1419, 1427, 1413,
- 1424, 1415, 1416, 1417, 1422, 1430, 1425, 1431, 1418, 1428,
-
- 1432, 1432, 1420, 1418, 1421, 1419, 1427, 1434, 1426, 1424,
- 1428, 1425, 1429, 1433, 1430, 1427, 1435, 1437, 1438, 1431,
- 1429, 1433, 1430, 1439, 1431, 1438, 1428, 1432, 1439, 1440,
- 1441, 1443, 1445, 1442, 1434, 1444, 1446, 1449, 1435, 1429,
- 1433, 1442, 1444, 1435, 1437, 1438, 1443, 1447, 1451, 1453,
- 1439, 1446, 0, 1448, 1450, 1450, 1440, 1441, 1443, 1445,
- 1442, 1448, 1444, 1446, 1450, 1454, 1456, 1457, 1449, 1447,
- 1458, 1459, 1460, 1454, 1447, 1451, 1453, 1462, 1461, 1456,
- 1448, 1450, 1450, 1464, 1466, 1467, 1471, 1470, 0, 1457,
- 0, 0, 1454, 1456, 1457, 1472, 1474, 1458, 1459, 1460,
-
- 1461, 1483, 1488, 0, 1462, 1461, 1470, 1467, 1476, 1464,
- 1464, 1466, 1467, 1471, 1470, 1475, 1479, 1472, 1474, 1476,
- 1477, 1477, 1472, 1474, 1475, 1478, 1482, 1484, 1483, 1488,
- 1477, 1478, 1490, 1482, 1492, 1476, 1495, 1493, 1479, 1496,
- 1500, 0, 1475, 1479, 1497, 1495, 1497, 1477, 1477, 1493,
- 1484, 1499, 1478, 1482, 1484, 1490, 1498, 1499, 1501, 1490,
- 1503, 1492, 1500, 1495, 1493, 1502, 1496, 1500, 1498, 1505,
- 1507, 1497, 1510, 1502, 1509, 1512, 0, 1513, 1499, 0,
- 1501, 1514, 1516, 1498, 1517, 1501, 1515, 1503, 1523, 1509,
- 1513, 1516, 1502, 1521, 1515, 1517, 1505, 1507, 1510, 1510,
-
- 1522, 1509, 1523, 1514, 1513, 1525, 1512, 1522, 1514, 1516,
- 1524, 1517, 1526, 1515, 1525, 1523, 1521, 1527, 1524, 1527,
- 1521, 1528, 1529, 1526, 1530, 1531, 1534, 1522, 1532, 1533,
- 1535, 1533, 1525, 1528, 1540, 1539, 1541, 1524, 1534, 1526,
- 0, 1536, 1530, 1539, 1527, 1538, 1542, 1531, 1528, 1529,
- 1532, 1530, 1531, 1534, 1536, 1532, 1533, 1538, 1544, 1542,
- 1543, 1535, 1539, 1545, 1547, 1540, 1544, 1541, 1536, 1546,
- 1548, 1549, 1538, 1542, 1543, 1558, 1545, 1546, 1547, 1549,
- 1550, 1551, 0, 1553, 1548, 1544, 1552, 1543, 0, 1554,
- 1545, 1547, 1555, 1556, 1552, 1559, 1546, 1548, 1549, 1563,
-
- 0, 1560, 1550, 1551, 1557, 0, 1558, 1550, 1551, 1553,
- 1553, 1554, 1557, 1552, 1555, 1556, 1554, 1561, 1562, 1555,
- 1556, 1560, 1559, 1565, 1564, 1561, 1562, 1567, 1560, 1570,
- 1563, 1557, 1564, 1568, 1569, 0, 1571, 1565, 1574, 1573,
- 0, 1568, 1569, 1570, 1561, 1562, 1572, 1573, 1575, 1567,
- 1565, 1564, 1577, 1579, 1567, 1576, 1570, 0, 1580, 1578,
- 1568, 1569, 1571, 1571, 1574, 1574, 1573, 1578, 1572, 1581,
- 1583, 1586, 1577, 1572, 1575, 1575, 1582, 1576, 1580, 1577,
- 1579, 0, 1576, 1584, 1582, 1580, 1578, 1587, 1594, 1581,
- 1590, 1584, 1583, 1586, 1588, 1596, 1581, 1583, 1586, 1589,
-
- 1591, 1597, 1588, 1582, 1592, 0, 1593, 1589, 1591, 1587,
- 1584, 0, 1592, 1600, 1587, 1594, 1590, 1590, 1595, 1598,
- 1603, 1588, 1596, 1606, 1607, 0, 1589, 1591, 1597, 1604,
- 0, 1592, 1593, 1593, 0, 1600, 1605, 1604, 1595, 1598,
- 1600, 0, 1603, 0, 1605, 1595, 1598, 1603, 0, 0,
- 1606, 1607, 0, 0, 0, 0, 1604, 0, 0, 0,
- 0, 0, 0, 1605, 1611, 1611, 1611, 1611, 1611, 1611,
- 1611, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1613, 1613,
- 1613, 1613, 1613, 1613, 1613, 1614, 1614, 1614, 1614, 1614,
- 1614, 1614, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1617,
-
- 1617, 0, 1617, 1617, 1617, 1617, 1618, 1618, 0, 0,
- 0, 1618, 1618, 1619, 1619, 0, 0, 1619, 0, 1619,
- 1620, 0, 0, 0, 0, 0, 1620, 1621, 1621, 0,
- 0, 0, 1621, 1621, 1622, 0, 0, 0, 0, 0,
- 1622, 1623, 1623, 0, 1623, 1623, 1623, 1623, 1624, 1624,
- 0, 1624, 1624, 1624, 1624, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
-
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
- 1610
+ 528, 536, 537, 536, 538, 0, 532, 541, 539, 0,
+ 535, 559, 0, 530, 537, 0, 0, 531, 533, 534,
+ 533, 539, 0, 534, 533, 535, 533, 540, 536, 537,
+ 541, 533, 542, 543, 541, 539, 533, 545, 559, 544,
+ 540, 549, 533, 543, 542, 533, 546, 533, 548, 547,
+ 545, 533, 546, 533, 540, 543, 551, 562, 533, 542,
+
+ 543, 544, 547, 533, 545, 554, 544, 552, 555, 548,
+ 543, 553, 549, 546, 550, 548, 547, 556, 551, 550,
+ 552, 550, 560, 551, 557, 558, 553, 0, 562, 563,
+ 555, 554, 554, 558, 552, 555, 556, 557, 553, 550,
+ 550, 550, 564, 565, 556, 560, 550, 567, 550, 560,
+ 564, 557, 558, 563, 566, 567, 563, 565, 570, 568,
+ 569, 573, 572, 574, 571, 576, 550, 0, 569, 564,
+ 565, 571, 583, 576, 567, 572, 566, 568, 578, 573,
+ 570, 566, 579, 582, 577, 570, 568, 569, 573, 572,
+ 578, 571, 576, 577, 574, 580, 581, 584, 583, 583,
+
+ 587, 582, 586, 587, 579, 578, 586, 588, 589, 579,
+ 582, 577, 590, 591, 593, 592, 594, 580, 581, 590,
+ 589, 592, 580, 581, 595, 597, 587, 587, 584, 598,
+ 587, 588, 599, 586, 588, 589, 593, 591, 594, 590,
+ 591, 593, 592, 594, 596, 595, 597, 604, 600, 601,
+ 599, 595, 597, 602, 604, 596, 598, 600, 603, 599,
+ 606, 607, 602, 605, 611, 609, 603, 612, 610, 608,
+ 613, 596, 615, 601, 604, 600, 601, 605, 608, 611,
+ 602, 614, 606, 607, 610, 603, 616, 606, 607, 609,
+ 605, 611, 609, 614, 616, 610, 608, 617, 612, 615,
+
+ 618, 613, 620, 621, 622, 623, 626, 623, 614, 628,
+ 617, 620, 622, 616, 627, 618, 628, 629, 630, 626,
+ 631, 621, 0, 0, 617, 632, 627, 618, 635, 620,
+ 621, 622, 623, 626, 634, 636, 628, 633, 632, 637,
+ 635, 627, 631, 636, 639, 638, 641, 631, 629, 630,
+ 633, 637, 632, 638, 640, 635, 634, 643, 642, 645,
+ 644, 634, 636, 640, 633, 642, 637, 641, 647, 648,
+ 0, 639, 638, 641, 0, 646, 649, 650, 648, 645,
+ 655, 640, 644, 643, 643, 642, 645, 644, 646, 651,
+ 652, 654, 647, 653, 649, 647, 648, 651, 655, 650,
+
+ 658, 653, 646, 649, 650, 659, 0, 655, 662, 656,
+ 657, 663, 652, 659, 654, 658, 651, 652, 654, 660,
+ 653, 656, 657, 663, 661, 660, 665, 658, 667, 662,
+ 668, 669, 659, 661, 664, 662, 656, 657, 663, 676,
+ 670, 664, 671, 668, 665, 672, 660, 670, 673, 672,
+ 669, 661, 674, 665, 675, 678, 673, 668, 669, 667,
+ 677, 664, 679, 682, 671, 680, 674, 670, 685, 671,
+ 676, 686, 675, 687, 684, 673, 672, 678, 681, 674,
+ 683, 675, 678, 684, 679, 682, 677, 677, 688, 679,
+ 682, 680, 680, 683, 0, 687, 681, 690, 0, 685,
+
+ 687, 684, 686, 689, 692, 681, 693, 683, 689, 695,
+ 689, 688, 689, 690, 694, 688, 698, 696, 693, 697,
+ 701, 689, 695, 694, 690, 696, 700, 692, 700, 698,
+ 689, 692, 703, 693, 705, 689, 695, 689, 697, 689,
+ 699, 694, 702, 698, 696, 708, 697, 701, 706, 699,
+ 709, 710, 707, 700, 702, 712, 713, 709, 705, 703,
+ 707, 705, 711, 713, 714, 716, 715, 699, 717, 702,
+ 706, 718, 708, 722, 723, 706, 719, 709, 710, 707,
+ 718, 720, 712, 713, 711, 715, 714, 716, 724, 711,
+ 725, 714, 716, 715, 717, 717, 726, 719, 718, 727,
+
+ 728, 720, 729, 719, 722, 723, 730, 727, 720, 732,
+ 724, 735, 733, 730, 726, 724, 728, 734, 731, 733,
+ 735, 725, 731, 726, 734, 736, 727, 728, 737, 729,
+ 738, 740, 738, 730, 739, 737, 748, 741, 735, 733,
+ 732, 741, 745, 739, 734, 731, 742, 746, 749, 748,
+ 744, 736, 736, 740, 744, 737, 751, 738, 740, 747,
+ 745, 739, 750, 748, 741, 0, 746, 752, 742, 745,
+ 753, 753, 751, 742, 746, 752, 755, 758, 754, 749,
+ 762, 744, 756, 751, 747, 750, 747, 754, 757, 750,
+ 759, 756, 762, 760, 752, 757, 764, 753, 755, 759,
+
+ 758, 760, 763, 755, 758, 754, 761, 762, 765, 756,
+ 763, 773, 766, 767, 768, 757, 770, 759, 764, 761,
+ 760, 771, 767, 764, 769, 772, 774, 771, 765, 763,
+ 0, 777, 768, 761, 766, 765, 769, 770, 775, 766,
+ 767, 768, 773, 770, 778, 780, 779, 772, 771, 782,
+ 781, 769, 772, 780, 781, 783, 787, 774, 777, 779,
+ 784, 785, 785, 783, 775, 775, 778, 786, 784, 788,
+ 789, 778, 780, 779, 794, 786, 782, 787, 789, 795,
+ 794, 781, 783, 787, 790, 791, 793, 784, 785, 796,
+ 792, 795, 790, 791, 786, 799, 797, 789, 792, 793,
+
+ 788, 794, 798, 800, 802, 803, 795, 801, 806, 799,
+ 804, 790, 791, 793, 801, 796, 796, 792, 797, 805,
+ 810, 800, 799, 797, 811, 798, 805, 803, 812, 798,
+ 800, 802, 803, 804, 801, 808, 814, 804, 816, 806,
+ 818, 820, 810, 819, 808, 822, 805, 810, 824, 823,
+ 811, 811, 821, 820, 821, 825, 0, 827, 822, 812,
+ 824, 829, 808, 814, 818, 816, 826, 818, 820, 819,
+ 819, 823, 822, 826, 830, 824, 823, 829, 831, 821,
+ 828, 832, 825, 827, 827, 828, 831, 834, 829, 835,
+ 842, 836, 837, 826, 844, 840, 834, 830, 0, 837,
+
+ 846, 830, 835, 832, 838, 831, 839, 828, 832, 849,
+ 841, 838, 849, 839, 834, 845, 835, 836, 836, 837,
+ 840, 842, 840, 843, 847, 844, 850, 846, 845, 851,
+ 843, 838, 841, 839, 852, 854, 849, 841, 855, 0,
+ 853, 852, 845, 853, 851, 847, 857, 858, 860, 858,
+ 843, 847, 850, 850, 856, 853, 851, 0, 861, 859,
+ 855, 852, 862, 868, 853, 855, 854, 853, 857, 863,
+ 853, 862, 856, 857, 858, 865, 867, 863, 869, 860,
+ 864, 856, 853, 859, 861, 861, 859, 864, 866, 862,
+ 868, 887, 866, 874, 871, 870, 863, 865, 867, 872,
+
+ 869, 871, 865, 867, 870, 869, 872, 864, 874, 876,
+ 873, 875, 877, 0, 882, 866, 881, 878, 887, 877,
+ 874, 871, 870, 873, 878, 875, 872, 879, 881, 883,
+ 889, 884, 883, 879, 882, 890, 888, 873, 875, 877,
+ 876, 882, 884, 881, 878, 892, 890, 883, 891, 894,
+ 895, 896, 889, 892, 879, 898, 883, 889, 884, 883,
+ 888, 893, 890, 888, 893, 899, 891, 894, 903, 898,
+ 897, 900, 892, 907, 899, 891, 894, 897, 896, 893,
+ 902, 895, 898, 901, 900, 901, 0, 905, 893, 902,
+ 904, 893, 899, 908, 903, 903, 905, 897, 900, 909,
+
+ 910, 904, 908, 912, 907, 911, 0, 902, 913, 914,
+ 901, 918, 911, 921, 905, 914, 920, 904, 917, 919,
+ 908, 910, 913, 0, 920, 918, 926, 910, 919, 922,
+ 909, 933, 911, 914, 912, 913, 914, 917, 918, 923,
+ 922, 927, 914, 920, 921, 917, 919, 925, 923, 926,
+ 928, 929, 930, 926, 925, 931, 922, 932, 933, 931,
+ 937, 935, 934, 927, 0, 936, 923, 941, 927, 932,
+ 930, 938, 928, 929, 925, 934, 935, 928, 929, 930,
+ 936, 939, 931, 940, 932, 942, 938, 943, 935, 934,
+ 939, 937, 936, 945, 941, 946, 948, 0, 938, 949,
+
+ 947, 950, 952, 0, 940, 956, 954, 951, 939, 942,
+ 940, 945, 942, 954, 943, 947, 950, 949, 948, 951,
+ 945, 961, 946, 948, 952, 953, 949, 947, 950, 952,
+ 955, 957, 956, 954, 951, 0, 959, 963, 953, 958,
+ 960, 964, 955, 953, 959, 958, 962, 960, 961, 965,
+ 966, 968, 953, 962, 970, 0, 971, 955, 971, 972,
+ 969, 974, 957, 959, 963, 953, 958, 960, 964, 969,
+ 973, 976, 977, 962, 966, 979, 0, 966, 976, 977,
+ 965, 979, 968, 971, 978, 970, 972, 969, 975, 975,
+ 975, 978, 974, 980, 986, 975, 973, 973, 976, 977,
+
+ 981, 981, 979, 975, 982, 983, 985, 987, 988, 0,
+ 996, 978, 983, 990, 990, 975, 975, 975, 989, 987,
+ 980, 986, 975, 991, 985, 992, 992, 981, 988, 995,
+ 982, 982, 983, 985, 987, 988, 989, 993, 998, 997,
+ 990, 996, 999, 1001, 0, 989, 997, 1002, 993, 991,
+ 991, 995, 992, 1000, 1002, 1003, 995, 1006, 998, 1005,
+ 1004, 1001, 1008, 1007, 993, 998, 997, 1003, 1004, 999,
+ 1001, 1005, 1009, 1010, 1002, 1000, 1013, 1009, 1006, 1011,
+ 1000, 1007, 1003, 1012, 1006, 1011, 1005, 1004, 1009, 1008,
+ 1007, 1014, 1016, 1015, 1017, 1017, 1012, 1015, 1018, 1009,
+
+ 1010, 1019, 1020, 1021, 1009, 0, 1011, 1013, 1030, 1023,
+ 1012, 1023, 1022, 1018, 1024, 1025, 1026, 1020, 1014, 1027,
+ 1025, 1017, 1031, 1016, 1015, 1018, 1021, 1022, 1029, 1020,
+ 1021, 1033, 1019, 1032, 1027, 1030, 1023, 1042, 1034, 1022,
+ 1037, 1039, 1025, 1035, 1043, 1024, 1027, 1026, 1041, 1031,
+ 1047, 1043, 1029, 1033, 1032, 1029, 1039, 1049, 1033, 1034,
+ 1032, 1035, 1037, 1041, 1042, 1034, 1044, 1037, 1039, 1045,
+ 1035, 1043, 1046, 1047, 1050, 1041, 1048, 1047, 1045, 1052,
+ 1046, 1057, 1053, 1061, 1044, 1062, 1054, 1050, 1049, 1055,
+ 1052, 1053, 1063, 1044, 1065, 1062, 1045, 1060, 1048, 1046,
+
+ 1064, 1050, 1067, 1048, 1054, 1052, 1052, 1055, 1057, 1053,
+ 1060, 1069, 1062, 1054, 1061, 1070, 1055, 1052, 1063, 1063,
+ 1071, 1065, 1067, 1068, 1060, 1064, 1071, 1064, 1072, 1067,
+ 1068, 1073, 1075, 1070, 1074, 1078, 1080, 1069, 1069, 1079,
+ 1083, 1076, 1070, 1072, 1075, 1080, 1073, 1071, 1076, 1074,
+ 1068, 1081, 1084, 1083, 1086, 1072, 1090, 1078, 1073, 1075,
+ 1087, 1074, 1078, 1080, 1079, 1090, 1079, 1083, 1076, 1081,
+ 1085, 1085, 1088, 1089, 1092, 1091, 1086, 1096, 1081, 1084,
+ 1095, 1086, 1091, 1090, 1093, 1087, 1097, 1087, 1095, 0,
+ 1096, 1101, 1100, 1098, 1088, 1089, 1108, 1085, 1099, 1088,
+
+ 1089, 1099, 1091, 1108, 1096, 1092, 1093, 1095, 1098, 1101,
+ 1104, 1093, 1102, 1097, 1105, 1107, 1099, 1100, 1101, 1100,
+ 1098, 0, 1109, 1108, 1111, 1099, 1113, 1102, 1099, 1107,
+ 1116, 1114, 1104, 1109, 1117, 0, 1105, 1104, 1115, 1102,
+ 1115, 1105, 1107, 1114, 1118, 1111, 1119, 1113, 1116, 1109,
+ 0, 1111, 1120, 1113, 1121, 1123, 1122, 1116, 1114, 1124,
+ 1120, 1117, 1118, 1129, 1134, 1115, 1125, 0, 1130, 1123,
+ 1128, 1118, 1131, 1119, 1133, 1132, 1138, 1121, 1122, 1120,
+ 1138, 1121, 1123, 1122, 1132, 1125, 1124, 1131, 1128, 1137,
+ 1129, 1134, 1139, 1125, 1130, 1130, 1133, 1128, 1136, 1131,
+
+ 1136, 1133, 1132, 1138, 1139, 1140, 1141, 1142, 1143, 0,
+ 1145, 1137, 0, 1144, 1156, 1141, 1137, 1146, 1142, 1139,
+ 1147, 1147, 1145, 1148, 0, 1136, 1150, 1140, 1153, 1150,
+ 1151, 1148, 1140, 1141, 1142, 1143, 1144, 1145, 1151, 1146,
+ 1144, 1156, 1152, 1153, 1146, 1154, 1157, 1147, 1152, 1158,
+ 1148, 1154, 1159, 1150, 1160, 1153, 1161, 1151, 1162, 1163,
+ 1164, 1165, 1166, 1158, 1168, 1159, 1169, 1167, 1160, 1152,
+ 1157, 1173, 1154, 1157, 1164, 1167, 1158, 1172, 1175, 1159,
+ 1177, 1160, 1161, 1161, 1170, 1162, 1163, 1164, 1165, 1166,
+ 1178, 1168, 1170, 1169, 1167, 1174, 1180, 1176, 1173, 1172,
+
+ 1179, 1177, 1181, 1174, 1172, 1175, 1176, 1177, 1182, 1184,
+ 1181, 1170, 1185, 1185, 1178, 1179, 1187, 1178, 1186, 1189,
+ 0, 0, 1174, 1180, 1176, 1188, 1179, 1179, 1190, 1181,
+ 1190, 1192, 1193, 1191, 1187, 1182, 1184, 1192, 1194, 1185,
+ 1188, 1189, 1179, 1187, 1186, 1186, 1189, 1191, 1195, 1196,
+ 1194, 1197, 1188, 1198, 1193, 1190, 1199, 0, 1192, 1193,
+ 1191, 1201, 1203, 1205, 1197, 1194, 1195, 1196, 1201, 1204,
+ 1208, 1209, 0, 1206, 0, 1195, 1196, 1211, 1197, 1199,
+ 1203, 1206, 1208, 1199, 1198, 1212, 1209, 1214, 1201, 1203,
+ 1216, 0, 1217, 1224, 1205, 1204, 1204, 1208, 1209, 1206,
+
+ 1206, 1211, 1213, 1219, 1211, 1217, 1218, 1212, 1206, 1213,
+ 1220, 1225, 1212, 1221, 1214, 1222, 1224, 1216, 1219, 1217,
+ 1224, 1221, 1226, 1220, 1227, 1229, 1232, 1228, 1231, 1213,
+ 1219, 1236, 1218, 1218, 1228, 1225, 1230, 1220, 1225, 1233,
+ 1221, 1222, 1222, 1230, 1237, 1235, 1227, 1242, 1229, 1226,
+ 1231, 1227, 1229, 1236, 1228, 1231, 1235, 1232, 1236, 1238,
+ 1233, 1245, 1239, 1230, 1249, 1251, 1233, 1253, 1248, 0,
+ 1254, 0, 1235, 1242, 1242, 1237, 1256, 1257, 1238, 1259,
+ 1262, 1256, 1255, 1263, 1266, 1267, 1238, 1239, 1245, 1239,
+ 1248, 1249, 1251, 1255, 1265, 1248, 1254, 1254, 1253, 1257,
+
+ 1264, 1268, 1262, 1256, 1257, 1269, 1259, 1262, 1263, 1255,
+ 1263, 1266, 1267, 1264, 1270, 1271, 1265, 1274, 1272, 1273,
+ 1269, 1265, 1275, 1270, 1276, 1277, 1280, 1264, 1268, 1275,
+ 1271, 1279, 1269, 1272, 1273, 1278, 1278, 1284, 1279, 1274,
+ 1280, 1270, 1271, 1277, 1274, 1272, 1273, 1281, 1282, 1275,
+ 1281, 1276, 1277, 1280, 1283, 1285, 1286, 1287, 1279, 1284,
+ 1290, 1282, 1278, 1283, 1284, 1292, 1293, 1290, 1294, 1291,
+ 1292, 1296, 1295, 1293, 1281, 1282, 1297, 1285, 1291, 1295,
+ 1296, 1283, 1285, 1286, 1287, 1299, 1294, 1290, 1300, 1301,
+ 0, 1302, 1292, 1293, 1304, 1294, 1291, 1306, 1296, 1295,
+
+ 1302, 1301, 1297, 1297, 1303, 1304, 1300, 1307, 1309, 1305,
+ 1308, 0, 1299, 1303, 1310, 1300, 1301, 1305, 1302, 1308,
+ 1309, 1304, 1310, 1311, 1306, 1313, 0, 1316, 1318, 1317,
+ 1311, 1303, 1319, 1313, 1316, 1309, 1305, 1308, 1307, 1320,
+ 1322, 1310, 1324, 1323, 1319, 1325, 0, 1329, 1320, 0,
+ 1311, 1323, 1313, 1317, 1316, 1318, 1317, 1330, 1331, 1319,
+ 1332, 1333, 1330, 1334, 1338, 1337, 1320, 1322, 1340, 1324,
+ 1323, 1334, 1325, 1329, 1329, 1335, 1331, 1337, 1339, 1341,
+ 1340, 1342, 1332, 1333, 1330, 1331, 1338, 1332, 1333, 1343,
+ 1334, 1338, 1337, 0, 1335, 1340, 1344, 1345, 1348, 1349,
+
+ 1339, 1351, 1335, 1350, 1352, 1339, 1341, 0, 1342, 0,
+ 1357, 1354, 1355, 1353, 0, 0, 1352, 1361, 1359, 1351,
+ 1343, 1358, 1349, 1344, 1345, 1350, 1349, 1355, 1351, 1348,
+ 1350, 1352, 1353, 1354, 1357, 1358, 1359, 1357, 1354, 1355,
+ 1353, 1360, 1362, 1361, 1361, 1359, 1364, 1366, 1358, 1365,
+ 1367, 1369, 1368, 1370, 1364, 1366, 1365, 1373, 1376, 1360,
+ 1362, 1371, 0, 1380, 1379, 1382, 1383, 1374, 1360, 1362,
+ 1368, 1379, 1370, 1364, 1366, 1373, 1365, 1367, 1369, 1368,
+ 1370, 1374, 1381, 1371, 1373, 1376, 1384, 1385, 1371, 1380,
+ 1380, 1379, 1382, 1383, 1374, 1386, 1385, 1387, 1388, 1392,
+
+ 1389, 0, 1395, 1395, 1398, 0, 1381, 1397, 1386, 1381,
+ 1396, 1398, 1395, 1384, 1385, 1400, 1397, 1402, 1406, 0,
+ 1392, 0, 1386, 1389, 1404, 1388, 1392, 1389, 1387, 1395,
+ 1395, 1398, 1396, 1399, 1397, 1401, 1402, 1396, 1405, 1403,
+ 1406, 1407, 1400, 1401, 1402, 1406, 1399, 1403, 1407, 1405,
+ 1404, 1404, 1408, 1408, 1409, 0, 1410, 1411, 1413, 1416,
+ 1399, 1415, 1401, 1410, 1411, 1405, 1403, 1417, 1407, 1418,
+ 1415, 1420, 1409, 1422, 1428, 1422, 1421, 1426, 1435, 1408,
+ 1427, 1409, 1413, 1410, 1411, 1413, 1416, 1418, 1415, 1420,
+ 1417, 1421, 1428, 1430, 1417, 1431, 1418, 1433, 1420, 1426,
+
+ 1422, 1428, 1432, 1421, 1426, 1434, 1427, 1427, 1432, 1435,
+ 1436, 1437, 1436, 1431, 1434, 1430, 1440, 1439, 1441, 1433,
+ 1430, 1442, 1431, 1443, 1433, 1439, 0, 1444, 1440, 1432,
+ 1445, 1446, 1434, 1448, 1443, 1444, 1450, 1436, 1437, 1442,
+ 1447, 1447, 1451, 1440, 1439, 1441, 1453, 1449, 1442, 1445,
+ 1443, 1455, 1454, 1446, 1444, 1449, 1455, 1445, 1446, 1454,
+ 1448, 1456, 1457, 1450, 1451, 1459, 1461, 1447, 1458, 1451,
+ 1460, 1462, 1463, 1453, 1449, 1464, 1458, 1460, 1455, 1454,
+ 1459, 1465, 1467, 1464, 1469, 0, 1462, 0, 1456, 1457,
+ 1466, 1466, 1459, 1461, 1463, 1458, 1470, 1460, 1462, 1463,
+
+ 1466, 1472, 1464, 1473, 1470, 1474, 1475, 1476, 0, 1467,
+ 1479, 1469, 1465, 1477, 1472, 1481, 1483, 1466, 1466, 1487,
+ 1488, 0, 1484, 1470, 0, 1473, 1489, 1492, 1472, 1491,
+ 1473, 0, 1474, 1475, 1476, 1477, 1492, 1479, 1487, 1493,
+ 1477, 1481, 1481, 1483, 1484, 1500, 1487, 1488, 1489, 1484,
+ 1493, 1491, 1496, 1489, 1492, 1495, 1491, 1494, 1494, 1505,
+ 1501, 1495, 1499, 1509, 1510, 1507, 1493, 1494, 1512, 1499,
+ 1513, 1514, 1500, 1514, 1496, 0, 1510, 1512, 1520, 1496,
+ 1517, 1515, 1495, 1501, 1494, 1494, 1505, 1501, 1507, 1499,
+ 1509, 1510, 1507, 1515, 1516, 1512, 1518, 1513, 1514, 1522,
+
+ 1516, 1519, 1517, 1524, 1526, 1520, 1527, 1517, 1515, 1519,
+ 1529, 1530, 1531, 1533, 0, 0, 1534, 1532, 1518, 1526,
+ 0, 1516, 1533, 1518, 1530, 1532, 1522, 1534, 1519, 1538,
+ 1524, 1526, 1527, 1527, 1531, 1539, 1540, 1541, 1530, 1531,
+ 1533, 1529, 1539, 1534, 1532, 1541, 1542, 1543, 1545, 1544,
+ 1540, 1544, 1538, 1546, 1547, 1542, 1538, 1548, 1543, 1551,
+ 1545, 1549, 1539, 1540, 1541, 1550, 1552, 1550, 1557, 1553,
+ 1558, 1551, 1547, 1542, 1543, 1545, 1544, 1555, 1559, 1548,
+ 1546, 1547, 1553, 1549, 1548, 1556, 1551, 1561, 1549, 1555,
+ 1562, 1559, 1550, 1556, 1560, 1561, 1553, 1552, 1563, 1557,
+
+ 1567, 1558, 1564, 1562, 1555, 1559, 1563, 1566, 1560, 1565,
+ 1568, 1569, 1556, 1570, 1561, 1566, 1564, 1562, 1575, 1569,
+ 1571, 1560, 1567, 1565, 1572, 1563, 1573, 1567, 1576, 1564,
+ 1577, 0, 1568, 1574, 1566, 1578, 1565, 1568, 1569, 1570,
+ 1570, 1574, 1571, 1578, 1579, 1580, 1572, 1571, 1573, 1575,
+ 1577, 1572, 1579, 1573, 1582, 1576, 1581, 1577, 1584, 1585,
+ 1574, 1586, 1578, 1587, 1581, 1588, 1590, 1585, 1582, 1586,
+ 1591, 1579, 1589, 1593, 1590, 1592, 1580, 1587, 1594, 1595,
+ 1584, 1582, 1596, 1581, 1597, 1584, 1585, 1595, 1586, 0,
+ 1587, 1588, 1588, 1590, 1589, 1593, 1591, 1591, 1594, 1589,
+
+ 1593, 1592, 1592, 1598, 1597, 1594, 1595, 1599, 1601, 1596,
+ 1600, 1597, 0, 1605, 1603, 1599, 1601, 1604, 1606, 0,
+ 1607, 1605, 1610, 1598, 1611, 1608, 1606, 1613, 1614, 0,
+ 1598, 0, 1600, 1608, 1599, 1601, 1603, 1600, 1612, 1604,
+ 1605, 1603, 1609, 1615, 1604, 1606, 1607, 1607, 1610, 1610,
+ 1609, 1611, 1608, 1617, 1613, 1614, 1620, 1623, 1612, 1621,
+ 1622, 1624, 0, 1615, 0, 1612, 0, 1621, 1622, 1609,
+ 1615, 0, 0, 0, 0, 1617, 0, 0, 1620, 0,
+ 1617, 0, 0, 1620, 1623, 0, 1621, 1622, 1624, 1628,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1629, 1629, 1629, 1629,
+
+ 1629, 1629, 1629, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1632, 1632, 1632,
+ 1632, 1632, 1632, 1632, 1634, 1634, 0, 1634, 1634, 1634,
+ 1634, 1635, 1635, 0, 0, 0, 1635, 1635, 1636, 1636,
+ 0, 0, 1636, 0, 1636, 1637, 0, 0, 0, 0,
+ 0, 1637, 1638, 1638, 0, 0, 0, 1638, 1638, 1639,
+ 0, 0, 0, 0, 0, 1639, 1640, 1640, 0, 1640,
+ 1640, 1640, 1640, 1641, 1641, 0, 1641, 1641, 1641, 1641,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627,
+ 1627, 1627, 1627, 1627, 1627, 1627
} ;
static yy_state_type yy_last_accepting_state;
@@ -2208,7 +2218,7 @@ static void config_end_include(void)
#define YY_NO_INPUT 1
#endif
-#line 2210 "<stdout>"
+#line 2220 "<stdout>"
#define INITIAL 0
#define quotedstring 1
@@ -2395,7 +2405,7 @@ YY_DECL
#line 197 "util/configlexer.lex"
-#line 2397 "<stdout>"
+#line 2407 "<stdout>"
if ( !(yy_init) )
{
@@ -2454,13 +2464,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 >= 1611 )
+ if ( yy_current_state >= 1628 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 4656 );
+ while ( yy_base[yy_current_state] != 4681 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -2725,515 +2735,525 @@ YY_RULE_SETUP
case 48:
YY_RULE_SETUP
#line 248 "util/configlexer.lex"
-{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
+{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 249 "util/configlexer.lex"
-{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
+{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 250 "util/configlexer.lex"
-{ YDVAR(1, VAR_DELAY_CLOSE) }
+{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 251 "util/configlexer.lex"
-{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
+{ YDVAR(1, VAR_DELAY_CLOSE) }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 252 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
+{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 253 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
+{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 254 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_GLUE) }
+{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 255 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
+{ YDVAR(1, VAR_HARDEN_GLUE) }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 256 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
+{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 257 "util/configlexer.lex"
-{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
+{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 258 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
+{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 259 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
+{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 260 "util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
+{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 261 "util/configlexer.lex"
-{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
+{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 262 "util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH_KEY) }
+{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 263 "util/configlexer.lex"
-{ YDVAR(1, VAR_PREFETCH) }
+{ YDVAR(1, VAR_PREFETCH_KEY) }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 264 "util/configlexer.lex"
-{ YDVAR(0, VAR_STUB_ZONE) }
+{ YDVAR(1, VAR_PREFETCH) }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 265 "util/configlexer.lex"
-{ YDVAR(1, VAR_NAME) }
+{ YDVAR(0, VAR_STUB_ZONE) }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 266 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_ADDR) }
+{ YDVAR(1, VAR_NAME) }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 267 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_HOST) }
+{ YDVAR(1, VAR_STUB_ADDR) }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 268 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_PRIME) }
+{ YDVAR(1, VAR_STUB_HOST) }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 269 "util/configlexer.lex"
-{ YDVAR(1, VAR_STUB_FIRST) }
+{ YDVAR(1, VAR_STUB_PRIME) }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 270 "util/configlexer.lex"
-{ YDVAR(0, VAR_FORWARD_ZONE) }
+{ YDVAR(1, VAR_STUB_FIRST) }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 271 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_ADDR) }
+{ YDVAR(0, VAR_FORWARD_ZONE) }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 272 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_HOST) }
+{ YDVAR(1, VAR_FORWARD_ADDR) }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 273 "util/configlexer.lex"
-{ YDVAR(1, VAR_FORWARD_FIRST) }
+{ YDVAR(1, VAR_FORWARD_HOST) }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 274 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
+{ YDVAR(1, VAR_FORWARD_FIRST) }
YY_BREAK
case 75:
YY_RULE_SETUP
#line 275 "util/configlexer.lex"
-{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
YY_BREAK
case 76:
YY_RULE_SETUP
#line 276 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL) }
+{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 277 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_IDENTITY) }
+{ YDVAR(2, VAR_ACCESS_CONTROL) }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 278 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_VERSION) }
+{ YDVAR(1, VAR_HIDE_IDENTITY) }
YY_BREAK
case 79:
YY_RULE_SETUP
#line 279 "util/configlexer.lex"
-{ YDVAR(1, VAR_IDENTITY) }
+{ YDVAR(1, VAR_HIDE_VERSION) }
YY_BREAK
case 80:
YY_RULE_SETUP
#line 280 "util/configlexer.lex"
-{ YDVAR(1, VAR_VERSION) }
+{ YDVAR(1, VAR_IDENTITY) }
YY_BREAK
case 81:
YY_RULE_SETUP
#line 281 "util/configlexer.lex"
-{ YDVAR(1, VAR_MODULE_CONF) }
+{ YDVAR(1, VAR_VERSION) }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 282 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR) }
+{ YDVAR(1, VAR_MODULE_CONF) }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 283 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR) }
YY_BREAK
case 84:
YY_RULE_SETUP
#line 284 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 285 "util/configlexer.lex"
-{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 286 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
+{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 287 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR) }
+{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
YY_BREAK
case 88:
YY_RULE_SETUP
#line 288 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR) }
YY_BREAK
case 89:
YY_RULE_SETUP
#line 289 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
+{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
YY_BREAK
case 90:
YY_RULE_SETUP
#line 290 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
YY_BREAK
case 91:
YY_RULE_SETUP
#line 291 "util/configlexer.lex"
-{ YDVAR(1, VAR_BOGUS_TTL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 292 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
+{ YDVAR(1, VAR_BOGUS_TTL) }
YY_BREAK
case 93:
YY_RULE_SETUP
#line 293 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
+{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
YY_BREAK
case 94:
YY_RULE_SETUP
#line 294 "util/configlexer.lex"
-{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
+{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 295 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
+{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 296 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
+{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 297 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
+{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 298 "util/configlexer.lex"
-{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
+{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
YY_BREAK
case 99:
YY_RULE_SETUP
#line 299 "util/configlexer.lex"
-{
- YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
+{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 301 "util/configlexer.lex"
-{ YDVAR(1, VAR_ADD_HOLDDOWN) }
+#line 300 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 302 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEL_HOLDDOWN) }
+{ YDVAR(1, VAR_ADD_HOLDDOWN) }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 303 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEEP_MISSING) }
+{ YDVAR(1, VAR_DEL_HOLDDOWN) }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 304 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSLOG) }
+{ YDVAR(1, VAR_KEEP_MISSING) }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 305 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_USE_SYSLOG) }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 306 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 307 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 308 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 309 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 310 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
YY_BREAK
case 110:
YY_RULE_SETUP
#line 311 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
YY_BREAK
case 111:
YY_RULE_SETUP
#line 312 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
YY_BREAK
case 112:
YY_RULE_SETUP
#line 313 "util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
YY_BREAK
case 113:
YY_RULE_SETUP
#line 314 "util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
YY_BREAK
case 114:
YY_RULE_SETUP
#line 315 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 316 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 317 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 318 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
YY_BREAK
case 118:
YY_RULE_SETUP
#line 319 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
YY_BREAK
case 119:
YY_RULE_SETUP
#line 320 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
YY_BREAK
case 120:
YY_RULE_SETUP
#line 321 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
YY_BREAK
case 121:
YY_RULE_SETUP
#line 322 "util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 323 "util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
YY_BREAK
case 123:
YY_RULE_SETUP
#line 324 "util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 325 "util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(0, VAR_PYTHON) }
YY_BREAK
case 125:
YY_RULE_SETUP
#line 326 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
YY_BREAK
case 126:
YY_RULE_SETUP
#line 327 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
YY_BREAK
case 127:
YY_RULE_SETUP
#line 328 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 329 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 330 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 331 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 332 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(0, VAR_DNSTAP) }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 333 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
YY_BREAK
case 133:
YY_RULE_SETUP
#line 334 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
YY_BREAK
case 134:
YY_RULE_SETUP
#line 335 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 336 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 337 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
YY_BREAK
case 137:
YY_RULE_SETUP
+#line 338 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
+ YY_BREAK
+case 138:
+YY_RULE_SETUP
#line 339 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
#line 341 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
#line 343 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
YY_BREAK
-case 140:
+case 141:
YY_RULE_SETUP
#line 345 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
YY_BREAK
-case 141:
+case 142:
YY_RULE_SETUP
#line 347 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
YY_BREAK
-case 142:
-/* rule 142 can match eol */
+case 143:
YY_RULE_SETUP
#line 349 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+ YY_BREAK
+case 144:
+/* rule 144 can match eol */
+YY_RULE_SETUP
+#line 351 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++; }
YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
-case 143:
+case 145:
YY_RULE_SETUP
-#line 352 "util/configlexer.lex"
+#line 354 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
-#line 353 "util/configlexer.lex"
+#line 355 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 144:
+case 146:
YY_RULE_SETUP
-#line 358 "util/configlexer.lex"
+#line 360 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 145:
-/* rule 145 can match eol */
+case 147:
+/* rule 147 can match eol */
YY_RULE_SETUP
-#line 359 "util/configlexer.lex"
+#line 361 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \"");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 146:
+case 148:
YY_RULE_SETUP
-#line 361 "util/configlexer.lex"
+#line 363 "util/configlexer.lex"
{
LEXOUT(("QE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3246,34 +3266,34 @@ YY_RULE_SETUP
}
YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
-case 147:
+case 149:
YY_RULE_SETUP
-#line 373 "util/configlexer.lex"
+#line 375 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
YY_BREAK
case YY_STATE_EOF(singlequotedstr):
-#line 374 "util/configlexer.lex"
+#line 376 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 148:
+case 150:
YY_RULE_SETUP
-#line 379 "util/configlexer.lex"
+#line 381 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 149:
-/* rule 149 can match eol */
+case 151:
+/* rule 151 can match eol */
YY_RULE_SETUP
-#line 380 "util/configlexer.lex"
+#line 382 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 150:
+case 152:
YY_RULE_SETUP
-#line 382 "util/configlexer.lex"
+#line 384 "util/configlexer.lex"
{
LEXOUT(("SQE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3286,38 +3306,38 @@ YY_RULE_SETUP
}
YY_BREAK
/* include: directive */
-case 151:
+case 153:
YY_RULE_SETUP
-#line 394 "util/configlexer.lex"
+#line 396 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
-#line 396 "util/configlexer.lex"
+#line 398 "util/configlexer.lex"
{
yyerror("EOF inside include directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 152:
+case 154:
YY_RULE_SETUP
-#line 400 "util/configlexer.lex"
+#line 402 "util/configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
-case 153:
-/* rule 153 can match eol */
+case 155:
+/* rule 155 can match eol */
YY_RULE_SETUP
-#line 401 "util/configlexer.lex"
+#line 403 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
-case 154:
+case 156:
YY_RULE_SETUP
-#line 402 "util/configlexer.lex"
+#line 404 "util/configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
YY_BREAK
-case 155:
+case 157:
YY_RULE_SETUP
-#line 403 "util/configlexer.lex"
+#line 405 "util/configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext);
@@ -3325,27 +3345,27 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
-#line 408 "util/configlexer.lex"
+#line 410 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 156:
+case 158:
YY_RULE_SETUP
-#line 412 "util/configlexer.lex"
+#line 414 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 157:
-/* rule 157 can match eol */
+case 159:
+/* rule 159 can match eol */
YY_RULE_SETUP
-#line 413 "util/configlexer.lex"
+#line 415 "util/configlexer.lex"
{ yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev); }
YY_BREAK
-case 158:
+case 160:
YY_RULE_SETUP
-#line 415 "util/configlexer.lex"
+#line 417 "util/configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
@@ -3355,7 +3375,7 @@ YY_RULE_SETUP
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
-#line 421 "util/configlexer.lex"
+#line 423 "util/configlexer.lex"
{
LEXOUT(("LEXEOF "));
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
@@ -3367,33 +3387,33 @@ case YY_STATE_EOF(val):
}
}
YY_BREAK
-case 159:
+case 161:
YY_RULE_SETUP
-#line 432 "util/configlexer.lex"
+#line 434 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
if(--num_args == 0) { BEGIN(INITIAL); }
yylval.str = strdup(yytext); return STRING_ARG; }
YY_BREAK
-case 160:
+case 162:
YY_RULE_SETUP
-#line 436 "util/configlexer.lex"
+#line 438 "util/configlexer.lex"
{
ub_c_error_msg("unknown keyword '%s'", yytext);
}
YY_BREAK
-case 161:
+case 163:
YY_RULE_SETUP
-#line 440 "util/configlexer.lex"
+#line 442 "util/configlexer.lex"
{
ub_c_error_msg("stray '%s'", yytext);
}
YY_BREAK
-case 162:
+case 164:
YY_RULE_SETUP
-#line 444 "util/configlexer.lex"
+#line 446 "util/configlexer.lex"
ECHO;
YY_BREAK
-#line 3395 "<stdout>"
+#line 3415 "<stdout>"
case YY_END_OF_BUFFER:
{
@@ -3683,7 +3703,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 >= 1611 )
+ if ( yy_current_state >= 1628 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3711,11 +3731,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 >= 1611 )
+ if ( yy_current_state >= 1628 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1610);
+ yy_is_jam = (yy_current_state == 1627);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -4348,7 +4368,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 444 "util/configlexer.lex"
+#line 446 "util/configlexer.lex"
diff --git a/util/configlexer.lex b/util/configlexer.lex
index eea1b858400c..dbde8113c491 100644
--- a/util/configlexer.lex
+++ b/util/configlexer.lex
@@ -245,6 +245,7 @@ infra-lame-ttl{COLON} { YDVAR(1, VAR_INFRA_LAME_TTL) }
infra-cache-slabs{COLON} { YDVAR(1, VAR_INFRA_CACHE_SLABS) }
infra-cache-numhosts{COLON} { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
infra-cache-lame-size{COLON} { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
+infra-cache-min-rtt{COLON} { YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
num-queries-per-thread{COLON} { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
jostle-timeout{COLON} { YDVAR(1, VAR_JOSTLE_TIMEOUT) }
delay-close{COLON} { YDVAR(1, VAR_DELAY_CLOSE) }
diff --git a/util/configparser.c b/util/configparser.c
index 6aa5646fad57..0d7328f873a9 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -220,59 +220,61 @@ extern int yydebug;
VAR_SERVER_CERT_FILE = 348,
VAR_CONTROL_KEY_FILE = 349,
VAR_CONTROL_CERT_FILE = 350,
- VAR_EXTENDED_STATISTICS = 351,
- VAR_LOCAL_DATA_PTR = 352,
- VAR_JOSTLE_TIMEOUT = 353,
- VAR_STUB_PRIME = 354,
- VAR_UNWANTED_REPLY_THRESHOLD = 355,
- VAR_LOG_TIME_ASCII = 356,
- VAR_DOMAIN_INSECURE = 357,
- VAR_PYTHON = 358,
- VAR_PYTHON_SCRIPT = 359,
- VAR_VAL_SIG_SKEW_MIN = 360,
- VAR_VAL_SIG_SKEW_MAX = 361,
- VAR_CACHE_MIN_TTL = 362,
- VAR_VAL_LOG_LEVEL = 363,
- VAR_AUTO_TRUST_ANCHOR_FILE = 364,
- VAR_KEEP_MISSING = 365,
- VAR_ADD_HOLDDOWN = 366,
- VAR_DEL_HOLDDOWN = 367,
- VAR_SO_RCVBUF = 368,
- VAR_EDNS_BUFFER_SIZE = 369,
- VAR_PREFETCH = 370,
- VAR_PREFETCH_KEY = 371,
- VAR_SO_SNDBUF = 372,
- VAR_SO_REUSEPORT = 373,
- VAR_HARDEN_BELOW_NXDOMAIN = 374,
- VAR_IGNORE_CD_FLAG = 375,
- VAR_LOG_QUERIES = 376,
- VAR_TCP_UPSTREAM = 377,
- VAR_SSL_UPSTREAM = 378,
- VAR_SSL_SERVICE_KEY = 379,
- VAR_SSL_SERVICE_PEM = 380,
- VAR_SSL_PORT = 381,
- VAR_FORWARD_FIRST = 382,
- VAR_STUB_FIRST = 383,
- VAR_MINIMAL_RESPONSES = 384,
- VAR_RRSET_ROUNDROBIN = 385,
- VAR_MAX_UDP_SIZE = 386,
- VAR_DELAY_CLOSE = 387,
- VAR_UNBLOCK_LAN_ZONES = 388,
- VAR_DNS64_PREFIX = 389,
- VAR_DNS64_SYNTHALL = 390,
- VAR_DNSTAP = 391,
- VAR_DNSTAP_ENABLE = 392,
- VAR_DNSTAP_SOCKET_PATH = 393,
- VAR_DNSTAP_SEND_IDENTITY = 394,
- VAR_DNSTAP_SEND_VERSION = 395,
- VAR_DNSTAP_IDENTITY = 396,
- VAR_DNSTAP_VERSION = 397,
- VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 398,
- VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 399,
- VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 400,
- VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 401,
- VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 402,
- VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 403
+ VAR_CONTROL_USE_CERT = 351,
+ VAR_EXTENDED_STATISTICS = 352,
+ VAR_LOCAL_DATA_PTR = 353,
+ VAR_JOSTLE_TIMEOUT = 354,
+ VAR_STUB_PRIME = 355,
+ VAR_UNWANTED_REPLY_THRESHOLD = 356,
+ VAR_LOG_TIME_ASCII = 357,
+ VAR_DOMAIN_INSECURE = 358,
+ VAR_PYTHON = 359,
+ VAR_PYTHON_SCRIPT = 360,
+ VAR_VAL_SIG_SKEW_MIN = 361,
+ VAR_VAL_SIG_SKEW_MAX = 362,
+ VAR_CACHE_MIN_TTL = 363,
+ VAR_VAL_LOG_LEVEL = 364,
+ VAR_AUTO_TRUST_ANCHOR_FILE = 365,
+ VAR_KEEP_MISSING = 366,
+ VAR_ADD_HOLDDOWN = 367,
+ VAR_DEL_HOLDDOWN = 368,
+ VAR_SO_RCVBUF = 369,
+ VAR_EDNS_BUFFER_SIZE = 370,
+ VAR_PREFETCH = 371,
+ VAR_PREFETCH_KEY = 372,
+ VAR_SO_SNDBUF = 373,
+ VAR_SO_REUSEPORT = 374,
+ VAR_HARDEN_BELOW_NXDOMAIN = 375,
+ VAR_IGNORE_CD_FLAG = 376,
+ VAR_LOG_QUERIES = 377,
+ VAR_TCP_UPSTREAM = 378,
+ VAR_SSL_UPSTREAM = 379,
+ VAR_SSL_SERVICE_KEY = 380,
+ VAR_SSL_SERVICE_PEM = 381,
+ VAR_SSL_PORT = 382,
+ VAR_FORWARD_FIRST = 383,
+ VAR_STUB_FIRST = 384,
+ VAR_MINIMAL_RESPONSES = 385,
+ VAR_RRSET_ROUNDROBIN = 386,
+ VAR_MAX_UDP_SIZE = 387,
+ VAR_DELAY_CLOSE = 388,
+ VAR_UNBLOCK_LAN_ZONES = 389,
+ VAR_INFRA_CACHE_MIN_RTT = 390,
+ VAR_DNS64_PREFIX = 391,
+ VAR_DNS64_SYNTHALL = 392,
+ VAR_DNSTAP = 393,
+ VAR_DNSTAP_ENABLE = 394,
+ VAR_DNSTAP_SOCKET_PATH = 395,
+ VAR_DNSTAP_SEND_IDENTITY = 396,
+ VAR_DNSTAP_SEND_VERSION = 397,
+ VAR_DNSTAP_IDENTITY = 398,
+ VAR_DNSTAP_VERSION = 399,
+ VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400,
+ VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401,
+ VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402,
+ VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403,
+ VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404,
+ VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405
};
#endif
/* Tokens. */
@@ -369,59 +371,61 @@ extern int yydebug;
#define VAR_SERVER_CERT_FILE 348
#define VAR_CONTROL_KEY_FILE 349
#define VAR_CONTROL_CERT_FILE 350
-#define VAR_EXTENDED_STATISTICS 351
-#define VAR_LOCAL_DATA_PTR 352
-#define VAR_JOSTLE_TIMEOUT 353
-#define VAR_STUB_PRIME 354
-#define VAR_UNWANTED_REPLY_THRESHOLD 355
-#define VAR_LOG_TIME_ASCII 356
-#define VAR_DOMAIN_INSECURE 357
-#define VAR_PYTHON 358
-#define VAR_PYTHON_SCRIPT 359
-#define VAR_VAL_SIG_SKEW_MIN 360
-#define VAR_VAL_SIG_SKEW_MAX 361
-#define VAR_CACHE_MIN_TTL 362
-#define VAR_VAL_LOG_LEVEL 363
-#define VAR_AUTO_TRUST_ANCHOR_FILE 364
-#define VAR_KEEP_MISSING 365
-#define VAR_ADD_HOLDDOWN 366
-#define VAR_DEL_HOLDDOWN 367
-#define VAR_SO_RCVBUF 368
-#define VAR_EDNS_BUFFER_SIZE 369
-#define VAR_PREFETCH 370
-#define VAR_PREFETCH_KEY 371
-#define VAR_SO_SNDBUF 372
-#define VAR_SO_REUSEPORT 373
-#define VAR_HARDEN_BELOW_NXDOMAIN 374
-#define VAR_IGNORE_CD_FLAG 375
-#define VAR_LOG_QUERIES 376
-#define VAR_TCP_UPSTREAM 377
-#define VAR_SSL_UPSTREAM 378
-#define VAR_SSL_SERVICE_KEY 379
-#define VAR_SSL_SERVICE_PEM 380
-#define VAR_SSL_PORT 381
-#define VAR_FORWARD_FIRST 382
-#define VAR_STUB_FIRST 383
-#define VAR_MINIMAL_RESPONSES 384
-#define VAR_RRSET_ROUNDROBIN 385
-#define VAR_MAX_UDP_SIZE 386
-#define VAR_DELAY_CLOSE 387
-#define VAR_UNBLOCK_LAN_ZONES 388
-#define VAR_DNS64_PREFIX 389
-#define VAR_DNS64_SYNTHALL 390
-#define VAR_DNSTAP 391
-#define VAR_DNSTAP_ENABLE 392
-#define VAR_DNSTAP_SOCKET_PATH 393
-#define VAR_DNSTAP_SEND_IDENTITY 394
-#define VAR_DNSTAP_SEND_VERSION 395
-#define VAR_DNSTAP_IDENTITY 396
-#define VAR_DNSTAP_VERSION 397
-#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 398
-#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 399
-#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 400
-#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 401
-#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 402
-#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 403
+#define VAR_CONTROL_USE_CERT 351
+#define VAR_EXTENDED_STATISTICS 352
+#define VAR_LOCAL_DATA_PTR 353
+#define VAR_JOSTLE_TIMEOUT 354
+#define VAR_STUB_PRIME 355
+#define VAR_UNWANTED_REPLY_THRESHOLD 356
+#define VAR_LOG_TIME_ASCII 357
+#define VAR_DOMAIN_INSECURE 358
+#define VAR_PYTHON 359
+#define VAR_PYTHON_SCRIPT 360
+#define VAR_VAL_SIG_SKEW_MIN 361
+#define VAR_VAL_SIG_SKEW_MAX 362
+#define VAR_CACHE_MIN_TTL 363
+#define VAR_VAL_LOG_LEVEL 364
+#define VAR_AUTO_TRUST_ANCHOR_FILE 365
+#define VAR_KEEP_MISSING 366
+#define VAR_ADD_HOLDDOWN 367
+#define VAR_DEL_HOLDDOWN 368
+#define VAR_SO_RCVBUF 369
+#define VAR_EDNS_BUFFER_SIZE 370
+#define VAR_PREFETCH 371
+#define VAR_PREFETCH_KEY 372
+#define VAR_SO_SNDBUF 373
+#define VAR_SO_REUSEPORT 374
+#define VAR_HARDEN_BELOW_NXDOMAIN 375
+#define VAR_IGNORE_CD_FLAG 376
+#define VAR_LOG_QUERIES 377
+#define VAR_TCP_UPSTREAM 378
+#define VAR_SSL_UPSTREAM 379
+#define VAR_SSL_SERVICE_KEY 380
+#define VAR_SSL_SERVICE_PEM 381
+#define VAR_SSL_PORT 382
+#define VAR_FORWARD_FIRST 383
+#define VAR_STUB_FIRST 384
+#define VAR_MINIMAL_RESPONSES 385
+#define VAR_RRSET_ROUNDROBIN 386
+#define VAR_MAX_UDP_SIZE 387
+#define VAR_DELAY_CLOSE 388
+#define VAR_UNBLOCK_LAN_ZONES 389
+#define VAR_INFRA_CACHE_MIN_RTT 390
+#define VAR_DNS64_PREFIX 391
+#define VAR_DNS64_SYNTHALL 392
+#define VAR_DNSTAP 393
+#define VAR_DNSTAP_ENABLE 394
+#define VAR_DNSTAP_SOCKET_PATH 395
+#define VAR_DNSTAP_SEND_IDENTITY 396
+#define VAR_DNSTAP_SEND_VERSION 397
+#define VAR_DNSTAP_IDENTITY 398
+#define VAR_DNSTAP_VERSION 399
+#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 400
+#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 401
+#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 402
+#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 403
+#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 404
+#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 405
@@ -435,7 +439,7 @@ typedef union YYSTYPE
/* Line 387 of yacc.c */
-#line 439 "util/configparser.c"
+#line 443 "util/configparser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -463,7 +467,7 @@ int yyparse ();
/* Copy the second part of user declarations. */
/* Line 390 of yacc.c */
-#line 467 "util/configparser.c"
+#line 471 "util/configparser.c"
#ifdef short
# undef short
@@ -683,20 +687,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 276
+#define YYLAST 280
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 149
+#define YYNTOKENS 151
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 154
+#define YYNNTS 156
/* YYNRULES -- Number of rules. */
-#define YYNRULES 293
+#define YYNRULES 297
/* YYNRULES -- Number of states. */
-#define YYNSTATES 429
+#define YYNSTATES 435
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 403
+#define YYMAXUTOK 405
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -744,7 +748,7 @@ static const yytype_uint8 yytranslate[] =
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148
+ 145, 146, 147, 148, 149, 150
};
#if YYDEBUG
@@ -763,138 +767,139 @@ static const yytype_uint16 yyprhs[] =
165, 167, 169, 171, 173, 175, 177, 179, 181, 183,
185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
205, 207, 209, 211, 213, 215, 217, 219, 221, 223,
- 225, 227, 229, 231, 233, 235, 237, 239, 241, 244,
- 245, 247, 249, 251, 253, 255, 257, 260, 261, 263,
- 265, 267, 269, 272, 275, 278, 281, 284, 287, 290,
- 293, 296, 299, 302, 305, 308, 311, 314, 317, 320,
- 323, 326, 329, 332, 335, 338, 341, 344, 347, 350,
- 353, 356, 359, 362, 365, 368, 371, 374, 377, 380,
- 383, 386, 389, 392, 395, 398, 401, 404, 407, 410,
- 413, 416, 419, 422, 425, 428, 431, 434, 437, 440,
- 443, 446, 449, 452, 455, 458, 461, 464, 467, 470,
- 473, 476, 479, 482, 485, 488, 491, 494, 497, 500,
- 504, 507, 510, 513, 516, 519, 522, 525, 528, 531,
- 534, 537, 540, 543, 546, 549, 552, 555, 558, 562,
- 565, 568, 571, 574, 577, 580, 583, 586, 589, 592,
- 595, 598, 601, 604, 607, 610, 612, 615, 616, 618,
- 620, 622, 624, 626, 628, 630, 633, 636, 639, 642,
- 645, 648, 651, 653, 656, 657, 659, 661, 663, 665,
- 667, 669, 671, 673, 675, 677, 679, 681, 684, 687,
- 690, 693, 696, 699, 702, 705, 708, 711, 714, 717,
- 719, 722, 723, 725
+ 225, 227, 229, 231, 233, 235, 237, 239, 241, 243,
+ 246, 247, 249, 251, 253, 255, 257, 259, 262, 263,
+ 265, 267, 269, 271, 274, 277, 280, 283, 286, 289,
+ 292, 295, 298, 301, 304, 307, 310, 313, 316, 319,
+ 322, 325, 328, 331, 334, 337, 340, 343, 346, 349,
+ 352, 355, 358, 361, 364, 367, 370, 373, 376, 379,
+ 382, 385, 388, 391, 394, 397, 400, 403, 406, 409,
+ 412, 415, 418, 421, 424, 427, 430, 433, 436, 439,
+ 442, 445, 448, 451, 454, 457, 460, 463, 466, 469,
+ 472, 475, 478, 481, 484, 487, 490, 493, 496, 499,
+ 502, 505, 509, 512, 515, 518, 521, 524, 527, 530,
+ 533, 536, 539, 542, 545, 548, 551, 554, 557, 560,
+ 563, 567, 570, 573, 576, 579, 582, 585, 588, 591,
+ 594, 597, 600, 603, 606, 609, 612, 615, 617, 620,
+ 621, 623, 625, 627, 629, 631, 633, 635, 637, 640,
+ 643, 646, 649, 652, 655, 658, 661, 663, 666, 667,
+ 669, 671, 673, 675, 677, 679, 681, 683, 685, 687,
+ 689, 691, 694, 697, 700, 703, 706, 709, 712, 715,
+ 718, 721, 724, 727, 729, 732, 733, 735
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 150, 0, -1, -1, 150, 151, -1, 152, 153, -1,
- 155, 156, -1, 158, 159, -1, 299, 300, -1, 274,
- 275, -1, 284, 285, -1, 11, -1, 153, 154, -1,
- -1, 161, -1, 162, -1, 166, -1, 169, -1, 175,
- -1, 176, -1, 177, -1, 178, -1, 167, -1, 188,
- -1, 189, -1, 190, -1, 191, -1, 192, -1, 210,
- -1, 211, -1, 212, -1, 216, -1, 217, -1, 172,
- -1, 218, -1, 219, -1, 222, -1, 220, -1, 221,
- -1, 223, -1, 224, -1, 225, -1, 236, -1, 201,
- -1, 202, -1, 203, -1, 204, -1, 226, -1, 239,
- -1, 197, -1, 199, -1, 240, -1, 245, -1, 246,
- -1, 247, -1, 173, -1, 209, -1, 254, -1, 255,
- -1, 198, -1, 250, -1, 185, -1, 168, -1, 193,
- -1, 237, -1, 243, -1, 227, -1, 238, -1, 257,
- -1, 258, -1, 174, -1, 163, -1, 184, -1, 230,
- -1, 164, -1, 170, -1, 171, -1, 194, -1, 195,
- -1, 256, -1, 229, -1, 231, -1, 232, -1, 165,
- -1, 259, -1, 213, -1, 235, -1, 186, -1, 200,
- -1, 241, -1, 242, -1, 244, -1, 249, -1, 196,
- -1, 251, -1, 252, -1, 253, -1, 205, -1, 208,
- -1, 233, -1, 234, -1, 206, -1, 228, -1, 248,
- -1, 187, -1, 179, -1, 180, -1, 181, -1, 182,
- -1, 183, -1, 260, -1, 261, -1, 262, -1, 207,
- -1, 214, -1, 215, -1, 263, -1, 264, -1, 38,
- -1, 156, 157, -1, -1, 265, -1, 266, -1, 267,
- -1, 269, -1, 268, -1, 44, -1, 159, 160, -1,
- -1, 270, -1, 271, -1, 272, -1, 273, -1, 13,
- 10, -1, 12, 10, -1, 76, 10, -1, 79, 10,
- -1, 96, 10, -1, 14, 10, -1, 16, 10, -1,
- 67, 10, -1, 15, 10, -1, 80, 10, -1, 81,
- 10, -1, 31, 10, -1, 60, 10, -1, 75, 10,
- -1, 17, 10, -1, 18, 10, -1, 19, 10, -1,
- 20, 10, -1, 122, 10, -1, 123, 10, -1, 124,
- 10, -1, 125, 10, -1, 126, 10, -1, 77, 10,
- -1, 66, 10, -1, 101, 10, -1, 121, 10, -1,
- 21, 10, -1, 22, 10, -1, 23, 10, -1, 24,
- 10, -1, 25, 10, -1, 68, 10, -1, 82, 10,
- -1, 83, 10, -1, 109, 10, -1, 54, 10, -1,
- 64, 10, -1, 55, 10, -1, 102, 10, -1, 48,
- 10, -1, 49, 10, -1, 50, 10, -1, 51, 10,
- -1, 113, 10, -1, 117, 10, -1, 118, 10, -1,
- 114, 10, -1, 61, 10, -1, 26, 10, -1, 27,
- 10, -1, 28, 10, -1, 98, 10, -1, 132, 10,
- -1, 133, 10, -1, 29, 10, -1, 30, 10, -1,
- 32, 10, -1, 33, 10, -1, 35, 10, -1, 36,
- 10, -1, 34, 10, -1, 41, 10, -1, 42, 10,
- -1, 43, 10, -1, 52, 10, -1, 71, 10, -1,
- 119, 10, -1, 85, 10, -1, 78, 10, -1, 86,
- 10, -1, 87, 10, -1, 115, 10, -1, 116, 10,
- -1, 100, 10, -1, 47, 10, -1, 69, 10, -1,
- 72, 10, 10, -1, 53, 10, -1, 56, 10, -1,
- 105, 10, -1, 106, 10, -1, 70, 10, -1, 107,
- 10, -1, 57, 10, -1, 58, 10, -1, 59, 10,
- -1, 120, 10, -1, 108, 10, -1, 65, 10, -1,
- 111, 10, -1, 112, 10, -1, 110, 10, -1, 62,
- 10, -1, 63, 10, -1, 84, 10, -1, 73, 10,
- 10, -1, 74, 10, -1, 97, 10, -1, 129, 10,
- -1, 130, 10, -1, 131, 10, -1, 134, 10, -1,
- 135, 10, -1, 37, 10, -1, 39, 10, -1, 40,
- 10, -1, 128, 10, -1, 99, 10, -1, 37, 10,
- -1, 45, 10, -1, 46, 10, -1, 127, 10, -1,
- 88, -1, 275, 276, -1, -1, 277, -1, 279, -1,
- 278, -1, 280, -1, 281, -1, 282, -1, 283, -1,
- 89, 10, -1, 91, 10, -1, 90, 10, -1, 92,
+ 152, 0, -1, -1, 152, 153, -1, 154, 155, -1,
+ 157, 158, -1, 160, 161, -1, 303, 304, -1, 277,
+ 278, -1, 288, 289, -1, 11, -1, 155, 156, -1,
+ -1, 163, -1, 164, -1, 168, -1, 171, -1, 177,
+ -1, 178, -1, 179, -1, 180, -1, 169, -1, 190,
+ -1, 191, -1, 192, -1, 193, -1, 194, -1, 212,
+ -1, 213, -1, 214, -1, 218, -1, 219, -1, 174,
+ -1, 220, -1, 221, -1, 224, -1, 222, -1, 223,
+ -1, 226, -1, 227, -1, 228, -1, 239, -1, 203,
+ -1, 204, -1, 205, -1, 206, -1, 229, -1, 242,
+ -1, 199, -1, 201, -1, 243, -1, 248, -1, 249,
+ -1, 250, -1, 175, -1, 211, -1, 257, -1, 258,
+ -1, 200, -1, 253, -1, 187, -1, 170, -1, 195,
+ -1, 240, -1, 246, -1, 230, -1, 241, -1, 260,
+ -1, 261, -1, 176, -1, 165, -1, 186, -1, 233,
+ -1, 166, -1, 172, -1, 173, -1, 196, -1, 197,
+ -1, 259, -1, 232, -1, 234, -1, 235, -1, 167,
+ -1, 262, -1, 215, -1, 238, -1, 188, -1, 202,
+ -1, 244, -1, 245, -1, 247, -1, 252, -1, 198,
+ -1, 254, -1, 255, -1, 256, -1, 207, -1, 210,
+ -1, 236, -1, 237, -1, 208, -1, 231, -1, 251,
+ -1, 189, -1, 181, -1, 182, -1, 183, -1, 184,
+ -1, 185, -1, 263, -1, 264, -1, 265, -1, 209,
+ -1, 216, -1, 217, -1, 266, -1, 267, -1, 225,
+ -1, 38, -1, 158, 159, -1, -1, 268, -1, 269,
+ -1, 270, -1, 272, -1, 271, -1, 44, -1, 161,
+ 162, -1, -1, 273, -1, 274, -1, 275, -1, 276,
+ -1, 13, 10, -1, 12, 10, -1, 76, 10, -1,
+ 79, 10, -1, 97, 10, -1, 14, 10, -1, 16,
+ 10, -1, 67, 10, -1, 15, 10, -1, 80, 10,
+ -1, 81, 10, -1, 31, 10, -1, 60, 10, -1,
+ 75, 10, -1, 17, 10, -1, 18, 10, -1, 19,
+ 10, -1, 20, 10, -1, 123, 10, -1, 124, 10,
+ -1, 125, 10, -1, 126, 10, -1, 127, 10, -1,
+ 77, 10, -1, 66, 10, -1, 102, 10, -1, 122,
+ 10, -1, 21, 10, -1, 22, 10, -1, 23, 10,
+ -1, 24, 10, -1, 25, 10, -1, 68, 10, -1,
+ 82, 10, -1, 83, 10, -1, 110, 10, -1, 54,
+ 10, -1, 64, 10, -1, 55, 10, -1, 103, 10,
+ -1, 48, 10, -1, 49, 10, -1, 50, 10, -1,
+ 51, 10, -1, 114, 10, -1, 118, 10, -1, 119,
+ 10, -1, 115, 10, -1, 61, 10, -1, 26, 10,
+ -1, 27, 10, -1, 28, 10, -1, 99, 10, -1,
+ 133, 10, -1, 134, 10, -1, 29, 10, -1, 30,
+ 10, -1, 32, 10, -1, 33, 10, -1, 35, 10,
+ -1, 36, 10, -1, 34, 10, -1, 135, 10, -1,
+ 41, 10, -1, 42, 10, -1, 43, 10, -1, 52,
+ 10, -1, 71, 10, -1, 120, 10, -1, 85, 10,
+ -1, 78, 10, -1, 86, 10, -1, 87, 10, -1,
+ 116, 10, -1, 117, 10, -1, 101, 10, -1, 47,
+ 10, -1, 69, 10, -1, 72, 10, 10, -1, 53,
+ 10, -1, 56, 10, -1, 106, 10, -1, 107, 10,
+ -1, 70, 10, -1, 108, 10, -1, 57, 10, -1,
+ 58, 10, -1, 59, 10, -1, 121, 10, -1, 109,
+ 10, -1, 65, 10, -1, 112, 10, -1, 113, 10,
+ -1, 111, 10, -1, 62, 10, -1, 63, 10, -1,
+ 84, 10, -1, 73, 10, 10, -1, 74, 10, -1,
+ 98, 10, -1, 130, 10, -1, 131, 10, -1, 132,
+ 10, -1, 136, 10, -1, 137, 10, -1, 37, 10,
+ -1, 39, 10, -1, 40, 10, -1, 129, 10, -1,
+ 100, 10, -1, 37, 10, -1, 45, 10, -1, 46,
+ 10, -1, 128, 10, -1, 88, -1, 278, 279, -1,
+ -1, 280, -1, 282, -1, 281, -1, 284, -1, 285,
+ -1, 286, -1, 287, -1, 283, -1, 89, 10, -1,
+ 91, 10, -1, 90, 10, -1, 96, 10, -1, 92,
10, -1, 93, 10, -1, 94, 10, -1, 95, 10,
- -1, 136, -1, 285, 286, -1, -1, 287, -1, 288,
- -1, 289, -1, 290, -1, 291, -1, 292, -1, 293,
- -1, 294, -1, 295, -1, 296, -1, 297, -1, 298,
- -1, 137, 10, -1, 138, 10, -1, 139, 10, -1,
- 140, 10, -1, 141, 10, -1, 142, 10, -1, 143,
- 10, -1, 144, 10, -1, 145, 10, -1, 146, 10,
- -1, 147, 10, -1, 148, 10, -1, 103, -1, 300,
- 301, -1, -1, 302, -1, 104, 10, -1
+ -1, 138, -1, 289, 290, -1, -1, 291, -1, 292,
+ -1, 293, -1, 294, -1, 295, -1, 296, -1, 297,
+ -1, 298, -1, 299, -1, 300, -1, 301, -1, 302,
+ -1, 139, 10, -1, 140, 10, -1, 141, 10, -1,
+ 142, 10, -1, 143, 10, -1, 144, 10, -1, 145,
+ 10, -1, 146, 10, -1, 147, 10, -1, 148, 10,
+ -1, 149, 10, -1, 150, 10, -1, 104, -1, 304,
+ 305, -1, -1, 306, -1, 105, 10, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 121, 121, 121, 122, 122, 123, 123, 124, 124,
- 128, 133, 134, 135, 135, 135, 136, 136, 137, 137,
- 137, 138, 138, 138, 139, 139, 139, 140, 140, 141,
- 141, 142, 142, 143, 143, 144, 144, 145, 145, 146,
- 146, 147, 147, 148, 148, 148, 149, 149, 149, 150,
- 150, 150, 151, 151, 152, 152, 153, 153, 154, 154,
- 155, 155, 155, 156, 156, 157, 157, 158, 158, 158,
- 159, 159, 160, 160, 161, 161, 162, 162, 162, 163,
- 163, 164, 164, 165, 165, 166, 166, 167, 167, 168,
- 168, 168, 169, 169, 170, 170, 170, 171, 171, 171,
- 172, 172, 172, 173, 173, 173, 174, 174, 174, 175,
- 175, 175, 176, 176, 176, 177, 177, 179, 191, 192,
- 193, 193, 193, 193, 193, 195, 207, 208, 209, 209,
- 209, 209, 211, 220, 229, 240, 249, 258, 267, 280,
- 295, 304, 313, 322, 331, 340, 349, 358, 367, 376,
- 385, 394, 403, 410, 417, 426, 435, 449, 458, 467,
- 474, 481, 488, 496, 503, 510, 517, 524, 532, 540,
- 548, 555, 562, 571, 580, 587, 594, 602, 610, 620,
- 633, 644, 652, 665, 674, 683, 692, 702, 710, 723,
- 732, 740, 749, 757, 770, 777, 787, 797, 807, 817,
- 827, 837, 847, 854, 861, 870, 879, 888, 895, 905,
- 922, 929, 947, 960, 973, 982, 991, 1000, 1010, 1020,
- 1029, 1038, 1045, 1054, 1063, 1072, 1080, 1093, 1101, 1123,
- 1130, 1145, 1155, 1165, 1172, 1179, 1188, 1198, 1205, 1212,
- 1221, 1231, 1241, 1248, 1255, 1264, 1269, 1270, 1271, 1271,
- 1271, 1272, 1272, 1272, 1273, 1275, 1285, 1294, 1301, 1308,
- 1315, 1322, 1329, 1334, 1335, 1336, 1336, 1337, 1337, 1338,
- 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1354, 1361,
- 1369, 1377, 1384, 1391, 1400, 1409, 1418, 1427, 1436, 1445,
- 1450, 1451, 1452, 1454
+ 0, 123, 123, 123, 124, 124, 125, 125, 126, 126,
+ 130, 135, 136, 137, 137, 137, 138, 138, 139, 139,
+ 139, 140, 140, 140, 141, 141, 141, 142, 142, 143,
+ 143, 144, 144, 145, 145, 146, 146, 147, 147, 148,
+ 148, 149, 149, 150, 150, 150, 151, 151, 151, 152,
+ 152, 152, 153, 153, 154, 154, 155, 155, 156, 156,
+ 157, 157, 157, 158, 158, 159, 159, 160, 160, 160,
+ 161, 161, 162, 162, 163, 163, 164, 164, 164, 165,
+ 165, 166, 166, 167, 167, 168, 168, 169, 169, 170,
+ 170, 170, 171, 171, 172, 172, 172, 173, 173, 173,
+ 174, 174, 174, 175, 175, 175, 176, 176, 176, 177,
+ 177, 177, 178, 178, 178, 179, 179, 180, 182, 194,
+ 195, 196, 196, 196, 196, 196, 198, 210, 211, 212,
+ 212, 212, 212, 214, 223, 232, 243, 252, 261, 270,
+ 283, 298, 307, 316, 325, 334, 343, 352, 361, 370,
+ 379, 388, 397, 406, 413, 420, 429, 438, 452, 461,
+ 470, 477, 484, 491, 499, 506, 513, 520, 527, 535,
+ 543, 551, 558, 565, 574, 583, 590, 597, 605, 613,
+ 623, 636, 647, 655, 668, 677, 686, 695, 705, 713,
+ 726, 735, 743, 752, 760, 773, 782, 789, 799, 809,
+ 819, 829, 839, 849, 859, 866, 873, 882, 891, 900,
+ 907, 917, 934, 941, 959, 972, 985, 994, 1003, 1012,
+ 1022, 1032, 1041, 1050, 1057, 1066, 1075, 1084, 1092, 1105,
+ 1113, 1136, 1143, 1158, 1168, 1178, 1185, 1192, 1201, 1211,
+ 1218, 1225, 1234, 1244, 1254, 1261, 1268, 1277, 1282, 1283,
+ 1284, 1284, 1284, 1285, 1285, 1285, 1286, 1286, 1288, 1298,
+ 1307, 1314, 1324, 1331, 1338, 1345, 1352, 1357, 1358, 1359,
+ 1359, 1360, 1360, 1361, 1361, 1362, 1363, 1364, 1365, 1366,
+ 1367, 1369, 1377, 1384, 1392, 1400, 1407, 1414, 1423, 1432,
+ 1441, 1450, 1459, 1468, 1473, 1474, 1475, 1477
};
#endif
@@ -933,22 +938,23 @@ static const char *const yytname[] =
"VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
"VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
"VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
- "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT",
- "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
- "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
- "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL",
- "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING",
- "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF",
- "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY",
- "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", "VAR_HARDEN_BELOW_NXDOMAIN",
- "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM",
- "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM",
- "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_FIRST",
- "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE",
- "VAR_DELAY_CLOSE", "VAR_UNBLOCK_LAN_ZONES", "VAR_DNS64_PREFIX",
- "VAR_DNS64_SYNTHALL", "VAR_DNSTAP", "VAR_DNSTAP_ENABLE",
- "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_SEND_IDENTITY",
- "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION",
+ "VAR_CONTROL_USE_CERT", "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR",
+ "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD",
+ "VAR_LOG_TIME_ASCII", "VAR_DOMAIN_INSECURE", "VAR_PYTHON",
+ "VAR_PYTHON_SCRIPT", "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX",
+ "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE",
+ "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN",
+ "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH",
+ "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT",
+ "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES",
+ "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY",
+ "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST",
+ "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN",
+ "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", "VAR_UNBLOCK_LAN_ZONES",
+ "VAR_INFRA_CACHE_MIN_RTT", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL",
+ "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH",
+ "VAR_DNSTAP_SEND_IDENTITY", "VAR_DNSTAP_SEND_VERSION",
+ "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION",
"VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES",
"VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES",
"VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES",
@@ -982,17 +988,18 @@ static const char *const yytname[] =
"server_rrset_cache_size", "server_rrset_cache_slabs",
"server_infra_host_ttl", "server_infra_lame_ttl",
"server_infra_cache_numhosts", "server_infra_cache_lame_size",
- "server_infra_cache_slabs", "server_target_fetch_policy",
- "server_harden_short_bufsize", "server_harden_large_queries",
- "server_harden_glue", "server_harden_dnssec_stripped",
- "server_harden_below_nxdomain", "server_harden_referral_path",
- "server_use_caps_for_id", "server_private_address",
- "server_private_domain", "server_prefetch", "server_prefetch_key",
- "server_unwanted_reply_threshold", "server_do_not_query_address",
- "server_do_not_query_localhost", "server_access_control",
- "server_module_conf", "server_val_override_date",
- "server_val_sig_skew_min", "server_val_sig_skew_max",
- "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl",
+ "server_infra_cache_slabs", "server_infra_cache_min_rtt",
+ "server_target_fetch_policy", "server_harden_short_bufsize",
+ "server_harden_large_queries", "server_harden_glue",
+ "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
+ "server_harden_referral_path", "server_use_caps_for_id",
+ "server_private_address", "server_private_domain", "server_prefetch",
+ "server_prefetch_key", "server_unwanted_reply_threshold",
+ "server_do_not_query_address", "server_do_not_query_localhost",
+ "server_access_control", "server_module_conf",
+ "server_val_override_date", "server_val_sig_skew_min",
+ "server_val_sig_skew_max", "server_cache_max_ttl",
+ "server_cache_min_ttl", "server_bogus_ttl",
"server_val_clean_additional", "server_val_permissive_mode",
"server_ignore_cd_flag", "server_val_log_level",
"server_val_nsec3_keysize_iterations", "server_add_holddown",
@@ -1004,10 +1011,11 @@ static const char *const yytname[] =
"stub_first", "stub_prime", "forward_name", "forward_host",
"forward_addr", "forward_first", "rcstart", "contents_rc", "content_rc",
"rc_control_enable", "rc_control_port", "rc_control_interface",
- "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
- "rc_control_cert_file", "dtstart", "contents_dt", "content_dt",
- "dt_dnstap_enable", "dt_dnstap_socket_path", "dt_dnstap_send_identity",
- "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version",
+ "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file",
+ "rc_control_key_file", "rc_control_cert_file", "dtstart", "contents_dt",
+ "content_dt", "dt_dnstap_enable", "dt_dnstap_socket_path",
+ "dt_dnstap_send_identity", "dt_dnstap_send_version",
+ "dt_dnstap_identity", "dt_dnstap_version",
"dt_dnstap_log_resolver_query_messages",
"dt_dnstap_log_resolver_response_messages",
"dt_dnstap_log_client_query_messages",
@@ -1037,43 +1045,44 @@ static const yytype_uint16 yytoknum[] =
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402, 403
+ 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 149, 150, 150, 151, 151, 151, 151, 151, 151,
- 152, 153, 153, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 155, 156, 156,
- 157, 157, 157, 157, 157, 158, 159, 159, 160, 160,
- 160, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 275, 276, 276,
- 276, 276, 276, 276, 276, 277, 278, 279, 280, 281,
- 282, 283, 284, 285, 285, 286, 286, 286, 286, 286,
- 286, 286, 286, 286, 286, 286, 286, 287, 288, 289,
+ 0, 151, 152, 152, 153, 153, 153, 153, 153, 153,
+ 154, 155, 155, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 157, 158,
+ 158, 159, 159, 159, 159, 159, 160, 161, 161, 162,
+ 162, 162, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 278,
+ 279, 279, 279, 279, 279, 279, 279, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 289, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 300, 301, 302
+ 300, 301, 302, 303, 304, 304, 305, 306
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1090,25 +1099,25 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
- 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
- 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 0, 1, 1, 1, 1, 1, 1, 2, 0, 1,
+ 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
+ 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 2, 0, 1, 1,
- 1, 1, 1, 1, 1, 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
+ 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 0, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 1, 2, 0, 1, 2
};
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -1116,8 +1125,8 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 2, 0, 1, 10, 117, 125, 245, 289, 262, 3,
- 12, 119, 127, 247, 264, 291, 4, 5, 6, 8,
+ 2, 0, 1, 10, 118, 126, 247, 293, 266, 3,
+ 12, 120, 128, 249, 268, 295, 4, 5, 6, 8,
9, 7, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1128,129 +1137,131 @@ static const yytype_uint16 yydefact[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 13, 14, 70,
- 73, 82, 15, 21, 61, 16, 74, 75, 32, 54,
- 69, 17, 18, 19, 20, 104, 105, 106, 107, 108,
- 71, 60, 86, 103, 22, 23, 24, 25, 26, 62,
- 76, 77, 92, 48, 58, 49, 87, 42, 43, 44,
- 45, 96, 100, 112, 97, 55, 27, 28, 29, 84,
- 113, 114, 30, 31, 33, 34, 36, 37, 35, 38,
- 39, 40, 46, 65, 101, 79, 72, 80, 81, 98,
- 99, 85, 41, 63, 66, 47, 50, 88, 89, 64,
- 90, 51, 52, 53, 102, 91, 59, 93, 94, 95,
- 56, 57, 78, 67, 68, 83, 109, 110, 111, 115,
- 116, 0, 0, 0, 0, 0, 118, 120, 121, 122,
- 124, 123, 0, 0, 0, 0, 126, 128, 129, 130,
- 131, 0, 0, 0, 0, 0, 0, 0, 246, 248,
- 250, 249, 251, 252, 253, 254, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 263, 265,
- 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 0, 290, 292, 133, 132, 137, 140, 138, 146,
- 147, 148, 149, 159, 160, 161, 162, 163, 181, 182,
- 183, 187, 188, 143, 189, 190, 193, 191, 192, 194,
- 195, 196, 207, 172, 173, 174, 175, 197, 210, 168,
- 170, 211, 216, 217, 218, 144, 180, 225, 226, 169,
- 221, 156, 139, 164, 208, 214, 198, 0, 0, 229,
- 145, 134, 155, 201, 135, 141, 142, 165, 166, 227,
- 200, 202, 203, 136, 230, 184, 206, 157, 171, 212,
- 213, 215, 220, 167, 224, 222, 223, 176, 179, 204,
- 205, 177, 178, 199, 219, 158, 150, 151, 152, 153,
- 154, 231, 232, 233, 185, 186, 234, 235, 236, 237,
- 238, 240, 239, 241, 242, 243, 244, 255, 257, 256,
- 258, 259, 260, 261, 277, 278, 279, 280, 281, 282,
- 283, 284, 285, 286, 287, 288, 293, 209, 228
+ 0, 0, 0, 0, 0, 0, 0, 11, 13, 14,
+ 70, 73, 82, 15, 21, 61, 16, 74, 75, 32,
+ 54, 69, 17, 18, 19, 20, 104, 105, 106, 107,
+ 108, 71, 60, 86, 103, 22, 23, 24, 25, 26,
+ 62, 76, 77, 92, 48, 58, 49, 87, 42, 43,
+ 44, 45, 96, 100, 112, 97, 55, 27, 28, 29,
+ 84, 113, 114, 30, 31, 33, 34, 36, 37, 35,
+ 117, 38, 39, 40, 46, 65, 101, 79, 72, 80,
+ 81, 98, 99, 85, 41, 63, 66, 47, 50, 88,
+ 89, 64, 90, 51, 52, 53, 102, 91, 59, 93,
+ 94, 95, 56, 57, 78, 67, 68, 83, 109, 110,
+ 111, 115, 116, 0, 0, 0, 0, 0, 119, 121,
+ 122, 123, 125, 124, 0, 0, 0, 0, 127, 129,
+ 130, 131, 132, 0, 0, 0, 0, 0, 0, 0,
+ 0, 248, 250, 252, 251, 257, 253, 254, 255, 256,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 267, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 0, 294, 296, 134, 133,
+ 138, 141, 139, 147, 148, 149, 150, 160, 161, 162,
+ 163, 164, 182, 183, 184, 188, 189, 144, 190, 191,
+ 194, 192, 193, 196, 197, 198, 209, 173, 174, 175,
+ 176, 199, 212, 169, 171, 213, 218, 219, 220, 145,
+ 181, 227, 228, 170, 223, 157, 140, 165, 210, 216,
+ 200, 0, 0, 231, 146, 135, 156, 203, 136, 142,
+ 143, 166, 167, 229, 202, 204, 205, 137, 232, 185,
+ 208, 158, 172, 214, 215, 217, 222, 168, 226, 224,
+ 225, 177, 180, 206, 207, 178, 179, 201, 221, 159,
+ 151, 152, 153, 154, 155, 233, 234, 235, 186, 187,
+ 195, 236, 237, 238, 239, 240, 242, 241, 243, 244,
+ 245, 246, 258, 260, 259, 262, 263, 264, 265, 261,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
+ 291, 292, 297, 211, 230
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 9, 10, 16, 126, 11, 17, 236, 12,
- 18, 246, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 237, 238, 239, 240,
- 241, 247, 248, 249, 250, 13, 19, 258, 259, 260,
- 261, 262, 263, 264, 265, 14, 20, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 15, 21, 292, 293
+ -1, 1, 9, 10, 16, 127, 11, 17, 238, 12,
+ 18, 248, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 239, 240, 241,
+ 242, 243, 249, 250, 251, 252, 13, 19, 261, 262,
+ 263, 264, 265, 266, 267, 268, 269, 14, 20, 282,
+ 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 15, 21, 296, 297
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -123
+#define YYPACT_NINF -125
static const yytype_int16 yypact[] =
{
- -123, 0, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, 92, -36, -32, -62,
- -122, -102, -4, -3, -2, -1, 2, 24, 25, 26,
- 27, 29, 30, 31, 32, 33, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 79, 80,
- 81, 83, 84, 86, 87, 88, 89, 90, 91, 119,
- 120, 121, 122, 127, 128, 170, 171, 172, 173, 174,
- 175, 176, 177, 181, 185, 186, 209, 210, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
- 230, 231, 232, 233, 234, 235, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, 236, 237, 238, 239, 240, -123, -123, -123, -123,
- -123, -123, 241, 242, 243, 244, -123, -123, -123, -123,
- -123, 245, 246, 247, 248, 249, 250, 251, -123, -123,
- -123, -123, -123, -123, -123, -123, 252, 253, 254, 255,
- 256, 257, 258, 259, 260, 261, 262, 263, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, 264, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, 265, 266, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123
+ -125, 0, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, 93, -36, -32, -62,
+ -124, -103, -4, -3, -2, -1, 2, 25, 26, 27,
+ 29, 30, 31, 32, 33, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 79, 80, 81,
+ 82, 84, 85, 87, 88, 89, 90, 91, 92, 120,
+ 121, 122, 123, 127, 129, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 183, 187, 188, 211, 212, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, 239, 240, 241, 242, 243, -125, -125,
+ -125, -125, -125, -125, 244, 245, 246, 247, -125, -125,
+ -125, -125, -125, 248, 249, 250, 251, 252, 253, 254,
+ 255, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, 268, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, 269, 270, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
- -123, -123, -123, -123
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+ -125, -125, -125, -125, -125, -125
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1259,108 +1270,111 @@ static const yytype_int8 yypgoto[] =
#define YYTABLE_NINF -1
static const yytype_uint16 yytable[] =
{
- 2, 231, 291, 232, 233, 242, 294, 295, 296, 297,
- 0, 3, 298, 243, 244, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 251, 252, 253,
- 254, 255, 256, 257, 299, 300, 301, 302, 4, 303,
- 304, 305, 306, 307, 5, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 234, 326, 327, 328, 329, 330, 331,
- 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
- 342, 343, 344, 345, 346, 347, 348, 349, 6, 350,
- 351, 352, 235, 353, 354, 245, 355, 356, 357, 358,
- 359, 360, 0, 7, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 361,
- 362, 363, 364, 47, 48, 49, 8, 365, 366, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 367, 368, 369, 370, 371, 372, 373, 374, 91, 92,
- 93, 375, 94, 95, 96, 376, 377, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 378,
- 379, 119, 120, 121, 122, 123, 124, 125, 380, 381,
- 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
- 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
- 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
- 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
- 422, 423, 424, 425, 426, 427, 428
+ 2, 233, 295, 234, 235, 244, 298, 299, 300, 301,
+ 0, 3, 302, 245, 246, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 253, 254, 255,
+ 256, 257, 258, 259, 260, 303, 304, 305, 4, 306,
+ 307, 308, 309, 310, 5, 311, 312, 313, 314, 315,
+ 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
+ 326, 327, 328, 329, 236, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 6, 353,
+ 354, 355, 356, 237, 357, 358, 247, 359, 360, 361,
+ 362, 363, 364, 0, 7, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 365, 366, 367, 368, 47, 48, 49, 369, 8, 370,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 91, 92, 93, 380, 94, 95, 96, 381, 382, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 383, 384, 119, 120, 121, 122, 123, 124, 125,
+ 126, 385, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
+ 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
+ 434
};
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-123)))
+ (!!((Yystate) == (-125)))
#define yytable_value_is_error(Yytable_value) \
YYID (0)
static const yytype_int16 yycheck[] =
{
- 0, 37, 104, 39, 40, 37, 10, 10, 10, 10,
- -1, 11, 10, 45, 46, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 89, 90, 91,
- 92, 93, 94, 95, 10, 10, 10, 10, 38, 10,
+ 0, 37, 105, 39, 40, 37, 10, 10, 10, 10,
+ -1, 11, 10, 45, 46, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 89, 90, 91,
+ 92, 93, 94, 95, 96, 10, 10, 10, 38, 10,
10, 10, 10, 10, 44, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 99, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 100, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 88, 10,
- 10, 10, 128, 10, 10, 127, 10, 10, 10, 10,
- 10, 10, -1, 103, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 10,
- 10, 10, 10, 41, 42, 43, 136, 10, 10, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- 10, 10, 10, 10, 10, 10, 10, 10, 96, 97,
- 98, 10, 100, 101, 102, 10, 10, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 10,
- 10, 129, 130, 131, 132, 133, 134, 135, 10, 10,
+ 10, 10, 10, 129, 10, 10, 128, 10, 10, 10,
+ 10, 10, 10, -1, 104, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 10, 10, 10, 10, 41, 42, 43, 10, 138, 10,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 97, 98, 99, 10, 101, 102, 103, 10, 10, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127, 10, 10, 130, 131, 132, 133, 134, 135, 136,
+ 137, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 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, 150, 0, 11, 38, 44, 88, 103, 136, 151,
- 152, 155, 158, 274, 284, 299, 153, 156, 159, 275,
- 285, 300, 12, 13, 14, 15, 16, 17, 18, 19,
+ 0, 152, 0, 11, 38, 44, 88, 104, 138, 153,
+ 154, 157, 160, 277, 288, 303, 155, 158, 161, 278,
+ 289, 304, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 41, 42, 43,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 96, 97, 98, 100, 101, 102, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 129,
- 130, 131, 132, 133, 134, 135, 154, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
- 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 37, 39, 40, 99, 128, 157, 265, 266, 267,
- 268, 269, 37, 45, 46, 127, 160, 270, 271, 272,
- 273, 89, 90, 91, 92, 93, 94, 95, 276, 277,
- 278, 279, 280, 281, 282, 283, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 298, 104, 301, 302, 10, 10, 10, 10, 10, 10,
+ 87, 97, 98, 99, 101, 102, 103, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 130,
+ 131, 132, 133, 134, 135, 136, 137, 156, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 37, 39, 40, 100, 129, 159, 268,
+ 269, 270, 271, 272, 37, 45, 46, 128, 162, 273,
+ 274, 275, 276, 89, 90, 91, 92, 93, 94, 95,
+ 96, 279, 280, 281, 282, 283, 284, 285, 286, 287,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 105, 305, 306, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
@@ -1373,7 +1387,7 @@ static const yytype_uint16 yystos[] =
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10
+ 10, 10, 10, 10, 10
};
#define yyerrok (yyerrstatus = 0)
@@ -2175,15 +2189,15 @@ yyreduce:
{
case 10:
/* Line 1792 of yacc.c */
-#line 129 "util/configparser.y"
+#line 131 "util/configparser.y"
{
OUTYY(("\nP(server:)\n"));
}
break;
- case 117:
+ case 118:
/* Line 1792 of yacc.c */
-#line 180 "util/configparser.y"
+#line 183 "util/configparser.y"
{
struct config_stub* s;
OUTYY(("\nP(stub_zone:)\n"));
@@ -2196,9 +2210,9 @@ yyreduce:
}
break;
- case 125:
+ case 126:
/* Line 1792 of yacc.c */
-#line 196 "util/configparser.y"
+#line 199 "util/configparser.y"
{
struct config_stub* s;
OUTYY(("\nP(forward_zone:)\n"));
@@ -2211,9 +2225,9 @@ yyreduce:
}
break;
- case 132:
+ case 133:
/* Line 1792 of yacc.c */
-#line 212 "util/configparser.y"
+#line 215 "util/configparser.y"
{
OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2223,9 +2237,9 @@ yyreduce:
}
break;
- case 133:
+ case 134:
/* Line 1792 of yacc.c */
-#line 221 "util/configparser.y"
+#line 224 "util/configparser.y"
{
OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2235,9 +2249,9 @@ yyreduce:
}
break;
- case 134:
+ case 135:
/* Line 1792 of yacc.c */
-#line 230 "util/configparser.y"
+#line 233 "util/configparser.y"
{
OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
@@ -2249,9 +2263,9 @@ yyreduce:
}
break;
- case 135:
+ case 136:
/* Line 1792 of yacc.c */
-#line 241 "util/configparser.y"
+#line 244 "util/configparser.y"
{
OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2261,9 +2275,9 @@ yyreduce:
}
break;
- case 136:
+ case 137:
/* Line 1792 of yacc.c */
-#line 250 "util/configparser.y"
+#line 253 "util/configparser.y"
{
OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2273,9 +2287,9 @@ yyreduce:
}
break;
- case 137:
+ case 138:
/* Line 1792 of yacc.c */
-#line 259 "util/configparser.y"
+#line 262 "util/configparser.y"
{
OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2285,9 +2299,9 @@ yyreduce:
}
break;
- case 138:
+ case 139:
/* Line 1792 of yacc.c */
-#line 268 "util/configparser.y"
+#line 271 "util/configparser.y"
{
OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
if(cfg_parser->cfg->num_ifs == 0)
@@ -2301,9 +2315,9 @@ yyreduce:
}
break;
- case 139:
+ case 140:
/* Line 1792 of yacc.c */
-#line 281 "util/configparser.y"
+#line 284 "util/configparser.y"
{
OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2319,9 +2333,9 @@ yyreduce:
}
break;
- case 140:
+ case 141:
/* Line 1792 of yacc.c */
-#line 296 "util/configparser.y"
+#line 299 "util/configparser.y"
{
OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2331,9 +2345,9 @@ yyreduce:
}
break;
- case 141:
+ case 142:
/* Line 1792 of yacc.c */
-#line 305 "util/configparser.y"
+#line 308 "util/configparser.y"
{
OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1,
@@ -2343,9 +2357,9 @@ yyreduce:
}
break;
- case 142:
+ case 143:
/* Line 1792 of yacc.c */
-#line 314 "util/configparser.y"
+#line 317 "util/configparser.y"
{
OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0,
@@ -2355,9 +2369,9 @@ yyreduce:
}
break;
- case 143:
+ case 144:
/* Line 1792 of yacc.c */
-#line 323 "util/configparser.y"
+#line 326 "util/configparser.y"
{
OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2367,9 +2381,9 @@ yyreduce:
}
break;
- case 144:
+ case 145:
/* Line 1792 of yacc.c */
-#line 332 "util/configparser.y"
+#line 335 "util/configparser.y"
{
OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2379,9 +2393,9 @@ yyreduce:
}
break;
- case 145:
+ case 146:
/* Line 1792 of yacc.c */
-#line 341 "util/configparser.y"
+#line 344 "util/configparser.y"
{
OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2391,9 +2405,9 @@ yyreduce:
}
break;
- case 146:
+ case 147:
/* Line 1792 of yacc.c */
-#line 350 "util/configparser.y"
+#line 353 "util/configparser.y"
{
OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2403,9 +2417,9 @@ yyreduce:
}
break;
- case 147:
+ case 148:
/* Line 1792 of yacc.c */
-#line 359 "util/configparser.y"
+#line 362 "util/configparser.y"
{
OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2415,9 +2429,9 @@ yyreduce:
}
break;
- case 148:
+ case 149:
/* Line 1792 of yacc.c */
-#line 368 "util/configparser.y"
+#line 371 "util/configparser.y"
{
OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2427,9 +2441,9 @@ yyreduce:
}
break;
- case 149:
+ case 150:
/* Line 1792 of yacc.c */
-#line 377 "util/configparser.y"
+#line 380 "util/configparser.y"
{
OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2439,9 +2453,9 @@ yyreduce:
}
break;
- case 150:
+ case 151:
/* Line 1792 of yacc.c */
-#line 386 "util/configparser.y"
+#line 389 "util/configparser.y"
{
OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2451,9 +2465,9 @@ yyreduce:
}
break;
- case 151:
+ case 152:
/* Line 1792 of yacc.c */
-#line 395 "util/configparser.y"
+#line 398 "util/configparser.y"
{
OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2463,9 +2477,9 @@ yyreduce:
}
break;
- case 152:
+ case 153:
/* Line 1792 of yacc.c */
-#line 404 "util/configparser.y"
+#line 407 "util/configparser.y"
{
OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->ssl_service_key);
@@ -2473,9 +2487,9 @@ yyreduce:
}
break;
- case 153:
+ case 154:
/* Line 1792 of yacc.c */
-#line 411 "util/configparser.y"
+#line 414 "util/configparser.y"
{
OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->ssl_service_pem);
@@ -2483,9 +2497,9 @@ yyreduce:
}
break;
- case 154:
+ case 155:
/* Line 1792 of yacc.c */
-#line 418 "util/configparser.y"
+#line 421 "util/configparser.y"
{
OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2495,9 +2509,9 @@ yyreduce:
}
break;
- case 155:
+ case 156:
/* Line 1792 of yacc.c */
-#line 427 "util/configparser.y"
+#line 430 "util/configparser.y"
{
OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2507,9 +2521,9 @@ yyreduce:
}
break;
- case 156:
+ case 157:
/* Line 1792 of yacc.c */
-#line 436 "util/configparser.y"
+#line 439 "util/configparser.y"
{
OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2524,9 +2538,9 @@ yyreduce:
}
break;
- case 157:
+ case 158:
/* Line 1792 of yacc.c */
-#line 450 "util/configparser.y"
+#line 453 "util/configparser.y"
{
OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2536,9 +2550,9 @@ yyreduce:
}
break;
- case 158:
+ case 159:
/* Line 1792 of yacc.c */
-#line 459 "util/configparser.y"
+#line 462 "util/configparser.y"
{
OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2548,9 +2562,9 @@ yyreduce:
}
break;
- case 159:
+ case 160:
/* Line 1792 of yacc.c */
-#line 468 "util/configparser.y"
+#line 471 "util/configparser.y"
{
OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->chrootdir);
@@ -2558,9 +2572,9 @@ yyreduce:
}
break;
- case 160:
+ case 161:
/* Line 1792 of yacc.c */
-#line 475 "util/configparser.y"
+#line 478 "util/configparser.y"
{
OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->username);
@@ -2568,9 +2582,9 @@ yyreduce:
}
break;
- case 161:
+ case 162:
/* Line 1792 of yacc.c */
-#line 482 "util/configparser.y"
+#line 485 "util/configparser.y"
{
OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->directory);
@@ -2578,9 +2592,9 @@ yyreduce:
}
break;
- case 162:
+ case 163:
/* Line 1792 of yacc.c */
-#line 489 "util/configparser.y"
+#line 492 "util/configparser.y"
{
OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->logfile);
@@ -2589,9 +2603,9 @@ yyreduce:
}
break;
- case 163:
+ case 164:
/* Line 1792 of yacc.c */
-#line 497 "util/configparser.y"
+#line 500 "util/configparser.y"
{
OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->pidfile);
@@ -2599,9 +2613,9 @@ yyreduce:
}
break;
- case 164:
+ case 165:
/* Line 1792 of yacc.c */
-#line 504 "util/configparser.y"
+#line 507 "util/configparser.y"
{
OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
@@ -2609,9 +2623,9 @@ yyreduce:
}
break;
- case 165:
+ case 166:
/* Line 1792 of yacc.c */
-#line 511 "util/configparser.y"
+#line 514 "util/configparser.y"
{
OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->dlv_anchor_file);
@@ -2619,9 +2633,9 @@ yyreduce:
}
break;
- case 166:
+ case 167:
/* Line 1792 of yacc.c */
-#line 518 "util/configparser.y"
+#line 521 "util/configparser.y"
{
OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
@@ -2629,9 +2643,9 @@ yyreduce:
}
break;
- case 167:
+ case 168:
/* Line 1792 of yacc.c */
-#line 525 "util/configparser.y"
+#line 528 "util/configparser.y"
{
OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2640,9 +2654,9 @@ yyreduce:
}
break;
- case 168:
+ case 169:
/* Line 1792 of yacc.c */
-#line 533 "util/configparser.y"
+#line 536 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2651,9 +2665,9 @@ yyreduce:
}
break;
- case 169:
+ case 170:
/* Line 1792 of yacc.c */
-#line 541 "util/configparser.y"
+#line 544 "util/configparser.y"
{
OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
@@ -2662,9 +2676,9 @@ yyreduce:
}
break;
- case 170:
+ case 171:
/* Line 1792 of yacc.c */
-#line 549 "util/configparser.y"
+#line 552 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
@@ -2672,9 +2686,9 @@ yyreduce:
}
break;
- case 171:
+ case 172:
/* Line 1792 of yacc.c */
-#line 556 "util/configparser.y"
+#line 559 "util/configparser.y"
{
OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str)))
@@ -2682,9 +2696,9 @@ yyreduce:
}
break;
- case 172:
+ case 173:
/* Line 1792 of yacc.c */
-#line 563 "util/configparser.y"
+#line 566 "util/configparser.y"
{
OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2694,9 +2708,9 @@ yyreduce:
}
break;
- case 173:
+ case 174:
/* Line 1792 of yacc.c */
-#line 572 "util/configparser.y"
+#line 575 "util/configparser.y"
{
OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2706,9 +2720,9 @@ yyreduce:
}
break;
- case 174:
+ case 175:
/* Line 1792 of yacc.c */
-#line 581 "util/configparser.y"
+#line 584 "util/configparser.y"
{
OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->identity);
@@ -2716,9 +2730,9 @@ yyreduce:
}
break;
- case 175:
+ case 176:
/* Line 1792 of yacc.c */
-#line 588 "util/configparser.y"
+#line 591 "util/configparser.y"
{
OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->version);
@@ -2726,9 +2740,9 @@ yyreduce:
}
break;
- case 176:
+ case 177:
/* Line 1792 of yacc.c */
-#line 595 "util/configparser.y"
+#line 598 "util/configparser.y"
{
OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf))
@@ -2737,9 +2751,9 @@ yyreduce:
}
break;
- case 177:
+ case 178:
/* Line 1792 of yacc.c */
-#line 603 "util/configparser.y"
+#line 606 "util/configparser.y"
{
OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf))
@@ -2748,9 +2762,9 @@ yyreduce:
}
break;
- case 178:
+ case 179:
/* Line 1792 of yacc.c */
-#line 611 "util/configparser.y"
+#line 614 "util/configparser.y"
{
OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2761,9 +2775,9 @@ yyreduce:
}
break;
- case 179:
+ case 180:
/* Line 1792 of yacc.c */
-#line 621 "util/configparser.y"
+#line 624 "util/configparser.y"
{
OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2777,9 +2791,9 @@ yyreduce:
}
break;
- case 180:
+ case 181:
/* Line 1792 of yacc.c */
-#line 634 "util/configparser.y"
+#line 637 "util/configparser.y"
{
OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2791,9 +2805,9 @@ yyreduce:
}
break;
- case 181:
+ case 182:
/* Line 1792 of yacc.c */
-#line 645 "util/configparser.y"
+#line 648 "util/configparser.y"
{
OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
@@ -2802,9 +2816,9 @@ yyreduce:
}
break;
- case 182:
+ case 183:
/* Line 1792 of yacc.c */
-#line 653 "util/configparser.y"
+#line 656 "util/configparser.y"
{
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2818,9 +2832,9 @@ yyreduce:
}
break;
- case 183:
+ case 184:
/* Line 1792 of yacc.c */
-#line 666 "util/configparser.y"
+#line 669 "util/configparser.y"
{
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2830,9 +2844,9 @@ yyreduce:
}
break;
- case 184:
+ case 185:
/* Line 1792 of yacc.c */
-#line 675 "util/configparser.y"
+#line 678 "util/configparser.y"
{
OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2842,9 +2856,9 @@ yyreduce:
}
break;
- case 185:
+ case 186:
/* Line 1792 of yacc.c */
-#line 684 "util/configparser.y"
+#line 687 "util/configparser.y"
{
OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2854,9 +2868,9 @@ yyreduce:
}
break;
- case 186:
+ case 187:
/* Line 1792 of yacc.c */
-#line 693 "util/configparser.y"
+#line 696 "util/configparser.y"
{
OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2867,9 +2881,9 @@ yyreduce:
}
break;
- case 187:
+ case 188:
/* Line 1792 of yacc.c */
-#line 703 "util/configparser.y"
+#line 706 "util/configparser.y"
{
OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
@@ -2878,9 +2892,9 @@ yyreduce:
}
break;
- case 188:
+ case 189:
/* Line 1792 of yacc.c */
-#line 711 "util/configparser.y"
+#line 714 "util/configparser.y"
{
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2894,9 +2908,9 @@ yyreduce:
}
break;
- case 189:
+ case 190:
/* Line 1792 of yacc.c */
-#line 724 "util/configparser.y"
+#line 727 "util/configparser.y"
{
OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -2906,9 +2920,9 @@ yyreduce:
}
break;
- case 190:
+ case 191:
/* Line 1792 of yacc.c */
-#line 733 "util/configparser.y"
+#line 736 "util/configparser.y"
{
OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
@@ -2917,9 +2931,9 @@ yyreduce:
}
break;
- case 191:
+ case 192:
/* Line 1792 of yacc.c */
-#line 741 "util/configparser.y"
+#line 744 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2929,9 +2943,9 @@ yyreduce:
}
break;
- case 192:
+ case 193:
/* Line 1792 of yacc.c */
-#line 750 "util/configparser.y"
+#line 753 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
@@ -2940,9 +2954,9 @@ yyreduce:
}
break;
- case 193:
+ case 194:
/* Line 1792 of yacc.c */
-#line 758 "util/configparser.y"
+#line 761 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -2956,9 +2970,21 @@ yyreduce:
}
break;
- case 194:
+ case 195:
/* Line 1792 of yacc.c */
-#line 771 "util/configparser.y"
+#line 774 "util/configparser.y"
+ {
+ OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str)));
+ if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+ yyerror("number expected");
+ else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[(2) - (2)].str));
+ free((yyvsp[(2) - (2)].str));
+ }
+ break;
+
+ case 196:
+/* Line 1792 of yacc.c */
+#line 783 "util/configparser.y"
{
OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->target_fetch_policy);
@@ -2966,9 +2992,9 @@ yyreduce:
}
break;
- case 195:
+ case 197:
/* Line 1792 of yacc.c */
-#line 778 "util/configparser.y"
+#line 790 "util/configparser.y"
{
OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2979,9 +3005,9 @@ yyreduce:
}
break;
- case 196:
+ case 198:
/* Line 1792 of yacc.c */
-#line 788 "util/configparser.y"
+#line 800 "util/configparser.y"
{
OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -2992,9 +3018,9 @@ yyreduce:
}
break;
- case 197:
+ case 199:
/* Line 1792 of yacc.c */
-#line 798 "util/configparser.y"
+#line 810 "util/configparser.y"
{
OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3005,9 +3031,9 @@ yyreduce:
}
break;
- case 198:
+ case 200:
/* Line 1792 of yacc.c */
-#line 808 "util/configparser.y"
+#line 820 "util/configparser.y"
{
OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3018,9 +3044,9 @@ yyreduce:
}
break;
- case 199:
+ case 201:
/* Line 1792 of yacc.c */
-#line 818 "util/configparser.y"
+#line 830 "util/configparser.y"
{
OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3031,9 +3057,9 @@ yyreduce:
}
break;
- case 200:
+ case 202:
/* Line 1792 of yacc.c */
-#line 828 "util/configparser.y"
+#line 840 "util/configparser.y"
{
OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3044,9 +3070,9 @@ yyreduce:
}
break;
- case 201:
+ case 203:
/* Line 1792 of yacc.c */
-#line 838 "util/configparser.y"
+#line 850 "util/configparser.y"
{
OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3057,9 +3083,9 @@ yyreduce:
}
break;
- case 202:
+ case 204:
/* Line 1792 of yacc.c */
-#line 848 "util/configparser.y"
+#line 860 "util/configparser.y"
{
OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
@@ -3067,9 +3093,9 @@ yyreduce:
}
break;
- case 203:
+ case 205:
/* Line 1792 of yacc.c */
-#line 855 "util/configparser.y"
+#line 867 "util/configparser.y"
{
OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
@@ -3077,9 +3103,9 @@ yyreduce:
}
break;
- case 204:
+ case 206:
/* Line 1792 of yacc.c */
-#line 862 "util/configparser.y"
+#line 874 "util/configparser.y"
{
OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3089,9 +3115,9 @@ yyreduce:
}
break;
- case 205:
+ case 207:
/* Line 1792 of yacc.c */
-#line 871 "util/configparser.y"
+#line 883 "util/configparser.y"
{
OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3101,9 +3127,9 @@ yyreduce:
}
break;
- case 206:
+ case 208:
/* Line 1792 of yacc.c */
-#line 880 "util/configparser.y"
+#line 892 "util/configparser.y"
{
OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3113,9 +3139,9 @@ yyreduce:
}
break;
- case 207:
+ case 209:
/* Line 1792 of yacc.c */
-#line 889 "util/configparser.y"
+#line 901 "util/configparser.y"
{
OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
@@ -3123,9 +3149,9 @@ yyreduce:
}
break;
- case 208:
+ case 210:
/* Line 1792 of yacc.c */
-#line 896 "util/configparser.y"
+#line 908 "util/configparser.y"
{
OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3136,9 +3162,9 @@ yyreduce:
}
break;
- case 209:
+ case 211:
/* Line 1792 of yacc.c */
-#line 906 "util/configparser.y"
+#line 918 "util/configparser.y"
{
OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
@@ -3156,9 +3182,9 @@ yyreduce:
}
break;
- case 210:
+ case 212:
/* Line 1792 of yacc.c */
-#line 923 "util/configparser.y"
+#line 935 "util/configparser.y"
{
OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->module_conf);
@@ -3166,9 +3192,9 @@ yyreduce:
}
break;
- case 211:
+ case 213:
/* Line 1792 of yacc.c */
-#line 930 "util/configparser.y"
+#line 942 "util/configparser.y"
{
OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3187,9 +3213,9 @@ yyreduce:
}
break;
- case 212:
+ case 214:
/* Line 1792 of yacc.c */
-#line 948 "util/configparser.y"
+#line 960 "util/configparser.y"
{
OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3203,9 +3229,9 @@ yyreduce:
}
break;
- case 213:
+ case 215:
/* Line 1792 of yacc.c */
-#line 961 "util/configparser.y"
+#line 973 "util/configparser.y"
{
OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
@@ -3219,9 +3245,9 @@ yyreduce:
}
break;
- case 214:
+ case 216:
/* Line 1792 of yacc.c */
-#line 974 "util/configparser.y"
+#line 986 "util/configparser.y"
{
OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3231,9 +3257,9 @@ yyreduce:
}
break;
- case 215:
+ case 217:
/* Line 1792 of yacc.c */
-#line 983 "util/configparser.y"
+#line 995 "util/configparser.y"
{
OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3243,9 +3269,9 @@ yyreduce:
}
break;
- case 216:
+ case 218:
/* Line 1792 of yacc.c */
-#line 992 "util/configparser.y"
+#line 1004 "util/configparser.y"
{
OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3255,9 +3281,9 @@ yyreduce:
}
break;
- case 217:
+ case 219:
/* Line 1792 of yacc.c */
-#line 1001 "util/configparser.y"
+#line 1013 "util/configparser.y"
{
OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3268,9 +3294,9 @@ yyreduce:
}
break;
- case 218:
+ case 220:
/* Line 1792 of yacc.c */
-#line 1011 "util/configparser.y"
+#line 1023 "util/configparser.y"
{
OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3281,9 +3307,9 @@ yyreduce:
}
break;
- case 219:
+ case 221:
/* Line 1792 of yacc.c */
-#line 1021 "util/configparser.y"
+#line 1033 "util/configparser.y"
{
OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3293,9 +3319,9 @@ yyreduce:
}
break;
- case 220:
+ case 222:
/* Line 1792 of yacc.c */
-#line 1030 "util/configparser.y"
+#line 1042 "util/configparser.y"
{
OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3305,9 +3331,9 @@ yyreduce:
}
break;
- case 221:
+ case 223:
/* Line 1792 of yacc.c */
-#line 1039 "util/configparser.y"
+#line 1051 "util/configparser.y"
{
OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->val_nsec3_key_iterations);
@@ -3315,9 +3341,9 @@ yyreduce:
}
break;
- case 222:
+ case 224:
/* Line 1792 of yacc.c */
-#line 1046 "util/configparser.y"
+#line 1058 "util/configparser.y"
{
OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3327,9 +3353,9 @@ yyreduce:
}
break;
- case 223:
+ case 225:
/* Line 1792 of yacc.c */
-#line 1055 "util/configparser.y"
+#line 1067 "util/configparser.y"
{
OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3339,9 +3365,9 @@ yyreduce:
}
break;
- case 224:
+ case 226:
/* Line 1792 of yacc.c */
-#line 1064 "util/configparser.y"
+#line 1076 "util/configparser.y"
{
OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
@@ -3351,9 +3377,9 @@ yyreduce:
}
break;
- case 225:
+ case 227:
/* Line 1792 of yacc.c */
-#line 1073 "util/configparser.y"
+#line 1085 "util/configparser.y"
{
OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
@@ -3362,9 +3388,9 @@ yyreduce:
}
break;
- case 226:
+ case 228:
/* Line 1792 of yacc.c */
-#line 1081 "util/configparser.y"
+#line 1093 "util/configparser.y"
{
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3378,9 +3404,9 @@ yyreduce:
}
break;
- case 227:
+ case 229:
/* Line 1792 of yacc.c */
-#line 1094 "util/configparser.y"
+#line 1106 "util/configparser.y"
{
OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
@@ -3389,18 +3415,19 @@ yyreduce:
}
break;
- case 228:
+ case 230:
/* Line 1792 of yacc.c */
-#line 1102 "util/configparser.y"
+#line 1114 "util/configparser.y"
{
OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 &&
strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0
- && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0)
+ && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0 &&
+ strcmp((yyvsp[(3) - (3)].str), "inform")!=0)
yyerror("local-zone type: expected static, deny, "
"refuse, redirect, transparent, "
- "typetransparent or nodefault");
+ "typetransparent, inform or nodefault");
else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) {
if(!cfg_strlist_insert(&cfg_parser->cfg->
local_zones_nodefault, (yyvsp[(2) - (3)].str)))
@@ -3414,9 +3441,9 @@ yyreduce:
}
break;
- case 229:
+ case 231:
/* Line 1792 of yacc.c */
-#line 1124 "util/configparser.y"
+#line 1137 "util/configparser.y"
{
OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
@@ -3424,9 +3451,9 @@ yyreduce:
}
break;
- case 230:
+ case 232:
/* Line 1792 of yacc.c */
-#line 1131 "util/configparser.y"
+#line 1144 "util/configparser.y"
{
char* ptr;
OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
@@ -3442,9 +3469,9 @@ yyreduce:
}
break;
- case 231:
+ case 233:
/* Line 1792 of yacc.c */
-#line 1146 "util/configparser.y"
+#line 1159 "util/configparser.y"
{
OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3455,9 +3482,9 @@ yyreduce:
}
break;
- case 232:
+ case 234:
/* Line 1792 of yacc.c */
-#line 1156 "util/configparser.y"
+#line 1169 "util/configparser.y"
{
OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3468,9 +3495,9 @@ yyreduce:
}
break;
- case 233:
+ case 235:
/* Line 1792 of yacc.c */
-#line 1166 "util/configparser.y"
+#line 1179 "util/configparser.y"
{
OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str)));
cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str));
@@ -3478,9 +3505,9 @@ yyreduce:
}
break;
- case 234:
+ case 236:
/* Line 1792 of yacc.c */
-#line 1173 "util/configparser.y"
+#line 1186 "util/configparser.y"
{
OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->dns64_prefix);
@@ -3488,9 +3515,9 @@ yyreduce:
}
break;
- case 235:
+ case 237:
/* Line 1792 of yacc.c */
-#line 1180 "util/configparser.y"
+#line 1193 "util/configparser.y"
{
OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3500,9 +3527,9 @@ yyreduce:
}
break;
- case 236:
+ case 238:
/* Line 1792 of yacc.c */
-#line 1189 "util/configparser.y"
+#line 1202 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
if(cfg_parser->cfg->stubs->name)
@@ -3513,9 +3540,9 @@ yyreduce:
}
break;
- case 237:
+ case 239:
/* Line 1792 of yacc.c */
-#line 1199 "util/configparser.y"
+#line 1212 "util/configparser.y"
{
OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
@@ -3523,9 +3550,9 @@ yyreduce:
}
break;
- case 238:
+ case 240:
/* Line 1792 of yacc.c */
-#line 1206 "util/configparser.y"
+#line 1219 "util/configparser.y"
{
OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
@@ -3533,9 +3560,9 @@ yyreduce:
}
break;
- case 239:
+ case 241:
/* Line 1792 of yacc.c */
-#line 1213 "util/configparser.y"
+#line 1226 "util/configparser.y"
{
OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3545,9 +3572,9 @@ yyreduce:
}
break;
- case 240:
+ case 242:
/* Line 1792 of yacc.c */
-#line 1222 "util/configparser.y"
+#line 1235 "util/configparser.y"
{
OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3558,9 +3585,9 @@ yyreduce:
}
break;
- case 241:
+ case 243:
/* Line 1792 of yacc.c */
-#line 1232 "util/configparser.y"
+#line 1245 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
if(cfg_parser->cfg->forwards->name)
@@ -3571,9 +3598,9 @@ yyreduce:
}
break;
- case 242:
+ case 244:
/* Line 1792 of yacc.c */
-#line 1242 "util/configparser.y"
+#line 1255 "util/configparser.y"
{
OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
@@ -3581,9 +3608,9 @@ yyreduce:
}
break;
- case 243:
+ case 245:
/* Line 1792 of yacc.c */
-#line 1249 "util/configparser.y"
+#line 1262 "util/configparser.y"
{
OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
@@ -3591,9 +3618,9 @@ yyreduce:
}
break;
- case 244:
+ case 246:
/* Line 1792 of yacc.c */
-#line 1256 "util/configparser.y"
+#line 1269 "util/configparser.y"
{
OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3603,17 +3630,17 @@ yyreduce:
}
break;
- case 245:
+ case 247:
/* Line 1792 of yacc.c */
-#line 1265 "util/configparser.y"
+#line 1278 "util/configparser.y"
{
OUTYY(("\nP(remote-control:)\n"));
}
break;
- case 255:
+ case 258:
/* Line 1792 of yacc.c */
-#line 1276 "util/configparser.y"
+#line 1289 "util/configparser.y"
{
OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3624,9 +3651,9 @@ yyreduce:
}
break;
- case 256:
+ case 259:
/* Line 1792 of yacc.c */
-#line 1286 "util/configparser.y"
+#line 1299 "util/configparser.y"
{
OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
if(atoi((yyvsp[(2) - (2)].str)) == 0)
@@ -3636,9 +3663,9 @@ yyreduce:
}
break;
- case 257:
+ case 260:
/* Line 1792 of yacc.c */
-#line 1295 "util/configparser.y"
+#line 1308 "util/configparser.y"
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
@@ -3646,9 +3673,22 @@ yyreduce:
}
break;
- case 258:
+ case 261:
+/* Line 1792 of yacc.c */
+#line 1315 "util/configparser.y"
+ {
+ OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str)));
+ if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->remote_control_use_cert =
+ (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
+ free((yyvsp[(2) - (2)].str));
+ }
+ break;
+
+ case 262:
/* Line 1792 of yacc.c */
-#line 1302 "util/configparser.y"
+#line 1325 "util/configparser.y"
{
OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->server_key_file);
@@ -3656,9 +3696,9 @@ yyreduce:
}
break;
- case 259:
+ case 263:
/* Line 1792 of yacc.c */
-#line 1309 "util/configparser.y"
+#line 1332 "util/configparser.y"
{
OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->server_cert_file);
@@ -3666,9 +3706,9 @@ yyreduce:
}
break;
- case 260:
+ case 264:
/* Line 1792 of yacc.c */
-#line 1316 "util/configparser.y"
+#line 1339 "util/configparser.y"
{
OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->control_key_file);
@@ -3676,9 +3716,9 @@ yyreduce:
}
break;
- case 261:
+ case 265:
/* Line 1792 of yacc.c */
-#line 1323 "util/configparser.y"
+#line 1346 "util/configparser.y"
{
OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->control_cert_file);
@@ -3686,17 +3726,17 @@ yyreduce:
}
break;
- case 262:
+ case 266:
/* Line 1792 of yacc.c */
-#line 1330 "util/configparser.y"
+#line 1353 "util/configparser.y"
{
OUTYY(("\nP(dnstap:)\n"));
}
break;
- case 277:
+ case 281:
/* Line 1792 of yacc.c */
-#line 1347 "util/configparser.y"
+#line 1370 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3705,9 +3745,9 @@ yyreduce:
}
break;
- case 278:
+ case 282:
/* Line 1792 of yacc.c */
-#line 1355 "util/configparser.y"
+#line 1378 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->dnstap_socket_path);
@@ -3715,9 +3755,9 @@ yyreduce:
}
break;
- case 279:
+ case 283:
/* Line 1792 of yacc.c */
-#line 1362 "util/configparser.y"
+#line 1385 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3726,9 +3766,9 @@ yyreduce:
}
break;
- case 280:
+ case 284:
/* Line 1792 of yacc.c */
-#line 1370 "util/configparser.y"
+#line 1393 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3737,9 +3777,9 @@ yyreduce:
}
break;
- case 281:
+ case 285:
/* Line 1792 of yacc.c */
-#line 1378 "util/configparser.y"
+#line 1401 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->dnstap_identity);
@@ -3747,9 +3787,9 @@ yyreduce:
}
break;
- case 282:
+ case 286:
/* Line 1792 of yacc.c */
-#line 1385 "util/configparser.y"
+#line 1408 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->dnstap_version);
@@ -3757,9 +3797,9 @@ yyreduce:
}
break;
- case 283:
+ case 287:
/* Line 1792 of yacc.c */
-#line 1392 "util/configparser.y"
+#line 1415 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3769,9 +3809,9 @@ yyreduce:
}
break;
- case 284:
+ case 288:
/* Line 1792 of yacc.c */
-#line 1401 "util/configparser.y"
+#line 1424 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3781,9 +3821,9 @@ yyreduce:
}
break;
- case 285:
+ case 289:
/* Line 1792 of yacc.c */
-#line 1410 "util/configparser.y"
+#line 1433 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3793,9 +3833,9 @@ yyreduce:
}
break;
- case 286:
+ case 290:
/* Line 1792 of yacc.c */
-#line 1419 "util/configparser.y"
+#line 1442 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3805,9 +3845,9 @@ yyreduce:
}
break;
- case 287:
+ case 291:
/* Line 1792 of yacc.c */
-#line 1428 "util/configparser.y"
+#line 1451 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3817,9 +3857,9 @@ yyreduce:
}
break;
- case 288:
+ case 292:
/* Line 1792 of yacc.c */
-#line 1437 "util/configparser.y"
+#line 1460 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str)));
if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
@@ -3829,17 +3869,17 @@ yyreduce:
}
break;
- case 289:
+ case 293:
/* Line 1792 of yacc.c */
-#line 1446 "util/configparser.y"
+#line 1469 "util/configparser.y"
{
OUTYY(("\nP(python:)\n"));
}
break;
- case 293:
+ case 297:
/* Line 1792 of yacc.c */
-#line 1455 "util/configparser.y"
+#line 1478 "util/configparser.y"
{
OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
free(cfg_parser->cfg->python_script);
@@ -3849,7 +3889,7 @@ yyreduce:
/* Line 1792 of yacc.c */
-#line 3853 "util/configparser.c"
+#line 3893 "util/configparser.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4081,7 +4121,7 @@ yyreturn:
/* Line 2055 of yacc.c */
-#line 1460 "util/configparser.y"
+#line 1483 "util/configparser.y"
/* parse helper routines could be here */
diff --git a/util/configparser.h b/util/configparser.h
index e0a2b4f78bf4..95b6f640e402 100644
--- a/util/configparser.h
+++ b/util/configparser.h
@@ -139,59 +139,61 @@ extern int yydebug;
VAR_SERVER_CERT_FILE = 348,
VAR_CONTROL_KEY_FILE = 349,
VAR_CONTROL_CERT_FILE = 350,
- VAR_EXTENDED_STATISTICS = 351,
- VAR_LOCAL_DATA_PTR = 352,
- VAR_JOSTLE_TIMEOUT = 353,
- VAR_STUB_PRIME = 354,
- VAR_UNWANTED_REPLY_THRESHOLD = 355,
- VAR_LOG_TIME_ASCII = 356,
- VAR_DOMAIN_INSECURE = 357,
- VAR_PYTHON = 358,
- VAR_PYTHON_SCRIPT = 359,
- VAR_VAL_SIG_SKEW_MIN = 360,
- VAR_VAL_SIG_SKEW_MAX = 361,
- VAR_CACHE_MIN_TTL = 362,
- VAR_VAL_LOG_LEVEL = 363,
- VAR_AUTO_TRUST_ANCHOR_FILE = 364,
- VAR_KEEP_MISSING = 365,
- VAR_ADD_HOLDDOWN = 366,
- VAR_DEL_HOLDDOWN = 367,
- VAR_SO_RCVBUF = 368,
- VAR_EDNS_BUFFER_SIZE = 369,
- VAR_PREFETCH = 370,
- VAR_PREFETCH_KEY = 371,
- VAR_SO_SNDBUF = 372,
- VAR_SO_REUSEPORT = 373,
- VAR_HARDEN_BELOW_NXDOMAIN = 374,
- VAR_IGNORE_CD_FLAG = 375,
- VAR_LOG_QUERIES = 376,
- VAR_TCP_UPSTREAM = 377,
- VAR_SSL_UPSTREAM = 378,
- VAR_SSL_SERVICE_KEY = 379,
- VAR_SSL_SERVICE_PEM = 380,
- VAR_SSL_PORT = 381,
- VAR_FORWARD_FIRST = 382,
- VAR_STUB_FIRST = 383,
- VAR_MINIMAL_RESPONSES = 384,
- VAR_RRSET_ROUNDROBIN = 385,
- VAR_MAX_UDP_SIZE = 386,
- VAR_DELAY_CLOSE = 387,
- VAR_UNBLOCK_LAN_ZONES = 388,
- VAR_DNS64_PREFIX = 389,
- VAR_DNS64_SYNTHALL = 390,
- VAR_DNSTAP = 391,
- VAR_DNSTAP_ENABLE = 392,
- VAR_DNSTAP_SOCKET_PATH = 393,
- VAR_DNSTAP_SEND_IDENTITY = 394,
- VAR_DNSTAP_SEND_VERSION = 395,
- VAR_DNSTAP_IDENTITY = 396,
- VAR_DNSTAP_VERSION = 397,
- VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 398,
- VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 399,
- VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 400,
- VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 401,
- VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 402,
- VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 403
+ VAR_CONTROL_USE_CERT = 351,
+ VAR_EXTENDED_STATISTICS = 352,
+ VAR_LOCAL_DATA_PTR = 353,
+ VAR_JOSTLE_TIMEOUT = 354,
+ VAR_STUB_PRIME = 355,
+ VAR_UNWANTED_REPLY_THRESHOLD = 356,
+ VAR_LOG_TIME_ASCII = 357,
+ VAR_DOMAIN_INSECURE = 358,
+ VAR_PYTHON = 359,
+ VAR_PYTHON_SCRIPT = 360,
+ VAR_VAL_SIG_SKEW_MIN = 361,
+ VAR_VAL_SIG_SKEW_MAX = 362,
+ VAR_CACHE_MIN_TTL = 363,
+ VAR_VAL_LOG_LEVEL = 364,
+ VAR_AUTO_TRUST_ANCHOR_FILE = 365,
+ VAR_KEEP_MISSING = 366,
+ VAR_ADD_HOLDDOWN = 367,
+ VAR_DEL_HOLDDOWN = 368,
+ VAR_SO_RCVBUF = 369,
+ VAR_EDNS_BUFFER_SIZE = 370,
+ VAR_PREFETCH = 371,
+ VAR_PREFETCH_KEY = 372,
+ VAR_SO_SNDBUF = 373,
+ VAR_SO_REUSEPORT = 374,
+ VAR_HARDEN_BELOW_NXDOMAIN = 375,
+ VAR_IGNORE_CD_FLAG = 376,
+ VAR_LOG_QUERIES = 377,
+ VAR_TCP_UPSTREAM = 378,
+ VAR_SSL_UPSTREAM = 379,
+ VAR_SSL_SERVICE_KEY = 380,
+ VAR_SSL_SERVICE_PEM = 381,
+ VAR_SSL_PORT = 382,
+ VAR_FORWARD_FIRST = 383,
+ VAR_STUB_FIRST = 384,
+ VAR_MINIMAL_RESPONSES = 385,
+ VAR_RRSET_ROUNDROBIN = 386,
+ VAR_MAX_UDP_SIZE = 387,
+ VAR_DELAY_CLOSE = 388,
+ VAR_UNBLOCK_LAN_ZONES = 389,
+ VAR_INFRA_CACHE_MIN_RTT = 390,
+ VAR_DNS64_PREFIX = 391,
+ VAR_DNS64_SYNTHALL = 392,
+ VAR_DNSTAP = 393,
+ VAR_DNSTAP_ENABLE = 394,
+ VAR_DNSTAP_SOCKET_PATH = 395,
+ VAR_DNSTAP_SEND_IDENTITY = 396,
+ VAR_DNSTAP_SEND_VERSION = 397,
+ VAR_DNSTAP_IDENTITY = 398,
+ VAR_DNSTAP_VERSION = 399,
+ VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400,
+ VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401,
+ VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402,
+ VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403,
+ VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404,
+ VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405
};
#endif
/* Tokens. */
@@ -288,59 +290,61 @@ extern int yydebug;
#define VAR_SERVER_CERT_FILE 348
#define VAR_CONTROL_KEY_FILE 349
#define VAR_CONTROL_CERT_FILE 350
-#define VAR_EXTENDED_STATISTICS 351
-#define VAR_LOCAL_DATA_PTR 352
-#define VAR_JOSTLE_TIMEOUT 353
-#define VAR_STUB_PRIME 354
-#define VAR_UNWANTED_REPLY_THRESHOLD 355
-#define VAR_LOG_TIME_ASCII 356
-#define VAR_DOMAIN_INSECURE 357
-#define VAR_PYTHON 358
-#define VAR_PYTHON_SCRIPT 359
-#define VAR_VAL_SIG_SKEW_MIN 360
-#define VAR_VAL_SIG_SKEW_MAX 361
-#define VAR_CACHE_MIN_TTL 362
-#define VAR_VAL_LOG_LEVEL 363
-#define VAR_AUTO_TRUST_ANCHOR_FILE 364
-#define VAR_KEEP_MISSING 365
-#define VAR_ADD_HOLDDOWN 366
-#define VAR_DEL_HOLDDOWN 367
-#define VAR_SO_RCVBUF 368
-#define VAR_EDNS_BUFFER_SIZE 369
-#define VAR_PREFETCH 370
-#define VAR_PREFETCH_KEY 371
-#define VAR_SO_SNDBUF 372
-#define VAR_SO_REUSEPORT 373
-#define VAR_HARDEN_BELOW_NXDOMAIN 374
-#define VAR_IGNORE_CD_FLAG 375
-#define VAR_LOG_QUERIES 376
-#define VAR_TCP_UPSTREAM 377
-#define VAR_SSL_UPSTREAM 378
-#define VAR_SSL_SERVICE_KEY 379
-#define VAR_SSL_SERVICE_PEM 380
-#define VAR_SSL_PORT 381
-#define VAR_FORWARD_FIRST 382
-#define VAR_STUB_FIRST 383
-#define VAR_MINIMAL_RESPONSES 384
-#define VAR_RRSET_ROUNDROBIN 385
-#define VAR_MAX_UDP_SIZE 386
-#define VAR_DELAY_CLOSE 387
-#define VAR_UNBLOCK_LAN_ZONES 388
-#define VAR_DNS64_PREFIX 389
-#define VAR_DNS64_SYNTHALL 390
-#define VAR_DNSTAP 391
-#define VAR_DNSTAP_ENABLE 392
-#define VAR_DNSTAP_SOCKET_PATH 393
-#define VAR_DNSTAP_SEND_IDENTITY 394
-#define VAR_DNSTAP_SEND_VERSION 395
-#define VAR_DNSTAP_IDENTITY 396
-#define VAR_DNSTAP_VERSION 397
-#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 398
-#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 399
-#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 400
-#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 401
-#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 402
-#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 403
+#define VAR_CONTROL_USE_CERT 351
+#define VAR_EXTENDED_STATISTICS 352
+#define VAR_LOCAL_DATA_PTR 353
+#define VAR_JOSTLE_TIMEOUT 354
+#define VAR_STUB_PRIME 355
+#define VAR_UNWANTED_REPLY_THRESHOLD 356
+#define VAR_LOG_TIME_ASCII 357
+#define VAR_DOMAIN_INSECURE 358
+#define VAR_PYTHON 359
+#define VAR_PYTHON_SCRIPT 360
+#define VAR_VAL_SIG_SKEW_MIN 361
+#define VAR_VAL_SIG_SKEW_MAX 362
+#define VAR_CACHE_MIN_TTL 363
+#define VAR_VAL_LOG_LEVEL 364
+#define VAR_AUTO_TRUST_ANCHOR_FILE 365
+#define VAR_KEEP_MISSING 366
+#define VAR_ADD_HOLDDOWN 367
+#define VAR_DEL_HOLDDOWN 368
+#define VAR_SO_RCVBUF 369
+#define VAR_EDNS_BUFFER_SIZE 370
+#define VAR_PREFETCH 371
+#define VAR_PREFETCH_KEY 372
+#define VAR_SO_SNDBUF 373
+#define VAR_SO_REUSEPORT 374
+#define VAR_HARDEN_BELOW_NXDOMAIN 375
+#define VAR_IGNORE_CD_FLAG 376
+#define VAR_LOG_QUERIES 377
+#define VAR_TCP_UPSTREAM 378
+#define VAR_SSL_UPSTREAM 379
+#define VAR_SSL_SERVICE_KEY 380
+#define VAR_SSL_SERVICE_PEM 381
+#define VAR_SSL_PORT 382
+#define VAR_FORWARD_FIRST 383
+#define VAR_STUB_FIRST 384
+#define VAR_MINIMAL_RESPONSES 385
+#define VAR_RRSET_ROUNDROBIN 386
+#define VAR_MAX_UDP_SIZE 387
+#define VAR_DELAY_CLOSE 388
+#define VAR_UNBLOCK_LAN_ZONES 389
+#define VAR_INFRA_CACHE_MIN_RTT 390
+#define VAR_DNS64_PREFIX 391
+#define VAR_DNS64_SYNTHALL 392
+#define VAR_DNSTAP 393
+#define VAR_DNSTAP_ENABLE 394
+#define VAR_DNSTAP_SOCKET_PATH 395
+#define VAR_DNSTAP_SEND_IDENTITY 396
+#define VAR_DNSTAP_SEND_VERSION 397
+#define VAR_DNSTAP_IDENTITY 398
+#define VAR_DNSTAP_VERSION 399
+#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 400
+#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 401
+#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 402
+#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 403
+#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 404
+#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 405
@@ -354,7 +358,7 @@ typedef union YYSTYPE
/* Line 2058 of yacc.c */
-#line 358 "util/configparser.h"
+#line 362 "util/configparser.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/util/configparser.y b/util/configparser.y
index cbb5e16bd813..396ea3c64d64 100644
--- a/util/configparser.y
+++ b/util/configparser.y
@@ -107,6 +107,7 @@ extern struct config_parser_state* cfg_parser;
%token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST
%token VAR_STUB_FIRST VAR_MINIMAL_RESPONSES VAR_RRSET_ROUNDROBIN
%token VAR_MAX_UDP_SIZE VAR_DELAY_CLOSE VAR_UNBLOCK_LAN_ZONES
+%token VAR_INFRA_CACHE_MIN_RTT
%token VAR_DNS64_PREFIX VAR_DNS64_SYNTHALL
%token VAR_DNSTAP VAR_DNSTAP_ENABLE VAR_DNSTAP_SOCKET_PATH
%token VAR_DNSTAP_SEND_IDENTITY VAR_DNSTAP_SEND_VERSION
@@ -175,7 +176,8 @@ content_server: server_num_threads | server_verbosity | server_port |
server_ssl_service_key | server_ssl_service_pem | server_ssl_port |
server_minimal_responses | server_rrset_roundrobin | server_max_udp_size |
server_so_reuseport | server_delay_close | server_unblock_lan_zones |
- server_dns64_prefix | server_dns64_synthall
+ server_dns64_prefix | server_dns64_synthall |
+ server_infra_cache_min_rtt
;
stubstart: VAR_STUB_ZONE
{
@@ -768,6 +770,15 @@ server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG
free($2);
}
;
+server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG
+ {
+ OUTYY(("P(server_infra_cache_min_rtt:%s)\n", $2));
+ if(atoi($2) == 0 && strcmp($2, "0") != 0)
+ yyerror("number expected");
+ else cfg_parser->cfg->infra_cache_min_rtt = atoi($2);
+ free($2);
+ }
+ ;
server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG
{
OUTYY(("P(server_target_fetch_policy:%s)\n", $2));
@@ -1105,10 +1116,11 @@ server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG
if(strcmp($3, "static")!=0 && strcmp($3, "deny")!=0 &&
strcmp($3, "refuse")!=0 && strcmp($3, "redirect")!=0 &&
strcmp($3, "transparent")!=0 && strcmp($3, "nodefault")!=0
- && strcmp($3, "typetransparent")!=0)
+ && strcmp($3, "typetransparent")!=0 &&
+ strcmp($3, "inform")!=0)
yyerror("local-zone type: expected static, deny, "
"refuse, redirect, transparent, "
- "typetransparent or nodefault");
+ "typetransparent, inform or nodefault");
else if(strcmp($3, "nodefault")==0) {
if(!cfg_strlist_insert(&cfg_parser->cfg->
local_zones_nodefault, $2))
diff --git a/util/iana_ports.inc b/util/iana_ports.inc
index d318477e56f4..99e5a6543518 100644
--- a/util/iana_ports.inc
+++ b/util/iana_ports.inc
@@ -3819,6 +3819,7 @@
4359,
4361,
4362,
+4366,
4368,
4369,
4370,
@@ -4399,6 +4400,7 @@
6163,
6200,
6201,
+6209,
6222,
6241,
6242,
@@ -4488,6 +4490,8 @@
6628,
6633,
6634,
+6635,
+6636,
6653,
6657,
6670,
@@ -4671,6 +4675,7 @@
7778,
7779,
7781,
+7784,
7786,
7787,
7789,
diff --git a/util/net_help.c b/util/net_help.c
index 335ee7499e7d..e2b7c38783ab 100644
--- a/util/net_help.c
+++ b/util/net_help.c
@@ -156,7 +156,12 @@ log_addr(enum verbosity_value v, const char* str,
case AF_INET6: family="ip6";
sinaddr = &((struct sockaddr_in6*)addr)->sin6_addr;
break;
- case AF_LOCAL: family="local"; break;
+ case AF_LOCAL:
+ dest[0]=0;
+ (void)inet_ntop(af, sinaddr, dest,
+ (socklen_t)sizeof(dest));
+ verbose(v, "%s local %s", str, dest);
+ return; /* do not continue and try to get port */
default: break;
}
if(inet_ntop(af, sinaddr, dest, (socklen_t)sizeof(dest)) == 0) {
diff --git a/util/rtt.c b/util/rtt.c
index 4b44fca5060e..5d86f13378e5 100644
--- a/util/rtt.c
+++ b/util/rtt.c
@@ -42,6 +42,8 @@
#include "config.h"
#include "util/rtt.h"
+/* overwritten by config: infra_cache_min_rtt: */
+int RTT_MIN_TIMEOUT = 50;
/** calculate RTO from rtt information */
static int
calc_rto(const struct rtt_info* rtt)
diff --git a/util/rtt.h b/util/rtt.h
index 57e904d1407f..d6da98606502 100644
--- a/util/rtt.h
+++ b/util/rtt.h
@@ -56,7 +56,7 @@ struct rtt_info {
};
/** min retransmit timeout value, in milliseconds */
-#define RTT_MIN_TIMEOUT 50
+extern int RTT_MIN_TIMEOUT;
/** max retransmit timeout value, in milliseconds */
#define RTT_MAX_TIMEOUT 120000
diff --git a/validator/val_secalgo.c b/validator/val_secalgo.c
index d89675f835b0..3437c8da6047 100644
--- a/validator/val_secalgo.c
+++ b/validator/val_secalgo.c
@@ -41,8 +41,9 @@
* and do the library calls (for the crypto library in use).
*/
#include "config.h"
-#include "validator/val_secalgo.h"
+/* packed_rrset on top to define enum types (forced by c99 standard) */
#include "util/data/packed_rrset.h"
+#include "validator/val_secalgo.h"
#include "util/log.h"
#include "ldns/rrdef.h"
#include "ldns/keyraw.h"
diff --git a/validator/val_utils.c b/validator/val_utils.c
index ecf2dfaf05c8..475b0c9054e0 100644
--- a/validator/val_utils.c
+++ b/validator/val_utils.c
@@ -846,6 +846,18 @@ val_fill_reply(struct reply_info* chase, struct reply_info* orig,
chase->ar_numrrsets;
}
+void val_reply_remove_auth(struct reply_info* rep, size_t index)
+{
+ log_assert(index < rep->rrset_count);
+ log_assert(index >= rep->an_numrrsets);
+ log_assert(index < rep->an_numrrsets+rep->ns_numrrsets);
+ memmove(rep->rrsets+index, rep->rrsets+index+1,
+ sizeof(struct ub_packed_rrset_key*)*
+ (rep->rrset_count - index - 1));
+ rep->ns_numrrsets--;
+ rep->rrset_count--;
+}
+
void
val_check_nonsecure(struct val_env* ve, struct reply_info* rep)
{
diff --git a/validator/val_utils.h b/validator/val_utils.h
index b0344eff7de9..cdb87697e1c2 100644
--- a/validator/val_utils.h
+++ b/validator/val_utils.h
@@ -295,6 +295,13 @@ void val_fill_reply(struct reply_info* chase, struct reply_info* orig,
size_t cname_skip, uint8_t* name, size_t len, uint8_t* signer);
/**
+ * Remove rrset with index from reply, from the authority section.
+ * @param rep: reply to remove it from.
+ * @param index: rrset to remove, must be in the authority section.
+ */
+void val_reply_remove_auth(struct reply_info* rep, size_t index);
+
+/**
* Remove all unsigned or non-secure status rrsets from NS and AR sections.
* So that unsigned data does not get let through to clients, when we have
* found the data to be secure.
diff --git a/validator/validator.c b/validator/validator.c
index 9d5d5c390254..cc07cc2b1525 100644
--- a/validator/validator.c
+++ b/validator/validator.c
@@ -574,6 +574,61 @@ detect_wrongly_truncated(struct reply_info* rep)
return 1;
}
+/**
+ * For messages that are not referrals, if the chase reply contains an
+ * unsigned NS record in the authority section it could have been
+ * inserted by a (BIND) forwarder that thinks the zone is insecure, and
+ * that has an NS record without signatures in cache. Remove the NS
+ * record since the reply does not hinge on that record (in the authority
+ * section), but do not remove it if it removes the last record from the
+ * answer+authority sections.
+ * @param chase_reply: the chased reply, we have a key for this contents,
+ * so we should have signatures for these rrsets and not having
+ * signatures means it will be bogus.
+ * @param orig_reply: original reply, remove NS from there as well because
+ * we cannot mark the NS record as DNSSEC valid because it is not
+ * validated by signatures.
+ */
+static void
+remove_spurious_authority(struct reply_info* chase_reply,
+ struct reply_info* orig_reply)
+{
+ size_t i, found = 0;
+ int remove = 0;
+ /* if no answer and only 1 auth RRset, do not remove that one */
+ if(chase_reply->an_numrrsets == 0 && chase_reply->ns_numrrsets == 1)
+ return;
+ /* search authority section for unsigned NS records */
+ for(i = chase_reply->an_numrrsets;
+ i < chase_reply->an_numrrsets+chase_reply->ns_numrrsets; i++) {
+ struct packed_rrset_data* d = (struct packed_rrset_data*)
+ chase_reply->rrsets[i]->entry.data;
+ if(ntohs(chase_reply->rrsets[i]->rk.type) == LDNS_RR_TYPE_NS
+ && d->rrsig_count == 0) {
+ found = i;
+ remove = 1;
+ break;
+ }
+ }
+ /* see if we found the entry */
+ if(!remove) return;
+ log_rrset_key(VERB_ALGO, "Removing spurious unsigned NS record "
+ "(likely inserted by forwarder)", chase_reply->rrsets[found]);
+
+ /* find rrset in orig_reply */
+ for(i = orig_reply->an_numrrsets;
+ i < orig_reply->an_numrrsets+orig_reply->ns_numrrsets; i++) {
+ if(ntohs(orig_reply->rrsets[i]->rk.type) == LDNS_RR_TYPE_NS
+ && query_dname_compare(orig_reply->rrsets[i]->rk.dname,
+ chase_reply->rrsets[found]->rk.dname) == 0) {
+ /* remove from orig_msg */
+ val_reply_remove_auth(orig_reply, i);
+ break;
+ }
+ }
+ /* remove rrset from chase_reply */
+ val_reply_remove_auth(chase_reply, found);
+}
/**
* Given a "positive" response -- a response that contains an answer to the
@@ -1642,6 +1697,8 @@ processValidate(struct module_qstate* qstate, struct val_qstate* vq,
}
subtype = val_classify_response(qstate->query_flags, &qstate->qinfo,
&vq->qchase, vq->orig_msg->rep, vq->rrset_skip);
+ if(subtype != VAL_CLASS_REFERRAL)
+ remove_spurious_authority(vq->chase_reply, vq->orig_msg->rep);
/* check signatures in the message;
* answer and authority must be valid, additional is only checked. */