Codebase list unbound / 379a902
New upstream version 1.7.2 Robert Edmonds 5 years ago
265 changed file(s) with 5419 addition(s) and 4638 deletion(s). Raw diff Collapse all Expand all
326326 $(LINK) -o $@ $(CONTROL_OBJ_LINK) $(EXTRALINK) $(SSLLIB) $(LIBS)
327327
328328 unbound-host$(EXEEXT): $(HOST_OBJ_LINK) libunbound.la
329 $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(LIBS)
329 $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(SSLLIB) $(LIBS)
330330
331331 unbound-anchor$(EXEEXT): $(UBANCHOR_OBJ_LINK) libunbound.la
332332 $(LINK) -o $@ $(UBANCHOR_OBJ_LINK) -L. -L.libs -lunbound -lexpat $(SSLLIB) $(LIBS)
359359 $(LINK) -o $@ $(MEMSTATS_OBJ_LINK) $(SSLLIB) $(LIBS)
360360
361361 asynclook$(EXEEXT): $(ASYNCLOOK_OBJ_LINK) libunbound.la
362 $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) $(LIBS) -L. -L.libs -lunbound
362 $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) -L. -L.libs -lunbound $(SSLLIB) $(LIBS)
363363
364364 streamtcp$(EXEEXT): $(STREAMTCP_OBJ_LINK)
365365 $(LINK) -o $@ $(STREAMTCP_OBJ_LINK) $(SSLLIB) $(LIBS)
14621462 $(srcdir)/util/data/msgparse.h $(srcdir)/sldns/pkthdr.h $(srcdir)/sldns/rrdef.h $(srcdir)/daemon/stats.h \
14631463 $(srcdir)/util/timehist.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/module.h $(srcdir)/dnstap/dnstap.h \
14641464 $(srcdir)/daemon/remote.h \
1465 $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h
1465 $(srcdir)/util/config_file.h $(srcdir)/util/ub_event.h $(srcdir)/util/net_help.h
14661466 w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h
14671467 unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \
14681468 $(srcdir)/winrc/w_inst.h
7070
7171 static inline void _rs_rekey(u_char *dat, size_t datlen);
7272
73 /*
74 * Basic sanity checking; wish we could do better.
75 */
76 static int
77 fallback_gotdata(char *buf, size_t len)
78 {
79 char any_set = 0;
80 size_t i;
81
82 for (i = 0; i < len; ++i)
83 any_set |= buf[i];
84 if (any_set == 0)
85 return -1;
86 return 0;
87 }
88
89 /* fallback for getentropy in case libc returns failure */
90 static int
91 fallback_getentropy_urandom(void *buf, size_t len)
92 {
93 size_t i;
94 int fd, flags;
95 int save_errno = errno;
96
97 start:
98
99 flags = O_RDONLY;
100 #ifdef O_NOFOLLOW
101 flags |= O_NOFOLLOW;
102 #endif
103 #ifdef O_CLOEXEC
104 flags |= O_CLOEXEC;
105 #endif
106 fd = open("/dev/urandom", flags, 0);
107 if (fd == -1) {
108 if (errno == EINTR)
109 goto start;
110 goto nodevrandom;
111 }
112 #ifndef O_CLOEXEC
113 # ifdef HAVE_FCNTL
114 fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
115 # endif
116 #endif
117 for (i = 0; i < len; ) {
118 size_t wanted = len - i;
119 ssize_t ret = read(fd, (char*)buf + i, wanted);
120
121 if (ret == -1) {
122 if (errno == EAGAIN || errno == EINTR)
123 continue;
124 close(fd);
125 goto nodevrandom;
126 }
127 i += ret;
128 }
129 close(fd);
130 if (fallback_gotdata(buf, len) == 0) {
131 errno = save_errno;
132 return 0; /* satisfied */
133 }
134 nodevrandom:
135 errno = EIO;
136 return -1;
137 }
138
73139 static inline void
74140 _rs_init(u_char *buf, size_t n)
75141 {
113179 u_char rnd[KEYSZ + IVSZ];
114180
115181 if (getentropy(rnd, sizeof rnd) == -1) {
182 if(errno != ENOSYS ||
183 fallback_getentropy_urandom(rnd, sizeof rnd) == -1) {
116184 #ifdef SIGKILL
117 raise(SIGKILL);
185 raise(SIGKILL);
118186 #else
119 exit(9); /* windows */
120 #endif
187 exit(9); /* windows */
188 #endif
189 }
121190 }
122191
123192 if (!rs)
2828 it for smaller install size, but the libunbound export table is polluted by
2929 internal symbols */
3030 #undef EXPORT_ALL_SYMBOLS
31
32 /* Define to 1 if you have the `accept4' function. */
33 #undef HAVE_ACCEPT4
3134
3235 /* Define to 1 if you have the `arc4random' function. */
3336 #undef HAVE_ARC4RANDOM
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for unbound 1.7.1.
2 # Generated by GNU Autoconf 2.69 for unbound 1.7.2.
33 #
44 # Report bugs to <unbound-bugs@nlnetlabs.nl>.
55 #
589589 # Identity of this package.
590590 PACKAGE_NAME='unbound'
591591 PACKAGE_TARNAME='unbound'
592 PACKAGE_VERSION='1.7.1'
593 PACKAGE_STRING='unbound 1.7.1'
592 PACKAGE_VERSION='1.7.2'
593 PACKAGE_STRING='unbound 1.7.2'
594594 PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl'
595595 PACKAGE_URL=''
596596
14391439 # Omit some internal or obsolete options to make the list less imposing.
14401440 # This message is too long to be a string in the A/UX 3.1 sh.
14411441 cat <<_ACEOF
1442 \`configure' configures unbound 1.7.1 to adapt to many kinds of systems.
1442 \`configure' configures unbound 1.7.2 to adapt to many kinds of systems.
14431443
14441444 Usage: $0 [OPTION]... [VAR=VALUE]...
14451445
15041504
15051505 if test -n "$ac_init_help"; then
15061506 case $ac_init_help in
1507 short | recursive ) echo "Configuration of unbound 1.7.1:";;
1507 short | recursive ) echo "Configuration of unbound 1.7.2:";;
15081508 esac
15091509 cat <<\_ACEOF
15101510
17211721 test -n "$ac_init_help" && exit $ac_status
17221722 if $ac_init_version; then
17231723 cat <<\_ACEOF
1724 unbound configure 1.7.1
1724 unbound configure 1.7.2
17251725 generated by GNU Autoconf 2.69
17261726
17271727 Copyright (C) 2012 Free Software Foundation, Inc.
24302430 This file contains any messages produced by compilers while
24312431 running configure, to aid debugging if configure makes a mistake.
24322432
2433 It was created by unbound $as_me 1.7.1, which was
2433 It was created by unbound $as_me 1.7.2, which was
24342434 generated by GNU Autoconf 2.69. Invocation command line was
24352435
24362436 $ $0 $@
27822782
27832783 UNBOUND_VERSION_MINOR=7
27842784
2785 UNBOUND_VERSION_MICRO=1
2785 UNBOUND_VERSION_MICRO=2
27862786
27872787
27882788 LIBUNBOUND_CURRENT=7
2789 LIBUNBOUND_REVISION=9
2789 LIBUNBOUND_REVISION=10
27902790 LIBUNBOUND_AGE=5
27912791 # 1.0.0 had 0:12:0
27922792 # 1.0.1 had 0:13:0
28472847 # 1.6.8 had 7:7:5
28482848 # 1.7.0 had 7:8:5
28492849 # 1.7.1 had 7:9:5
2850 # 1.7.2 had 7:10:5
28502851
28512852 # Current -- the number of the binary API that we're implementing
28522853 # Revision -- which iteration of the implementation of the binary
1946619467 WINDRES="$ac_cv_prog_WINDRES"
1946719468 fi
1946819469
19469 LIBS="$LIBS -liphlpapi"
19470 LIBS="$LIBS -liphlpapi -lcrypt32"
1947019471 WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
1947119472
1947219473 WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
1970019701
1970119702 fi
1970219703
19703 for ac_func in tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget
19704 for ac_func in tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4
1970419705 do :
1970519706 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
1970619707 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
2085320854 enableval=$enable_cachedb;
2085420855 fi
2085520856
20857 # turn on cachedb when hiredis support is enabled.
20858 if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
2085620859 case "$enable_cachedb" in
2085720860 yes)
2085820861
2104021043
2104121044
2104221045
21043 version=1.7.1
21046 version=1.7.2
2104421047
2104521048 date=`date +'%b %e, %Y'`
2104621049
2155921562 # report actual input values of CONFIG_FILES etc. instead of their
2156021563 # values after options handling.
2156121564 ac_log="
21562 This file was extended by unbound $as_me 1.7.1, which was
21565 This file was extended by unbound $as_me 1.7.2, which was
2156321566 generated by GNU Autoconf 2.69. Invocation command line was
2156421567
2156521568 CONFIG_FILES = $CONFIG_FILES
2162521628 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2162621629 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
2162721630 ac_cs_version="\\
21628 unbound config.status 1.7.1
21631 unbound config.status 1.7.2
2162921632 configured by $0, generated by GNU Autoconf 2.69,
2163021633 with options \\"\$ac_cs_config\\"
2163121634
1010 # must be numbers. ac_defun because of later processing
1111 m4_define([VERSION_MAJOR],[1])
1212 m4_define([VERSION_MINOR],[7])
13 m4_define([VERSION_MICRO],[1])
13 m4_define([VERSION_MICRO],[2])
1414 AC_INIT(unbound, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), unbound-bugs@nlnetlabs.nl, unbound)
1515 AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
1616 AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
1717 AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
1818
1919 LIBUNBOUND_CURRENT=7
20 LIBUNBOUND_REVISION=9
20 LIBUNBOUND_REVISION=10
2121 LIBUNBOUND_AGE=5
2222 # 1.0.0 had 0:12:0
2323 # 1.0.1 had 0:13:0
7878 # 1.6.8 had 7:7:5
7979 # 1.7.0 had 7:8:5
8080 # 1.7.1 had 7:9:5
81 # 1.7.2 had 7:10:5
8182
8283 # Current -- the number of the binary API that we're implementing
8384 # Revision -- which iteration of the implementation of the binary
12441245 #include <windows.h>
12451246 ])
12461247 AC_CHECK_TOOL(WINDRES, windres)
1247 LIBS="$LIBS -liphlpapi"
1248 LIBS="$LIBS -liphlpapi -lcrypt32"
12481249 WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
12491250 AC_SUBST(WINAPPS)
12501251 WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
13171318 #endif
13181319 ])
13191320 AC_SEARCH_LIBS([setusercontext], [util])
1320 AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget])
1321 AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam endpwent getrlimit setrlimit setsid chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync shmget accept4])
13211322 AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])])
13221323 AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])])
13231324
14871488
14881489 # check for cachedb if requested
14891490 AC_ARG_ENABLE(cachedb, AC_HELP_STRING([--enable-cachedb], [enable cachedb module that can use external cache storage]))
1491 # turn on cachedb when hiredis support is enabled.
1492 if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
14901493 case "$enable_cachedb" in
14911494 yes)
14921495 AC_DEFINE([USE_CACHEDB], [1], [Define to 1 to use cachedb support])
66 Description: Library with validating, recursive, and caching DNS resolver
77 URL: http://www.unbound.net
88 Version: @PACKAGE_VERSION@
9 Requires: libcrypto libssl @PC_LIBEVENT_DEPENDENCY@ @PC_PY_DEPENDENCY@
10 Libs: -L${libdir} -lunbound
9 Requires: @PC_LIBEVENT_DEPENDENCY@ @PC_PY_DEPENDENCY@
10 Libs: -L${libdir} -lunbound -lssl -lcrypto
1111 Libs.private: @SSLLIB@ @LIBS@
1212 Cflags: -I${includedir}
110110 control = acl_refuse_non_local;
111111 else if(strcmp(s2, "allow_snoop") == 0)
112112 control = acl_allow_snoop;
113 else if(strcmp(s2, "allow_setrd") == 0)
114 control = acl_allow_setrd;
113115 else {
114116 log_err("access control type %s unknown", str);
115117 return 0;
6262 /** allow full access for recursion (+RD) queries */
6363 acl_allow,
6464 /** allow full access for all queries, recursion and cache snooping */
65 acl_allow_snoop
65 acl_allow_snoop,
66 /** allow full access for recursion queries and set RD flag regardless of request */
67 acl_allow_setrd
6668 };
6769
6870 /**
703703 free(daemon->workers);
704704 daemon->workers = NULL;
705705 daemon->num = 0;
706 alloc_clear_special(&daemon->superalloc);
706707 #ifdef USE_DNSTAP
707708 dt_delete(daemon->dtenv);
708709 daemon->dtenv = NULL;
430430 fatal_exit("could not set up listen SSL_CTX");
431431 }
432432 if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL,
433 cfg->tls_cert_bundle)))
433 cfg->tls_cert_bundle, cfg->tls_win_cert)))
434434 fatal_exit("could not set up connect SSL_CTX");
435435 #endif
436436
13471347 if(ret == 1)
13481348 goto send_reply;
13491349 return ret;
1350 }
1351
1352 /* If this request does not have the recursion bit set, verify
1353 * ACLs allow the recursion bit to be treated as set. */
1354 if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
1355 acl == acl_allow_setrd ) {
1356 LDNS_RD_SET(sldns_buffer_begin(c->buffer));
13501357 }
13511358
13521359 /* If this request does not have the recursion bit set, verify
0 4 June 2018: Wouter
1 - Fix deadlock caused by incoming notify for auth-zone.
2 - tag for 1.7.2rc1
3
4 1 June 2018: Wouter
5 - Rename additional-tls-port to tls-additional-ports.
6 The older name is accepted for backwards compatibility.
7
8 30 May 2018: Wouter
9 - Patch from Syzdek: Add ability to ignore RD bit and treat all
10 requests as if the RD bit is set.
11
12 29 May 2018: Wouter
13 - in compat/arc4random call getentropy_urandom when getentropy fails
14 with ENOSYS.
15 - Fix that fallback for windows port.
16
17 28 May 2018: Wouter
18 - Fix windows tcp and tls spin on events.
19 - Add routine from getdns to add windows cert store to the SSL_CTX.
20 - tls-win-cert option that adds the system certificate store for
21 authenticating DNS-over-TLS connections. It can be used instead
22 of the tls-cert-bundle option, or with it to add certificates.
23
24 25 May 2018: Wouter
25 - For TCP and TLS connections that don't establish, perform address
26 update in infra cache, so future selections can exclude them.
27 - Fix that tcp sticky events are removed for closed fd on windows.
28 - Fix close events for tcp only.
29
30 24 May 2018: Wouter
31 - Fix that libunbound can do DNS-over-TLS, when configured.
32 - Fix that windows unbound service can use DNS-over-TLS.
33 - unbound-host initializes ssl (for potential DNS-over-TLS usage
34 inside libunbound), when ssl upstream or a cert-bundle is configured.
35
36 23 May 2018: Wouter
37 - Use accept4 to speed up incoming TCP (and TLS) connections,
38 available on Linux, FreeBSD and OpenBSD.
39
40 17 May 2018: Ralph
41 - Qname minimisation default changed to yes.
42
43 15 May 2018: Wouter
44 - Fix low-rtt-pct to low-rtt-permil, as it is parts in one thousand.
45
46 11 May 2018: Wouter
47 - Fix contrib/libunbound.pc for libssl libcrypto references,
48 from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226914
49
50 7 May 2018: Wouter
51 - Fix windows to not have sticky TLS events for TCP.
52 - Fix read of DNS over TLS length and data in one read call.
53 - Fix mesh state assertion failure due to callback removal.
54
55 3 May 2018: Wouter
56 - Fix that configure --with-libhiredis also turns on cachedb.
57 - Fix gcc 8 buffer warning in testcode.
58 - Fix function type cast warning in libunbound context callback type.
59
60 2 May 2018: Wouter
61 - Fix fail to reject dead peers in forward-zone, with ssl-upstream.
62
63 1 May 2018: Wouter
64 - Fix that unbound-control reload frees the rrset keys and returns
65 the memory pages to the system.
66
67 30 April 2018: Wouter
68 - Fix spelling error in man page and note defaults as no instead of
69 off.
70
071 26 April 2018: Wouter
172 - Fix for crash in daemon_cleanup with dnstap during reload,
273 from Saksham Manchanda.
374 - Also that for dnscrypt.
4 - tag for 1.7.1rc1 release.
75 - tag for 1.7.1rc1 release. Became 1.7.1 release on 3 May, trunk
76 is from here 1.7.2 in development.
577
678 25 April 2018: Ralph
779 - Fix memory leak when caching wildcard records for aggressive NSEC use
0 README for Unbound 1.7.1
0 README for Unbound 1.7.2
11 Copyright 2007 NLnet Labs
22 http://unbound.net
33
00 #
11 # Example configuration file.
22 #
3 # See unbound.conf(5) man page, version 1.7.1.
3 # See unbound.conf(5) man page, version 1.7.2.
44 #
55 # this is a comment.
66
222222 # to this server. Specify classless netblocks with /size and action.
223223 # By default everything is refused, except for localhost.
224224 # Choose deny (drop message), refuse (polite error reply),
225 # allow (recursive ok), allow_snoop (recursive and nonrecursive ok)
225 # allow (recursive ok), allow_setrd (recursive ok, rd bit is forced on),
226 # allow_snoop (recursive and nonrecursive ok)
226227 # deny_non_local (drop queries unless can be answered from local-data)
227228 # refuse_non_local (like deny_non_local but polite error reply).
228229 # access-control: 0.0.0.0/0 refuse
371372 # Sent minimum amount of information to upstream servers to enhance
372373 # privacy. Only sent minimum required labels of the QNAME and set QTYPE
373374 # to A when possible.
374 # qname-minimisation: no
375 # qname-minimisation: yes
375376
376377 # QNAME minimisation in strict mode. Do not fall-back to sending full
377378 # QNAME to potentially broken nameservers. A lot of domains will not be
680681 # Certificates used to authenticate connections made upstream.
681682 # tls-cert-bundle: ""
682683
684 # Add system certs to the cert bundle, from the Windows Cert Store
685 # tls-win-cert: no
686
683687 # Also serve tls on these port numbers (eg. 443, ...), by listing
684 # additional-tls-port: portno for each of the port numbers.
688 # tls-additional-ports: portno for each of the port numbers.
685689
686690 # DNS64 prefix. Must be specified when DNS64 is use.
687691 # Enable dns64 in module-config. Used to synthesize IPv6 from IPv4.
724728 # low-rtt: 45
725729 # select low rtt this many times out of 1000. 0 means the fast server
726730 # select is disabled. prefetches are not sped up.
727 # low-rtt-pct: 0
731 # low-rtt-permil: 0
728732
729733 # Specific options for ipsecmod. unbound needs to be configured with
730734 # --enable-ipsecmod for these to take effect.
0 .TH "libunbound" "3" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "libunbound" "3" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" libunbound.3 -- unbound library functions manual
33 .\"
4242 .B ub_ctx_zone_remove,
4343 .B ub_ctx_data_add,
4444 .B ub_ctx_data_remove
45 \- Unbound DNS validating resolver 1.7.1 functions.
45 \- Unbound DNS validating resolver 1.7.2 functions.
4646 .SH "SYNOPSIS"
4747 .B #include <unbound.h>
4848 .LP
0 .TH "unbound-anchor" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "unbound-anchor" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" unbound-anchor.8 -- unbound anchor maintenance utility manual
33 .\"
0 .TH "unbound-checkconf" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "unbound-checkconf" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" unbound-checkconf.8 -- unbound configuration checker manual
33 .\"
0 .TH "unbound-control" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "unbound-control" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" unbound-control.8 -- unbound remote control manual
33 .\"
0 .TH "unbound\-host" "1" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "unbound\-host" "1" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" unbound-host.1 -- unbound DNS lookup utility
33 .\"
0 .TH "unbound" "8" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "unbound" "8" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" unbound.8 -- unbound manual
33 .\"
88 .\"
99 .SH "NAME"
1010 .B unbound
11 \- Unbound DNS validating resolver 1.7.1.
11 \- Unbound DNS validating resolver 1.7.2.
1212 .SH "SYNOPSIS"
1313 .B unbound
1414 .RB [ \-h ]
0 .TH "unbound.conf" "5" "May 3, 2018" "NLnet Labs" "unbound 1.7.1"
0 .TH "unbound.conf" "5" "Jun 11, 2018" "NLnet Labs" "unbound 1.7.2"
11 .\"
22 .\" unbound.conf.5 -- unbound.conf manual
33 .\"
402402 Default is no. Useful in tunneling scenarios. The TLS contains plain DNS in
403403 TCP wireformat. The other server must support this (see
404404 \fBtls\-service\-key\fR).
405 If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to
406 load CA certs, otherwise the connections cannot be authenticated.
405407 .TP
406408 .B ssl\-upstream: \fI<yes or no>
407409 Alternate syntax for \fBtls\-upstream\fR. If both are present in the config
443445 .B ssl\-cert\-bundle: \fI<file>
444446 Alternate syntax for \fBtls\-cert\-bundle\fR.
445447 .TP
446 .B additional\-tls\-port: \fI<portnr>
447 List portnumbers as additional\-tls\-port, and when interfaces are defined,
448 .B tls\-win\-cert: \fI<yes or no>
449 Add the system certificates to the cert bundle certificates for authentication.
450 If no cert bundle, it uses only these certificates. Default is no.
451 On windows this option uses the certificates from the cert store. Use
452 the tls\-cert\-bundle option on other systems.
453 .TP
454 .B tls\-additional\-ports: \fI<portnr>
455 List portnumbers as tls\-additional\-ports, and when interfaces are defined,
448456 eg. with the @port suffix, as this port number, they provide dns over TLS
449457 service. Can list multiple, each on a new statement.
450458 .TP
460468 .B access\-control: \fI<IP netblock> <action>
461469 The netblock is given as an IP4 or IP6 address with /size appended for a
462470 classless network block. The action can be \fIdeny\fR, \fIrefuse\fR,
463 \fIallow\fR, \fIallow_snoop\fR, \fIdeny_non_local\fR or \fIrefuse_non_local\fR.
471 \fIallow\fR, \fIallow_setrd\fR, \fIallow_snoop\fR, \fIdeny_non_local\fR or
472 \fIrefuse_non_local\fR.
464473 The most specific netblock match is used, if none match \fIdeny\fR is used.
465474 .IP
466475 The action \fIdeny\fR stops queries from hosts from that netblock.
478487 in the reply. This supports normal operations where nonrecursive queries
479488 are made for the authoritative data. For nonrecursive queries any replies
480489 from the dynamic cache are refused.
490 .IP
491 The \fIallow_setrd\fR action ignores the recursion desired (RD) bit and
492 treats all requests as if the recursion desired bit is set. Note that this
493 behavior violates RFC 1034 which states that a name server should never perform
494 recursive service unless asked via the RD bit since this interferes with
495 trouble shooting of name servers and their databases. This prohibited behavior
496 may be useful if another DNS server must forward requests for specific
497 zones to a resolver DNS server, but only supports stub domains and
498 sends queries to the resolver DNS server with the RD bit cleared.
481499 .IP
482500 The action \fIallow_snoop\fR gives nonrecursive access too. This give
483501 both recursive and non recursive access. The name \fIallow_snoop\fR refers
690708 and the zones are signed. This enforces DNSSEC validation on nameserver
691709 NS sets and the nameserver addresses that are encountered on the referral
692710 path to the answer.
693 Default off, because it burdens the authority servers, and it is
711 Default no, because it burdens the authority servers, and it is
694712 not RFC standard, and could lead to performance problems because of the
695713 extra query load that is generated. Experimental option.
696714 If you enable it consider adding more numbers after the target\-fetch\-policy
721739 Only sent minimum required labels of the QNAME and set QTYPE to A when
722740 possible. Best effort approach; full QNAME and original QTYPE will be sent when
723741 upstream replies with a RCODE other than NOERROR, except when receiving
724 NXDOMAIN from a DNSSEC signed zone. Default is off.
742 NXDOMAIN from a DNSSEC signed zone. Default is yes.
725743 .TP
726744 .B qname\-minimisation\-strict: \fI<yes or no>
727745 QNAME minimisation in strict mode. Do not fall-back to sending full QNAME to
13141332 .TP 5
13151333 .B low\-rtt: \fI<msec time>
13161334 Set the time in millisecond that is considere a low ping time for fast
1317 server selection with the low\-rtt\-pct option, that turns this on or off.
1335 server selection with the low\-rtt\-permil option, that turns this on or off.
13181336 The default is 45 msec, a number from IPv6 quick response documents.
13191337 .TP 5
1320 .B low\-rtt\-pct: \fI<number>
1338 .B low\-rtt\-permil: \fI<number>
13211339 Specify how many times out of 1000 to pick the fast server from the low
13221340 rtt band. 0 turns the feature off. A value of 900 would pick the fast
13231341 server when such fast servers are available 90 percent of the time, and
13271345 moment to perform server exploration. The low\-rtt option can be used
13281346 to specify which servers are picked for fast server selection, servers
13291347 with a ping roundtrip time below that value are considered.
1330 The default for low\-rtt\-pct is 0.
1348 The default for low\-rtt\-permil is 0.
13311349 .SS "Remote Control Options"
13321350 In the
13331351 .B remote\-control:
14281446 To use a nondefault port for DNS communication append '@' with the port number.
14291447 .TP
14301448 .B stub\-prime: \fI<yes or no>
1431 This option is by default off. If enabled it performs NS set priming,
1449 This option is by default no. If enabled it performs NS set priming,
14321450 which is similar to root hints, where it starts using the list of nameservers
14331451 currently published by the zone. Thus, if the hint list is slightly outdated,
14341452 the resolver picks up a correct list online.
14891507 .B forward\-tls\-upstream: \fI<yes or no>
14901508 Enabled or disable whether the queries to this forwarder use TLS for transport.
14911509 Default is no.
1510 If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to
1511 load CA certs, otherwise the connections cannot be authenticated.
14921512 .TP
14931513 .B forward\-ssl\-upstream: \fI<yes or no>
14941514 Alternate syntax for \fBforward\-tls\-upstream\fR.
18261846 on a system that has installed the hiredis C client library of Redis,
18271847 then the "redis" backend can be used.
18281848 This backend communicates with the specified Redis server over a TCP
1829 connection to store and retrive cache data.
1849 connection to store and retrieve cache data.
18301850 It can be used as a persistent and/or shared cache backend.
18311851 It should be noted that Unbound never removes data stored in the Redis server,
18321852 even if some data have expired in terms of DNS TTL or the Redis server has
328328 return 0 to force the caller to fetch more */
329329 }
330330
331 if(env->cfg->low_rtt_pct != 0 && prefetch == 0 &&
331 if(env->cfg->low_rtt_permil != 0 && prefetch == 0 &&
332332 low_rtt < env->cfg->low_rtt &&
333 ub_random_max(env->rnd, 1000) < env->cfg->low_rtt_pct) {
333 ub_random_max(env->rnd, 1000) < env->cfg->low_rtt_permil) {
334334 /* the query is not prefetch, but for a downstream client,
335335 * there is a low_rtt (fast) server. We choose that x% of the
336336 * time */
129129
130130 struct ctx_query*
131131 context_new(struct ub_ctx* ctx, const char* name, int rrtype, int rrclass,
132 ub_callback_type cb, void* cbarg)
132 ub_callback_type cb, ub_event_callback_type cb_event, void* cbarg)
133133 {
134134 struct ctx_query* q = (struct ctx_query*)calloc(1, sizeof(*q));
135135 if(!q) return NULL;
141141 }
142142 lock_basic_unlock(&ctx->cfglock);
143143 q->node.key = &q->querynum;
144 q->async = (cb != NULL);
144 q->async = (cb != NULL || cb_event != NULL);
145145 q->cb = cb;
146 q->cb_event = cb_event;
146147 q->cb_arg = cbarg;
147148 q->res = (struct ub_result*)calloc(1, sizeof(*q->res));
148149 if(!q->res) {
4444 #include "util/rbtree.h"
4545 #include "services/modstack.h"
4646 #include "libunbound/unbound.h"
47 #include "libunbound/unbound-event.h"
4748 #include "util/data/packed_rrset.h"
4849 struct libworker;
4950 struct tube;
147148 /** was this query cancelled (for bg worker) */
148149 int cancelled;
149150
150 /** for async query, the callback function */
151 /** for async query, the callback function of type ub_callback_type */
151152 ub_callback_type cb;
153 /** for event callbacks the type is ub_event_callback_type */
154 ub_event_callback_type cb_event;
152155 /** for async query, the callback user arg */
153156 void* cb_arg;
154157
237240 * @param rrtype: type
238241 * @param rrclass: class
239242 * @param cb: callback for async, or NULL for sync.
243 * @param cb_event: event callback for async, or NULL for sync.
240244 * @param cbarg: user arg for async queries.
241245 * @return new ctx_query or NULL for malloc failure.
242246 */
243247 struct ctx_query* context_new(struct ub_ctx* ctx, const char* name, int rrtype,
244 int rrclass, ub_callback_type cb, void* cbarg);
248 int rrclass, ub_callback_type cb, ub_event_callback_type cb_event,
249 void* cbarg);
245250
246251 /**
247252 * Get a new alloc. Creates a new one or uses a cached one.
689689 }
690690 /* create new ctx_query and attempt to add to the list */
691691 lock_basic_unlock(&ctx->cfglock);
692 q = context_new(ctx, name, rrtype, rrclass, NULL, NULL);
692 q = context_new(ctx, name, rrtype, rrclass, NULL, NULL, NULL);
693693 if(!q)
694694 return UB_NOMEM;
695695 /* become a resolver thread for a bit */
746746 ub_comm_base_now(ctx->event_worker->base);
747747
748748 /* create new ctx_query and attempt to add to the list */
749 q = context_new(ctx, name, rrtype, rrclass, (ub_callback_type)callback,
750 mydata);
749 q = context_new(ctx, name, rrtype, rrclass, NULL, callback, mydata);
751750 if(!q)
752751 return UB_NOMEM;
753752
792791 }
793792
794793 /* create new ctx_query and attempt to add to the list */
795 q = context_new(ctx, name, rrtype, rrclass, callback, mydata);
794 q = context_new(ctx, name, rrtype, rrclass, callback, NULL, mydata);
796795 if(!q)
797796 return UB_NOMEM;
798797
157157 hints_delete(w->env->hints);
158158 w->env->hints = NULL;
159159 }
160 if(cfg->ssl_upstream) {
160 if(cfg->ssl_upstream || (cfg->tls_cert_bundle && cfg->tls_cert_bundle[0]) || cfg->tls_win_cert) {
161161 w->sslctx = connect_sslctx_create(NULL, NULL,
162 cfg->tls_cert_bundle);
162 cfg->tls_cert_bundle, cfg->tls_win_cert);
163163 if(!w->sslctx) {
164164 /* to make the setup fail after unlock */
165165 hints_delete(w->env->hints);
636636 enum sec_status s, char* why_bogus)
637637 {
638638 struct ctx_query* q = (struct ctx_query*)arg;
639 ub_event_callback_type cb = (ub_event_callback_type)q->cb;
639 ub_event_callback_type cb = q->cb_event;
640640 void* cb_arg = q->cb_arg;
641641 int cancelled = q->cancelled;
642642
34243424 {
34253425 /* if the serial of notify is older than we have, don't fetch
34263426 * a zone, we already have it */
3427 if(has_serial && !xfr_serial_means_update(xfr, serial))
3427 if(has_serial && !xfr_serial_means_update(xfr, serial)) {
3428 lock_basic_unlock(&xfr->lock);
34283429 return;
3430 }
34293431 /* start new probe with this addr src, or note serial */
34303432 if(!xfr_start_probe(xfr, env, fromhost)) {
34313433 /* not started because already in progress, note the serial */
34323434 xfr_note_notify_serial(xfr, has_serial, serial);
34333435 lock_basic_unlock(&xfr->lock);
34343436 }
3437 /* successful end of start_probe unlocked xfr->lock */
34353438 }
34363439
34373440 int auth_zones_notify(struct auth_zones* az, struct module_env* env,
10581058 /** see if interface is ssl, its port number == the ssl port number */
10591059 static int
10601060 if_is_ssl(const char* ifname, const char* port, int ssl_port,
1061 struct config_strlist* additional_tls_port)
1061 struct config_strlist* tls_additional_ports)
10621062 {
10631063 struct config_strlist* s;
10641064 char* p = strchr(ifname, '@');
10661066 return 1;
10671067 if(p && atoi(p+1) == ssl_port)
10681068 return 1;
1069 for(s = additional_tls_port; s; s = s->next) {
1069 for(s = tls_additional_ports; s; s = s->next) {
10701070 if(p && atoi(p+1) == atoi(s->str))
10711071 return 1;
10721072 if(!p && atoi(port) == atoi(s->str))
10881088 * @param rcv: receive buffer size for UDP
10891089 * @param snd: send buffer size for UDP
10901090 * @param ssl_port: ssl service port number
1091 * @param additional_tls_port: list of additional ssl service port numbers.
1091 * @param tls_additional_ports: list of additional ssl service port numbers.
10921092 * @param reuseport: try to set SO_REUSEPORT if nonNULL and true.
10931093 * set to false on exit if reuseport failed due to no kernel support.
10941094 * @param transparent: set IP_TRANSPARENT socket option.
11021102 ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
11031103 struct addrinfo *hints, const char* port, struct listen_port** list,
11041104 size_t rcv, size_t snd, int ssl_port,
1105 struct config_strlist* additional_tls_port, int* reuseport,
1105 struct config_strlist* tls_additional_ports, int* reuseport,
11061106 int transparent, int tcp_mss, int freebind, int use_systemd,
11071107 int dnscrypt_port)
11081108 {
11691169 }
11701170 if(do_tcp) {
11711171 int is_ssl = if_is_ssl(ifname, port, ssl_port,
1172 additional_tls_port);
1172 tls_additional_ports);
11731173 if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1,
11741174 &noip6, 0, 0, reuseport, transparent, tcp_mss,
11751175 freebind, use_systemd)) == -1) {
13551355 do_auto, cfg->do_udp, do_tcp,
13561356 &hints, portbuf, &list,
13571357 cfg->so_rcvbuf, cfg->so_sndbuf,
1358 cfg->ssl_port, cfg->additional_tls_port,
1358 cfg->ssl_port, cfg->tls_additional_ports,
13591359 reuseport, cfg->ip_transparent,
13601360 cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
13611361 cfg->dnscrypt_port)) {
13691369 do_auto, cfg->do_udp, do_tcp,
13701370 &hints, portbuf, &list,
13711371 cfg->so_rcvbuf, cfg->so_sndbuf,
1372 cfg->ssl_port, cfg->additional_tls_port,
1372 cfg->ssl_port, cfg->tls_additional_ports,
13731373 reuseport, cfg->ip_transparent,
13741374 cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
13751375 cfg->dnscrypt_port)) {
13851385 if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
13861386 do_tcp, &hints, portbuf, &list,
13871387 cfg->so_rcvbuf, cfg->so_sndbuf,
1388 cfg->ssl_port, cfg->additional_tls_port,
1388 cfg->ssl_port, cfg->tls_additional_ports,
13891389 reuseport, cfg->ip_transparent,
13901390 cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
13911391 cfg->dnscrypt_port)) {
13991399 if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
14001400 do_tcp, &hints, portbuf, &list,
14011401 cfg->so_rcvbuf, cfg->so_sndbuf,
1402 cfg->ssl_port, cfg->additional_tls_port,
1402 cfg->ssl_port, cfg->tls_additional_ports,
14031403 reuseport, cfg->ip_transparent,
14041404 cfg->tcp_mss, cfg->ip_freebind, cfg->use_systemd,
14051405 cfg->dnscrypt_port)) {
11721172 while((c = mstate->cb_list) != NULL) {
11731173 /* take this cb off the list; so that the list can be
11741174 * changed, eg. by adds from the callback routine */
1175 if(!mstate->reply_list && mstate->cb_list && !c->next) {
1176 /* was a reply state, not anymore */
1177 mstate->s.env->mesh->num_reply_states--;
1178 }
11751179 mstate->cb_list = c->next;
11761180 if(!mstate->reply_list && !mstate->cb_list &&
11771181 mstate->super_set.count == 0)
13001300 w->ssl_upstream = sq->ssl_upstream;
13011301 w->tls_auth_name = sq->tls_auth_name;
13021302 #ifndef S_SPLINT_S
1303 tv.tv_sec = timeout;
1304 tv.tv_usec = 0;
1303 tv.tv_sec = timeout/1000;
1304 tv.tv_usec = (timeout%1000)*1000;
13051305 #endif
13061306 comm_timer_set(w->timer, &tv);
13071307 if(pend) {
18111811 }
18121812 if(sq->tcp_upstream || sq->ssl_upstream) {
18131813 struct timeval now = *sq->outnet->now_tv;
1814 if(now.tv_sec > sq->last_sent_time.tv_sec ||
1814 if(error!=NETEVENT_NOERROR) {
1815 if(!infra_rtt_update(sq->outnet->infra, &sq->addr,
1816 sq->addrlen, sq->zone, sq->zonelen, sq->qtype,
1817 -1, sq->last_rtt, (time_t)now.tv_sec))
1818 log_err("out of memory in TCP exponential backoff.");
1819 } else if(now.tv_sec > sq->last_sent_time.tv_sec ||
18151820 (now.tv_sec == sq->last_sent_time.tv_sec &&
18161821 now.tv_usec > sq->last_sent_time.tv_usec)) {
18171822 /* convert from microseconds to milliseconds */
18211826 log_assert(roundtime >= 0);
18221827 /* only store if less then AUTH_TIMEOUT seconds, it could be
18231828 * huge due to system-hibernated and we woke up */
1824 if(roundtime < TCP_AUTH_QUERY_TIMEOUT*1000) {
1829 if(roundtime < 60000) {
18251830 if(!infra_rtt_update(sq->outnet->infra, &sq->addr,
18261831 sq->addrlen, sq->zone, sq->zonelen, sq->qtype,
18271832 roundtime, sq->last_rtt, (time_t)now.tv_sec))
18621867 static int
18631868 serviced_tcp_send(struct serviced_query* sq, sldns_buffer* buff)
18641869 {
1865 int vs, rtt;
1870 int vs, rtt, timeout;
18661871 uint8_t edns_lame_known;
18671872 if(!infra_host(sq->outnet->infra, &sq->addr, sq->addrlen, sq->zone,
18681873 sq->zonelen, *sq->outnet->now_secs, &vs, &edns_lame_known,
18691874 &rtt))
18701875 return 0;
1876 sq->last_rtt = rtt;
18711877 if(vs != -1)
18721878 sq->status = serviced_query_TCP_EDNS;
18731879 else sq->status = serviced_query_TCP;
18741880 serviced_encode(sq, buff, sq->status == serviced_query_TCP_EDNS);
18751881 sq->last_sent_time = *sq->outnet->now_tv;
1876 sq->pending = pending_tcp_query(sq, buff, TCP_AUTH_QUERY_TIMEOUT,
1882 if(sq->tcp_upstream || sq->ssl_upstream) {
1883 timeout = rtt;
1884 if(rtt >= 376 && rtt < TCP_AUTH_QUERY_TIMEOUT)
1885 timeout = TCP_AUTH_QUERY_TIMEOUT;
1886 } else {
1887 timeout = TCP_AUTH_QUERY_TIMEOUT;
1888 }
1889 sq->pending = pending_tcp_query(sq, buff, timeout,
18771890 serviced_tcp_callback, sq);
18781891 return sq->pending != NULL;
18791892 }
375375 int retry;
376376 /** time last UDP was sent */
377377 struct timeval last_sent_time;
378 /** rtt of last (UDP) message */
378 /** rtt of last message */
379379 int last_rtt;
380380 /** do we know edns probe status already, for UDP_EDNS queries */
381381 int edns_lame_known;
455455 * checks id.
456456 * @param sq: serviced query.
457457 * @param packet: wireformat query to send to destination. copied from.
458 * @param timeout: in seconds from now.
458 * @param timeout: in milliseconds from now.
459459 * Timer starts running now. Timer may expire if all buffers are used,
460460 * without any query been sent to the server yet.
461461 * @param callback: function to call on error, timeout or reply.
6565 /* nss3 */
6666 #include "nss.h"
6767 #endif
68 #ifdef HAVE_SSL
69 #ifdef HAVE_OPENSSL_SSL_H
70 #include <openssl/ssl.h>
71 #endif
72 #ifdef HAVE_OPENSSL_ERR_H
73 #include <openssl/err.h>
74 #endif
75 #endif /* HAVE_SSL */
6876
6977 /** verbosity for unbound-host app */
7078 static int verb = 0;
486494 if(argc != 1)
487495 usage();
488496
497 #ifdef HAVE_SSL
498 #ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS
499 ERR_load_crypto_strings();
500 #endif
501 #if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
502 ERR_load_SSL_strings();
503 #endif
504 #if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_CRYPTO)
505 OpenSSL_add_all_algorithms();
506 #else
507 OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
508 | OPENSSL_INIT_ADD_ALL_DIGESTS
509 | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
510 #endif
511 #if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
512 (void)SSL_library_init();
513 #else
514 (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
515 #endif
516 #endif /* HAVE_SSL */
489517 #ifdef HAVE_NSS
490518 if(NSS_NoDB_Init(".") != SECSuccess) {
491519 fprintf(stderr, "could not init NSS\n");
5555 #undef free
5656 #undef strdup
5757 #endif
58 #ifdef HAVE_SSL
59 #ifdef HAVE_OPENSSL_SSL_H
60 #include <openssl/ssl.h>
61 #endif
62 #ifdef HAVE_OPENSSL_ERR_H
63 #include <openssl/err.h>
64 #endif
65 #endif /* HAVE_SSL */
66
5867
5968 /** keeping track of the async ids */
6069 struct track_id {
458467 argc -= optind;
459468 argv += optind;
460469
470 #ifdef HAVE_SSL
471 #ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS
472 ERR_load_crypto_strings();
473 #endif
474 #if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
475 ERR_load_SSL_strings();
476 #endif
477 #if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_CRYPTO)
478 OpenSSL_add_all_algorithms();
479 #else
480 OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
481 | OPENSSL_INIT_ADD_ALL_DIGESTS
482 | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
483 #endif
484 #if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
485 (void)SSL_library_init();
486 #else
487 (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
488 #endif
489 #endif /* HAVE_SSL */
490
461491 if(ext)
462492 return ext_test(ctx, argc, argv);
463493
11241124 pend->addrlen = sq->addrlen;
11251125 pend->callback = callback;
11261126 pend->cb_arg = callback_arg;
1127 pend->timeout = timeout;
1127 pend->timeout = timeout/1000;
11281128 pend->transport = transport_tcp;
11291129 pend->pkt = NULL;
11301130 pend->zone = NULL;
12171217 log_assert(pend->zone);
12181218 pend->callback = callback;
12191219 pend->cb_arg = callback_arg;
1220 pend->timeout = UDP_AUTH_QUERY_TIMEOUT;
1220 pend->timeout = UDP_AUTH_QUERY_TIMEOUT/1000;
12211221 pend->transport = transport_udp; /* pretend UDP */
12221222 pend->pkt = NULL;
12231223 pend->runtime = runtime;
17561756 }
17571757 pend->callback = fc->cb;
17581758 pend->cb_arg = fc->cb_arg;
1759 pend->timeout = UDP_AUTH_QUERY_TIMEOUT;
1759 pend->timeout = UDP_AUTH_QUERY_TIMEOUT/1000;
17601760 pend->transport = transport_udp;
17611761 pend->pkt = NULL;
17621762 pend->runtime = runtime;
283283 SSL* ssl = NULL;
284284 if(!buf) fatal_exit("out of memory");
285285 if(usessl) {
286 ctx = connect_sslctx_create(NULL, NULL, NULL);
286 ctx = connect_sslctx_create(NULL, NULL, NULL, 0);
287287 if(!ctx) fatal_exit("cannot create ssl ctx");
288288 ssl = outgoing_ssl_fd(ctx, fd);
289289 if(!ssl) fatal_exit("cannot create ssl");
176176 while(isspace((unsigned char)*parse))
177177 parse++;
178178 if(strncmp(parse, "$INCLUDE_TEMPFILE", 17) == 0) {
179 char l2[MAX_LINE_LEN];
179 char l2[MAX_LINE_LEN-30]; /* -30 makes it fit with
180 a preceding $INCLUDE in the buf line[] */
180181 char* tid = parse+17;
181182 while(isspace((unsigned char)*tid))
182183 tid++;
904904 #ifdef CLIENT_SUBNET
905905 ecs_test();
906906 #endif /* CLIENT_SUBNET */
907 if(log_get_lock()) {
908 lock_quick_destroy((lock_quick_type*)log_get_lock());
909 }
907910 checklock_stop();
908911 printf("%d checks ok.\n", testcount);
909912 #ifdef HAVE_SSL
88 get_make
99 (cd $PRE ; $MAKE unittest; $MAKE lock-verify)
1010
11 if (cd $PRE; ./unittest); then
12 echo "unit test worked."
11 if test -f $PRE/unbound_do_valgrind_in_test; then
12 do_valgrind=yes
1313 else
14 echo "unit test failed."
15 exit 1
14 do_valgrind=no
15 fi
16 VALGRIND_FLAGS="--leak-check=full --show-leak-kinds=all"
17
18 if test $do_valgrind = "yes"; then
19 echo "valgrind yes"
20 echo
21 tmpout=/tmp/tmpout.$$
22 if (cd $PRE; valgrind $VALGRIND_FLAGS ./unittest >$tmpout 2>&1); then
23 echo "unit test worked."
24 else
25 echo "unit test failed."
26 exit 1
27 fi
28 if grep "All heap blocks were freed -- no leaks are possible" $tmpout; then
29 : # clean
30 else
31 cat $tmpout
32 echo "Memory leaked in unittest"
33 grep "in use at exit" $tmpout
34 exit 1
35 fi
36 if grep "ERROR SUMMARY: 0 errors from 0 contexts" $tmpout; then
37 : # clean
38 else
39 cat $tmpout
40 echo "Errors in unittest"
41 grep "ERROR SUMMARY" $tmpout
42 exit 1
43 fi
44 rm -f $tmpout
45 else
46 # without valgrind
47 if (cd $PRE; ./unittest); then
48 echo "unit test worked."
49 else
50 echo "unit test failed."
51 exit 1
52 fi
1653 fi
1754 if test -f $PRE/ublocktrace.0; then
1855 if (cd $PRE; ./lock-verify ublocktrace.*); then
2525
2626 # self-test (unit test of testbound)
2727 if test $do_valgrind = "yes"; then
28 echo "valgrind yes"
29 echo
2830 if (valgrind $VALGRIND_FLAGS $PRE/testbound -s >tmpout 2>&1;); then
2931 echo "selftest OK "
3032 else
3133 echo "selftest FAILED"
3234 exit 1
3335 fi
34 if grep "All heap blocks were freed -- no leaks are possible" tmpout >/dev/null 2>&1; then
36 if grep "All heap blocks were freed -- no leaks are possible" tmpout; then
3537 : # clean
3638 else
3739 cat tmpout
3941 grep "in use at exit" tmpout
4042 exit 1
4143 fi
42 if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout >/dev/null 2>&1; then
44 if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout; then
4345 : # clean
4446 else
4547 cat tmpout
101103 fi
102104
103105 if test $do_valgrind = "yes"; then
106 echo
104107 if (valgrind $VALGRIND_FLAGS $PRE/testbound -p $input >tmpout 2>&1;); then
105108 echo " OK $cleaninput: $header"
106109 else
107110 echo "FAILED $cleaninput: $header"
108111 exitval=1
109112 fi
110 if grep "All heap blocks were freed -- no leaks are possible" tmpout >/dev/null 2>&1; then
113 if grep "All heap blocks were freed -- no leaks are possible" tmpout; then
111114 : # clean
112115 else
113116 grep "^==" tmpout
115118 grep "in use at exit" tmpout
116119 exitval=1
117120 fi
118 if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout >/dev/null 2>&1; then
121 if grep "ERROR SUMMARY: 0 errors from 0 contexts" tmpout; then
119122 : # clean
120123 else
121124 grep "^==" tmpout
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 auth-zone:
56 name: "example.com."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 log-time-ascii: yes
45 fake-sha1: yes
56 trust-anchor-signaling: no
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 log-time-ascii: yes
45 val-override-date: '20091018111500'
56 fake-sha1: yes
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
55 target-fetch-policy: "0 0 0 0 0"
66 fake-sha1: yes
77 trust-anchor-signaling: no
8 qname-minimisation: "no"
89
910 stub-zone:
1011 name: "."
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DS 30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 val-override-date: "20070916134226"
55 harden-referral-path: no
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 val-override-date: "20070916134226"
55 harden-referral-path: no
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DS 30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 module-config: "dns64 validator iterator"
45 dns64-prefix: 64:ff9b::0/96
56
44 domain-insecure: "sub.example.com"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78
89 stub-zone:
910 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
33 trust-anchor: "dlv.isc.org. 5072 IN DNSKEY 256 3 5 BEAAAAOlYGw53D+f01yCL5JsP0SB6EjYrnd0JYRBooAaGPT+Q0kpiN+7GviFh+nIazoB8e2Yv7mupgqkmIjObdcbGstYpUltdECdNpNmBvASKB9SBdtGeRvXXpORi3Qyxb9kHGG7SpzyYbc+KDVKnzYHB94pvqu3ZZpPFPBFtCibp/mkhw=="
44 val-override-date: "20090617133009"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
55 trust-anchor: "example.com. IN DS 48069 8 2 fce2bcb0d88b828064faad58e935ca2e32ff0bbd8bd8407a8f344d8f8e8c438a"
66 val-override-date: "-1"
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 # test that default value of harden-dnssec-stripped is still yes.
910 fake-sha1: yes
1011 trust-anchor-signaling: no
88 ipsecmod-strict: no
99 ipsecmod-max-ttl: 200
1010 ipsecmod-enabled: no
11 qname-minimisation: "no"
1112
1213 stub-zone:
1314 name: "."
1515 ipsecmod-strict: no
1616 ipsecmod-max-ttl: 200
1717 ipsecmod-ignore-bogus: yes
18 qname-minimisation: "no"
1819
1920 stub-zone:
2021 name: "."
77 ipsecmod-hook: "../../testdata/ipsecmod_hook.sh"
88 ipsecmod-strict: no
99 ipsecmod-max-ttl: 200
10 qname-minimisation: "no"
1011
1112 stub-zone:
1213 name: "."
77 ipsecmod-hook: "../../testdata/ipsecmod_hook.sh"
88 ipsecmod-strict: yes
99 ipsecmod-max-ttl: 200
10 qname-minimisation: "no"
1011
1112 stub-zone:
1213 name: "."
88 ipsecmod-strict: no
99 ipsecmod-max-ttl: 200
1010 ipsecmod-whitelist: white.example.com
11 qname-minimisation: "no"
1112
1213 stub-zone:
1314 name: "."
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
11 server:
22 harden-glue: "no"
33 target-fetch-policy: "0 0 0 0 0"
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
11 server:
22 harden-referral-path: no
33 target-fetch-policy: "0 0 0 0 0"
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
33 val-override-date: "20070916134226"
44 fake-sha1: yes
55 trust-anchor-signaling: no
6 qname-minimisation: "no"
67
78 stub-zone:
89 name: "."
33 val-override-date: "20070916134226"
44 fake-sha1: yes
55 trust-anchor-signaling: no
6 qname-minimisation: "no"
67
78 stub-zone:
89 name: "."
22 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
33 val-override-date: "20070916134226"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
33 val-override-date: "20070916134226"
44 fake-sha1: yes
55 trust-anchor-signaling: no
6 qname-minimisation: "no"
67
78 stub-zone:
89 name: "."
22 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
33 val-override-date: "20070916134226"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
00 ; config options
1 server:
2 qname-minimisation: "no"
13 stub-zone:
24 name: "."
35 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
00 ; config options
11 server:
22 target-fetch-policy: "3 2 1 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
11 server:
22 do-ip6: no
33 target-fetch-policy: "0 0 0 0 0 "
4 qname-minimisation: "no"
45 stub-zone:
56 name: "."
67 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
11 server:
22 harden-referral-path: no
33 target-fetch-policy: "0 0 0 0 0"
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
00 ; config options
1 server:
2 qname-minimisation: "no"
13 stub-zone:
24 name: "."
35 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 module-config: "iterator"
45
56 stub-zone:
00 ; config options
11 server:
22 target-fetch-policy: "3 2 1 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
11 server:
22 harden-referral-path: yes
33 target-fetch-policy: "0 0 0 0 0"
4 qname-minimisation: "no"
45 stub-zone:
56 name: "."
67 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 prefetch: "yes"
45
56 stub-zone:
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 prefetch: "yes"
45
56 stub-zone:
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 prefetch: "yes"
45
56 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 private-address: 10.0.0.0/8
56 private-address: 172.16.0.0/12
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: yes
43
54 stub-zone:
65 name: "."
11 server:
22 harden-referral-path: no
33 target-fetch-policy: "0 0 0 0 0"
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
11 server:
22 harden-referral-path: no
33 target-fetch-policy: "0 0 0 0 0"
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
33 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 stub-zone:
56 name: "."
00 ; config options
11 ; The island of trust is at example.com
22 server:
3
3 qname-minimisation: "no"
44 stub-zone:
55 name: "."
66 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
11 ; The island of trust is at example.com
22 server:
33 local-zone: "10.in-addr.arpa" nodefault
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
22 server:
33 local-zone: "example.com." typetransparent
44 local-data: "mail.example.com. IN A 10.20.30.40"
5 qname-minimisation: "no"
56
67 stub-zone:
78 name: "."
66 msg-cache-size: 8
77 rrset-cache-size: 8
88 target-fetch-policy: "0 0 0 0 0"
9 qname-minimisation: "no"
910 fake-sha1: yes
1011 trust-anchor-signaling: no
1112
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34 harden-below-nxdomain: yes
45 trust-anchor: ". IN DNSKEY 257 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3"
56 val-override-date: "20070916134226"
1010 module-config: "subnetcache validator iterator"
1111 verbosity: 3
1212 access-control: 127.0.0.1 allow_snoop
13 qname-minimisation: "no"
1314
1415 stub-zone:
1516 name: "."
33 max-client-subnet-ipv4: 21
44 verbosity: 3
55 module-config: "subnetcache validator iterator"
6 qname-minimisation: "no"
67
78 stub-zone:
89 name: "."
22 max-client-subnet-ipv4: 21
33 verbosity: 3
44 module-config: "subnetcache validator iterator"
5 qname-minimisation: "no"
56
67 stub-zone:
78 name: "."
88 max-client-subnet-ipv4: 17
99 module-config: "subnetcache validator iterator"
1010 verbosity: 3
11 qname-minimisation: "no"
1112
1213 stub-zone:
1314 name: "."
33 max-client-subnet-ipv4: 21
44 verbosity: 3
55 module-config: "subnetcache validator iterator"
6 qname-minimisation: "no"
67
78 stub-zone:
89 name: "."
88 max-client-subnet-ipv4: 17
99 module-config: "subnetcache validator iterator"
1010 verbosity: 3
11 qname-minimisation: "no"
1112
1213 stub-zone:
1314 name: "."
99 max-client-subnet-ipv4: 17
1010 module-config: "subnetcache validator iterator"
1111 verbosity: 3
12 qname-minimisation: "no"
1213
1314 stub-zone:
1415 name: "."
22 max-client-subnet-ipv4: 21
33 verbosity: 3
44 module-config: "subnetcache iterator"
5 qname-minimisation: "no"
56
67 stub-zone:
78 name: "."
1212 ENTRY_BEGIN
1313 MATCH TCP opcode qtype qname
1414 REPLY QR AA NOERROR
15 ADJUST copy_id sleep=3
15 ADJUST copy_id sleep=2
1616 SECTION QUESTION
1717 www IN A
1818 SECTION ANSWER
11 server:
22 access-control: 127.0.0.1 allow_snoop
33 cache-max-ttl: 10
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
11 server:
22 access-control: 127.0.0.1 allow_snoop
33 cache-min-ttl: 10
4 qname-minimisation: "no"
45
56 stub-zone:
67 name: "."
11 ; fetch all extra targets - we want to trigger a lookup in cache
22 server:
33 target-fetch-policy: "-1 -1 -1 -1 -1"
4 qname-minimisation: "no"
45 access-control: 127.0.0.1 allow_snoop
56
67 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 #trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
44 trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. IN DNSKEY 257 3 8 AwEAAdL6YJdvoKQJEt/SgB6MrbQ2RDwnrcQQb6bDE8FpGgLen6hvF31ntVsZ3RZzhCmwL6lvumOLFIRKaP9ZBEVutT9iMoF2dNRbT0TCUrv6uQNHcuCZ0BJhuDNBU42f3yOnfFv7PKxd0NP+yFHJkvDQAVLMB5GeUQuYnvgQGeZsf/3b"
44 val-override-date: "-1"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
55 trust-anchor: "example.org. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}"
66 val-override-date: "20070916134226"
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 fake-sha1: yes
910 trust-anchor-signaling: no
1011
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89 harden-algo-downgrade: yes
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-dsa: yes
78 fake-sha1: yes
89 trust-anchor-signaling: no
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-dsa: yes
78 fake-sha1: yes
89 trust-anchor-signaling: no
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-dsa: yes
78 fake-sha1: yes
89 trust-anchor-signaling: no
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 prefetch-key: yes
78 fake-sha1: yes
89 trust-anchor-signaling: no
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 prefetch-key: yes
78 prefetch: yes
89 fake-sha1: yes
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
44 val-override-date: "20180213111425"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 trust-anchor-signaling: no
78 aggressive-nsec: yes
89
33 trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
44 val-override-date: "20180213111425"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 trust-anchor-signaling: no
78 aggressive-nsec: yes
89 domain-insecure: "ant.testzone.nlnetlabs.nl"
33 trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b"
44 val-override-date: "20180213111425"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 trust-anchor-signaling: no
78 aggressive-nsec: yes
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. IN DS 29332 8 2 751f8b755718a7b4ef8920a4b42407520889c3d2142a64f6ffad9e12fa9fc262"
44 val-override-date: "20140301134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "nsecwc.nlnetlabs.nl. 10024 IN DS 565 8 2 0C15C04C022700C8713028F6F64CF2343DE627B8F83CDA1C421C65DB 52908A2E"
44 val-override-date: "20181202115531"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm 3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
22 trust-anchor: "example. DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 AbsUdblMFin8CVF3n4s= )"
33 val-override-date: "20120420235959"
44 target-fetch-policy: "0 0 0 0 0"
5 qname-minimisation: "no"
56 fake-sha1: yes
67 trust-anchor-signaling: no
78
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. IN DNSKEY 257 3 8 AwEAAdL6YJdvoKQJEt/SgB6MrbQ2RDwnrcQQb6bDE8FpGgLen6hvF31ntVsZ3RZzhCmwL6lvumOLFIRKaP9ZBEVutT9iMoF2dNRbT0TCUrv6uQNHcuCZ0BJhuDNBU42f3yOnfFv7PKxd0NP+yFHJkvDQAVLMB5GeUQuYnvgQGeZsf/3b"
44 val-override-date: "-1"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 val-override-date: "20070916134226"
55 val-nsec3-keysize-iterations: "1024 100 2048 200 4096 500"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. DS 57024 7 1 46d134be319b2cc910b9938f1cb25dc41abb27bf"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "nsecwc.nlnetlabs.nl. 10024 IN DS 565 8 2 0C15C04C022700C8713028F6F64CF2343DE627B8F83CDA1C421C65DB 52908A2E"
44 val-override-date: "20181202115531"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "sub.example.com. 3600 IN DS 30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
55 val-override-date: "20070916134226"
66 access-control: 127.0.0.1 allow_snoop
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 fake-sha1: yes
910 trust-anchor-signaling: no
1011
55 harden-referral-path: no
66 access-control: 127.0.0.1 allow_snoop
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 fake-sha1: yes
910 trust-anchor-signaling: no
1011
55 directory: ""
66 access-control: 127.0.0.1 allow_snoop
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 fake-sha1: yes
910 trust-anchor-signaling: no
1011
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
44 trust-anchor: "example.com. 3600 IN DS 30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 fake-sha1: yes
89 trust-anchor-signaling: no
910
44 trust-anchor: "example.com. 3600 IN DS 30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
55 val-override-date: "20070916134226"
66 target-fetch-policy: "0 0 0 0 0"
7 qname-minimisation: "no"
78 harden-algo-downgrade: no
89 fake-sha1: yes
910 trust-anchor-signaling: no
55 trust-anchor: "example.com. 3600 IN DS 30899 7 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
66 val-override-date: "20070916134226"
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 harden-algo-downgrade: yes
910 fake-sha1: yes
1011 trust-anchor-signaling: no
55 trust-anchor: "example.com. 3600 IN DS 30899 7 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
66 val-override-date: "20070916134226"
77 target-fetch-policy: "0 0 0 0 0"
8 qname-minimisation: "no"
89 harden-algo-downgrade: no
910 fake-sha1: yes
1011 trust-anchor-signaling: no
33 trust-anchor: "example.com. 3600 IN DS 2854 208 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78
89 stub-zone:
33 dlv-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
33 trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
44 val-override-date: "20070916134226"
55 target-fetch-policy: "0 0 0 0 0"
6 qname-minimisation: "no"
67 fake-sha1: yes
78 trust-anchor-signaling: no
89
00 ; config options
11 server:
22 target-fetch-policy: "0 0 0 0 0"
3 qname-minimisation: "no"
34
45 access-control: 10.10.10.0/24 allow
56 access-control-view: 10.10.10.10/32 "view1"
125125 }
126126 }
127127
128 /** free the special list */
129 static void
130 alloc_clear_special_list(struct alloc_cache* alloc)
131 {
132 alloc_special_type* p, *np;
133 /* free */
134 p = alloc->quar;
135 while(p) {
136 np = alloc_special_next(p);
137 /* deinit special type */
138 lock_rw_destroy(&p->entry.lock);
139 free(p);
140 p = np;
141 }
142 }
143
144 void
145 alloc_clear_special(struct alloc_cache* alloc)
146 {
147 if(!alloc->super) {
148 lock_quick_lock(&alloc->lock);
149 }
150 alloc_clear_special_list(alloc);
151 alloc->quar = 0;
152 alloc->num_quar = 0;
153 if(!alloc->super) {
154 lock_quick_unlock(&alloc->lock);
155 }
156 }
157
128158 void
129159 alloc_clear(struct alloc_cache* alloc)
130160 {
131 alloc_special_type* p, *np;
161 alloc_special_type* p;
132162 struct regional* r, *nr;
133163 if(!alloc)
134164 return;
146176 alloc->super->num_quar += alloc->num_quar;
147177 lock_quick_unlock(&alloc->super->lock);
148178 } else {
149 /* free */
150 p = alloc->quar;
151 while(p) {
152 np = alloc_special_next(p);
153 /* deinit special type */
154 lock_rw_destroy(&p->entry.lock);
155 free(p);
156 p = np;
157 }
179 alloc_clear_special_list(alloc);
158180 }
159181 alloc->quar = 0;
160182 alloc->num_quar = 0;
113113 * @param alloc: is almost zeroed on exit (except some stats).
114114 */
115115 void alloc_clear(struct alloc_cache* alloc);
116
117 /**
118 * Free the special alloced items. The rrset and message caches must be
119 * empty, there must be no more references to rrset pointers into the
120 * rrset cache.
121 * @param alloc: the special allocs are freed.
122 */
123 void alloc_clear_special(struct alloc_cache* alloc);
116124
117125 /**
118126 * Get a new special_type element.
108108 cfg->ssl_port = UNBOUND_DNS_OVER_TLS_PORT;
109109 cfg->ssl_upstream = 0;
110110 cfg->tls_cert_bundle = NULL;
111 cfg->tls_win_cert = 0;
111112 cfg->use_syslog = 1;
112113 cfg->log_identity = NULL; /* changed later with argv[0] */
113114 cfg->log_time_ascii = 0;
160161 if(!(cfg->logfile = strdup(""))) goto error_exit;
161162 if(!(cfg->pidfile = strdup(PIDFILE))) goto error_exit;
162163 if(!(cfg->target_fetch_policy = strdup("3 2 1 0 0"))) goto error_exit;
163 cfg->low_rtt_pct = 0;
164 cfg->low_rtt_permil = 0;
164165 cfg->low_rtt = 45;
165166 cfg->donotqueryaddrs = NULL;
166167 cfg->donotquery_localhost = 1;
279280 cfg->ratelimit_below_domain = NULL;
280281 cfg->ip_ratelimit_factor = 10;
281282 cfg->ratelimit_factor = 10;
282 cfg->qname_minimisation = 0;
283 cfg->qname_minimisation = 1;
283284 cfg->qname_minimisation_strict = 0;
284285 cfg->shm_enable = 0;
285286 cfg->shm_key = 11777;
454455 else S_STR("ssl-service-pem:", ssl_service_pem)
455456 else S_NUMBER_NONZERO("ssl-port:", ssl_port)
456457 else S_STR("tls-cert-bundle:", tls_cert_bundle)
457 else S_STRLIST("additional-tls-port:", additional_tls_port)
458 else S_YNO("tls-win-cert:", tls_win_cert)
459 else S_STRLIST("additional-tls-port:", tls_additional_ports)
460 else S_STRLIST("tls-additional-ports:", tls_additional_ports)
458461 else S_YNO("interface-automatic:", if_automatic)
459462 else S_YNO("use-systemd:", use_systemd)
460463 else S_YNO("do-daemonize:", do_daemonize)
617620 else S_NUMBER_OR_ZERO("ip-ratelimit-factor:", ip_ratelimit_factor)
618621 else S_NUMBER_OR_ZERO("ratelimit-factor:", ratelimit_factor)
619622 else S_NUMBER_OR_ZERO("low-rtt:", low_rtt)
620 else S_NUMBER_OR_ZERO("low-rtt-pct:", low_rtt_pct)
623 else S_NUMBER_OR_ZERO("low-rtt-pct:", low_rtt_permil)
624 else S_NUMBER_OR_ZERO("low-rtt-permil:", low_rtt_permil)
621625 else S_YNO("qname-minimisation:", qname_minimisation)
622626 else S_YNO("qname-minimisation-strict:", qname_minimisation_strict)
623627 #ifdef USE_IPSECMOD
873877 else O_STR(opt, "ssl-service-pem", ssl_service_pem)
874878 else O_DEC(opt, "ssl-port", ssl_port)
875879 else O_STR(opt, "tls-cert-bundle", tls_cert_bundle)
876 else O_LST(opt, "additional-tls-port", additional_tls_port)
880 else O_YNO(opt, "tls-win-cert", tls_win_cert)
881 else O_LST(opt, "tls-additional-ports", tls_additional_ports)
877882 else O_YNO(opt, "use-systemd", use_systemd)
878883 else O_YNO(opt, "do-daemonize", do_daemonize)
879884 else O_STR(opt, "chroot", chrootdir)
10001005 else O_DEC(opt, "ip-ratelimit-factor", ip_ratelimit_factor)
10011006 else O_DEC(opt, "ratelimit-factor", ratelimit_factor)
10021007 else O_DEC(opt, "low-rtt", low_rtt)
1003 else O_DEC(opt, "low-rtt-pct", low_rtt_pct)
1008 else O_DEC(opt, "low-rtt-pct", low_rtt_permil)
1009 else O_DEC(opt, "low-rtt-permil", low_rtt_permil)
10041010 else O_DEC(opt, "val-sig-skew-min", val_sig_skew_min)
10051011 else O_DEC(opt, "val-sig-skew-max", val_sig_skew_max)
10061012 else O_YNO(opt, "qname-minimisation", qname_minimisation)
12961302 free(cfg->ssl_service_key);
12971303 free(cfg->ssl_service_pem);
12981304 free(cfg->tls_cert_bundle);
1299 config_delstrlist(cfg->additional_tls_port);
1305 config_delstrlist(cfg->tls_additional_ports);
13001306 free(cfg->log_identity);
13011307 config_del_strarray(cfg->ifs, cfg->num_ifs);
13021308 config_del_strarray(cfg->out_ifs, cfg->num_out_ifs);
101101 int ssl_upstream;
102102 /** cert bundle for outgoing connections */
103103 char* tls_cert_bundle;
104 /** should the system certificate store get added to the cert bundle */
105 int tls_win_cert;
104106 /** additional tls ports */
105 struct config_strlist* additional_tls_port;
107 struct config_strlist* tls_additional_ports;
106108
107109 /** outgoing port range number of ports (per thread) */
108110 int outgoing_num_ports;
143145 /** the target fetch policy for the iterator */
144146 char* target_fetch_policy;
145147 /** percent*10, how many times in 1000 to pick low rtt destinations */
146 int low_rtt_pct;
148 int low_rtt_permil;
147149 /** what time in msec is a low rtt destination */
148150 int low_rtt;
149151
362362 *yy_cp = '\0'; \
363363 (yy_c_buf_p) = yy_cp;
364364
365 #define YY_NUM_RULES 263
366 #define YY_END_OF_BUFFER 264
365 #define YY_NUM_RULES 266
366 #define YY_END_OF_BUFFER 267
367367 /* This struct is not used in this scanner,
368368 but its presence is necessary. */
369369 struct yy_trans_info
371371 flex_int32_t yy_verify;
372372 flex_int32_t yy_nxt;
373373 };
374 static yyconst flex_int16_t yy_accept[2599] =
374 static yyconst flex_int16_t yy_accept[2631] =
375375 { 0,
376 1, 1, 245, 245, 249, 249, 253, 253, 257, 257,
377 1, 1, 264, 261, 1, 243, 243, 262, 2, 261,
378 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
379 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
380 261, 262, 245, 246, 246, 247, 262, 249, 250, 250,
381 251, 262, 256, 253, 254, 254, 255, 262, 257, 258,
382 258, 259, 262, 260, 244, 2, 248, 260, 262, 261,
383 0, 1, 2, 2, 2, 2, 261, 261, 261, 261,
384 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
385 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
386
387 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
388 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
389 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
390 261, 261, 261, 261, 261, 261, 261, 261, 261, 245,
391 0, 249, 0, 256, 0, 253, 257, 0, 260, 0,
392 2, 2, 260, 261, 261, 261, 261, 261, 261, 261,
393 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
394 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
395 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
396 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
397
398 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
399 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
400 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
401 261, 261, 261, 261, 261, 261, 260, 261, 261, 261,
402 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
403 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
404 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
405 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
406 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
407 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
408
409 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
410 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
411 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
412 101, 261, 261, 261, 261, 261, 261, 261, 260, 261,
413 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
414 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
415 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
416 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
417 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
418 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
419
420 261, 261, 261, 261, 261, 85, 261, 261, 261, 261,
421 261, 261, 8, 261, 261, 261, 261, 261, 261, 261,
422 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
423 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
424 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
425 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
426 261, 106, 261, 260, 261, 261, 261, 261, 261, 261,
427 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
428 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
429 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
430
431 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
432 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
433 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
434 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
435 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
436 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
437 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
438 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
439 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
440 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
441
442 260, 261, 261, 261, 261, 261, 261, 261, 261, 261,
443 261, 261, 45, 261, 261, 261, 261, 261, 261, 261,
444 261, 261, 261, 261, 261, 190, 261, 14, 15, 261,
445 18, 17, 261, 261, 261, 261, 261, 261, 261, 261,
446 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
447 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
448 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
449 100, 261, 261, 261, 261, 261, 261, 261, 261, 261,
450 261, 261, 261, 261, 261, 261, 261, 176, 261, 261,
451 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
452
453 261, 261, 3, 261, 261, 261, 261, 261, 261, 261,
454 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
455 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
456 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
457 261, 261, 261, 261, 261, 261, 260, 261, 261, 261,
458 261, 261, 261, 261, 237, 261, 261, 236, 261, 261,
459 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
460 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
461 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
462 261, 261, 261, 261, 261, 261, 261, 261, 252, 261,
463
464 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
465 261, 261, 261, 261, 261, 261, 261, 261, 261, 48,
466 261, 214, 261, 261, 261, 261, 261, 261, 261, 261,
467 261, 261, 261, 49, 261, 261, 261, 261, 261, 261,
468 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
469 261, 261, 261, 261, 165, 261, 261, 261, 261, 261,
470 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
471 261, 20, 261, 261, 261, 261, 261, 261, 261, 261,
472 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
473 261, 261, 261, 261, 121, 261, 261, 252, 261, 261,
474
475 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
476 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
477 261, 261, 261, 261, 219, 261, 261, 261, 261, 261,
478 261, 261, 261, 261, 261, 261, 140, 261, 261, 261,
479 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
480 261, 261, 261, 261, 261, 261, 261, 120, 261, 261,
481 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
482 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
483 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
484 261, 261, 261, 83, 261, 261, 261, 261, 261, 261,
485
486 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
487 261, 261, 261, 261, 261, 261, 261, 28, 261, 261,
488 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
489 261, 29, 261, 261, 261, 261, 261, 261, 261, 261,
490 261, 261, 46, 261, 261, 261, 261, 261, 261, 261,
491 261, 261, 99, 261, 261, 261, 261, 261, 98, 261,
492 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
493 261, 261, 261, 47, 261, 261, 261, 261, 261, 261,
494 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
495 261, 261, 261, 141, 261, 261, 261, 261, 261, 261,
496
497 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
498 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
499 36, 261, 261, 261, 261, 261, 261, 261, 261, 261,
500 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
501 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
502 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
503 261, 261, 261, 205, 261, 261, 261, 261, 261, 261,
504 261, 261, 261, 261, 261, 261, 261, 261, 40, 261,
505 41, 261, 261, 261, 261, 86, 261, 87, 261, 261,
506 261, 84, 261, 261, 261, 261, 261, 261, 261, 261,
507
508 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
509 261, 261, 7, 261, 261, 261, 261, 261, 261, 261,
510 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
511 261, 183, 261, 261, 261, 261, 123, 261, 261, 261,
512 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
513 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
514 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
515 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
516 261, 261, 37, 261, 261, 261, 261, 261, 261, 261,
517 261, 261, 261, 261, 261, 261, 157, 261, 156, 261,
518
519 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
520 261, 261, 261, 261, 261, 261, 261, 261, 261, 16,
521 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
522 261, 261, 50, 261, 261, 261, 261, 261, 261, 261,
523 261, 164, 261, 261, 261, 261, 261, 89, 88, 261,
524 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
525 261, 261, 151, 261, 261, 261, 261, 261, 261, 261,
526 261, 107, 261, 261, 261, 261, 261, 261, 261, 261,
527 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
528 261, 68, 261, 261, 261, 261, 261, 261, 261, 261,
529
530 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
531 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
532 261, 261, 261, 261, 261, 261, 261, 72, 261, 261,
533 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
534 261, 44, 261, 261, 261, 261, 261, 261, 261, 261,
535 261, 261, 261, 261, 261, 261, 261, 261, 154, 155,
536 261, 215, 261, 261, 261, 261, 261, 261, 261, 261,
537 261, 6, 261, 261, 261, 261, 261, 261, 261, 261,
538 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
539 261, 261, 217, 261, 261, 261, 238, 261, 261, 261,
540
541 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
542 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
543 34, 261, 261, 261, 261, 261, 261, 261, 261, 147,
544 261, 261, 261, 102, 261, 261, 261, 261, 261, 261,
545 261, 261, 261, 261, 169, 261, 148, 261, 261, 181,
546 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
547 261, 261, 261, 261, 261, 261, 35, 261, 261, 261,
548 261, 261, 261, 104, 93, 261, 94, 261, 261, 92,
549 261, 261, 261, 261, 261, 261, 261, 261, 118, 261,
550 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
551
552 204, 261, 261, 261, 261, 261, 261, 261, 261, 149,
553 261, 261, 261, 261, 261, 152, 261, 261, 180, 261,
554 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
555 261, 261, 82, 261, 261, 261, 261, 261, 261, 261,
556 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
557 261, 261, 261, 261, 42, 261, 261, 261, 22, 261,
558 261, 261, 261, 261, 19, 261, 261, 261, 23, 261,
559 128, 261, 261, 261, 261, 261, 261, 261, 261, 261,
560 261, 261, 261, 261, 261, 261, 261, 261, 261, 57,
561 59, 261, 261, 261, 261, 261, 261, 261, 261, 261,
562
563 261, 261, 261, 221, 261, 261, 261, 191, 261, 261,
564 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
565 261, 261, 261, 95, 261, 261, 261, 261, 261, 261,
566 261, 261, 117, 261, 261, 261, 261, 261, 261, 261,
567 261, 261, 261, 261, 261, 261, 261, 261, 232, 261,
568 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
569 261, 261, 122, 261, 261, 261, 261, 261, 261, 261,
570 261, 261, 261, 261, 261, 261, 175, 261, 261, 261,
571 261, 261, 261, 261, 261, 241, 261, 261, 261, 261,
572 261, 261, 261, 261, 139, 261, 261, 261, 261, 261,
573
574 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
575 261, 261, 261, 261, 261, 134, 261, 142, 261, 261,
576 261, 261, 261, 110, 261, 261, 261, 261, 261, 78,
577 261, 261, 261, 261, 167, 261, 261, 261, 261, 261,
578 182, 261, 261, 261, 261, 261, 261, 261, 261, 261,
579 261, 261, 261, 196, 261, 261, 261, 261, 261, 261,
580 103, 261, 261, 261, 261, 261, 261, 261, 261, 261,
581 138, 261, 261, 261, 261, 261, 60, 61, 261, 261,
582 261, 261, 261, 43, 261, 261, 261, 261, 261, 67,
583 143, 261, 158, 261, 184, 153, 261, 261, 261, 53,
584
585 261, 145, 261, 261, 261, 261, 261, 9, 261, 261,
586 261, 81, 261, 261, 261, 261, 209, 261, 261, 261,
587 166, 261, 261, 261, 261, 261, 261, 261, 261, 261,
588 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
589 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
590 261, 261, 261, 261, 261, 261, 261, 261, 137, 261,
591 261, 261, 261, 261, 261, 261, 261, 261, 261, 124,
592 220, 261, 261, 261, 261, 195, 261, 261, 261, 261,
593 261, 261, 261, 261, 177, 261, 261, 261, 261, 261,
594 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
595
596 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
597 235, 261, 144, 261, 261, 261, 52, 54, 261, 261,
598 261, 261, 261, 261, 261, 80, 261, 261, 261, 261,
599 207, 261, 261, 261, 216, 261, 261, 261, 261, 261,
600 261, 171, 30, 24, 26, 261, 261, 261, 261, 261,
601 31, 25, 27, 261, 261, 261, 261, 261, 261, 77,
602 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
603 261, 261, 261, 261, 261, 261, 261, 173, 170, 261,
604 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
605 261, 261, 51, 261, 105, 261, 261, 261, 261, 261,
606
607 261, 261, 261, 119, 13, 261, 261, 261, 261, 261,
608 261, 261, 261, 261, 230, 261, 233, 261, 261, 261,
609 261, 261, 261, 12, 261, 261, 21, 261, 261, 261,
610 213, 261, 261, 261, 218, 261, 55, 261, 179, 261,
611 172, 261, 261, 261, 261, 261, 261, 261, 261, 261,
612 261, 261, 261, 261, 261, 261, 133, 132, 261, 261,
613 261, 261, 261, 261, 261, 261, 261, 174, 168, 261,
614 261, 261, 222, 261, 261, 261, 261, 261, 261, 261,
615 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
616 261, 261, 261, 261, 261, 62, 261, 261, 261, 208,
617
618 261, 261, 261, 261, 261, 178, 261, 261, 261, 261,
619 261, 261, 261, 261, 239, 240, 130, 56, 261, 261,
620 261, 90, 91, 261, 125, 261, 127, 261, 159, 261,
621 261, 261, 131, 261, 261, 185, 261, 261, 261, 261,
622 261, 261, 261, 112, 261, 261, 261, 261, 261, 261,
623 261, 261, 261, 261, 261, 192, 261, 261, 261, 261,
624 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
625 160, 261, 261, 206, 261, 234, 261, 261, 261, 38,
626 261, 261, 261, 261, 4, 261, 261, 111, 261, 261,
627 261, 261, 261, 261, 261, 261, 261, 261, 261, 188,
628
629 32, 33, 261, 261, 261, 261, 261, 261, 261, 223,
630 261, 261, 261, 261, 261, 261, 194, 261, 261, 163,
631 261, 261, 261, 261, 261, 261, 261, 261, 261, 65,
632 261, 39, 212, 261, 189, 261, 261, 11, 261, 261,
633 261, 261, 261, 261, 161, 69, 261, 261, 261, 261,
634 261, 136, 261, 261, 261, 261, 261, 114, 261, 261,
635 261, 261, 261, 261, 261, 261, 261, 193, 108, 261,
636 96, 97, 261, 261, 261, 71, 75, 70, 261, 63,
637 261, 261, 261, 10, 261, 261, 261, 210, 261, 261,
638 261, 261, 135, 261, 261, 261, 261, 261, 261, 261,
639
640 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
641 76, 74, 261, 64, 231, 261, 261, 261, 150, 261,
642 261, 162, 261, 261, 261, 261, 261, 261, 126, 58,
643 261, 261, 261, 261, 261, 224, 261, 261, 261, 261,
644 261, 261, 261, 109, 73, 115, 116, 66, 261, 211,
645 129, 261, 261, 261, 261, 187, 261, 261, 261, 261,
646 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
647 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
648 261, 261, 261, 261, 261, 261, 261, 79, 261, 186,
649 261, 203, 228, 261, 261, 261, 261, 261, 261, 261,
650
651 261, 261, 5, 261, 261, 261, 229, 261, 261, 261,
652 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
653 261, 261, 261, 261, 261, 261, 261, 261, 113, 261,
654 261, 261, 261, 261, 261, 261, 261, 261, 146, 261,
655 261, 261, 261, 261, 261, 261, 261, 261, 225, 261,
656 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
657 261, 261, 261, 261, 261, 261, 242, 261, 261, 199,
658 261, 261, 261, 261, 261, 226, 261, 261, 261, 261,
659 261, 261, 227, 261, 261, 261, 197, 261, 200, 201,
660 261, 261, 261, 261, 261, 198, 202, 0
661
376 1, 1, 248, 248, 252, 252, 256, 256, 260, 260,
377 1, 1, 267, 264, 1, 246, 246, 265, 2, 264,
378 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
379 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
380 264, 265, 248, 249, 249, 250, 265, 252, 253, 253,
381 254, 265, 259, 256, 257, 257, 258, 265, 260, 261,
382 261, 262, 265, 263, 247, 2, 251, 263, 265, 264,
383 0, 1, 2, 2, 2, 2, 264, 264, 264, 264,
384 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
385 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
386
387 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
388 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
389 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
390 264, 264, 264, 264, 264, 264, 264, 264, 264, 248,
391 0, 252, 0, 259, 0, 256, 260, 0, 263, 0,
392 2, 2, 263, 264, 264, 264, 264, 264, 264, 264,
393 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
394 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
395 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
396 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
397
398 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
399 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
400 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
401 264, 264, 264, 264, 264, 264, 263, 264, 264, 264,
402 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
403 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
404 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
405 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
406 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
407 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
408
409 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
410 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
411 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
412 103, 264, 264, 264, 264, 264, 264, 264, 263, 264,
413 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
414 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
415 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
416 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
417 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
418 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
419
420 264, 264, 264, 264, 264, 87, 264, 264, 264, 264,
421 264, 264, 8, 264, 264, 264, 264, 264, 264, 264,
422 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
423 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
424 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
425 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
426 264, 264, 264, 108, 264, 263, 264, 264, 264, 264,
427 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
428 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
429 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
430
431 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
432 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
433 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
434 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
435 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
436 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
437 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
438 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
439 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
440 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
441
442 264, 264, 264, 264, 263, 264, 264, 264, 264, 264,
443 264, 264, 264, 264, 264, 264, 47, 264, 264, 264,
444 264, 264, 264, 264, 264, 264, 264, 264, 264, 192,
445 264, 14, 15, 264, 18, 17, 264, 264, 264, 264,
446 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
447 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
448 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
449 264, 264, 264, 264, 102, 264, 264, 264, 264, 264,
450 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
451 264, 178, 264, 264, 264, 264, 264, 264, 264, 264,
452
453 264, 264, 264, 264, 264, 264, 3, 264, 264, 264,
454 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
455 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
456 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
457 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
458 264, 264, 263, 264, 264, 264, 264, 264, 264, 264,
459 240, 264, 264, 239, 264, 264, 264, 264, 264, 264,
460 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
461 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
462 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
463
464 264, 264, 264, 264, 255, 264, 264, 264, 264, 264,
465 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
466 264, 264, 264, 264, 264, 50, 264, 216, 264, 264,
467 264, 264, 264, 264, 264, 264, 264, 264, 264, 51,
468 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
469 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
470 167, 264, 264, 264, 264, 264, 264, 264, 264, 264,
471 264, 264, 264, 264, 264, 264, 264, 20, 264, 264,
472 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
473 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
474
475 264, 264, 123, 264, 264, 255, 264, 264, 264, 264,
476 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
477 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
478 264, 264, 222, 264, 264, 264, 264, 264, 264, 264,
479 264, 264, 264, 264, 142, 264, 264, 264, 264, 264,
480 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
481 264, 264, 264, 264, 264, 122, 264, 264, 264, 264,
482 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
483 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
484 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
485
486 264, 85, 264, 264, 264, 264, 264, 264, 264, 264,
487 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
488 264, 264, 264, 264, 264, 28, 264, 264, 264, 264,
489 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
490 29, 264, 264, 264, 264, 264, 264, 264, 264, 264,
491 264, 264, 48, 264, 264, 264, 264, 264, 264, 264,
492 264, 264, 101, 264, 264, 264, 264, 264, 100, 264,
493 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
494 264, 264, 264, 49, 264, 264, 264, 264, 264, 264,
495 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
496
497 264, 264, 264, 143, 264, 264, 264, 264, 264, 264,
498 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
499 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
500 38, 264, 264, 264, 264, 264, 264, 264, 264, 264,
501 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
502 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
503 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
504 264, 264, 264, 264, 207, 264, 264, 264, 264, 264,
505 264, 264, 264, 264, 264, 264, 264, 264, 264, 42,
506 264, 43, 264, 264, 264, 264, 88, 264, 89, 264,
507
508 264, 264, 86, 264, 264, 264, 264, 264, 264, 264,
509 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
510 264, 264, 264, 264, 264, 7, 264, 264, 264, 264,
511 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
512 264, 264, 264, 264, 185, 264, 264, 264, 264, 125,
513 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
514 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
515 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
516 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
517 264, 264, 264, 264, 264, 39, 264, 264, 264, 264,
518
519 264, 264, 264, 264, 264, 264, 264, 264, 264, 159,
520 264, 158, 264, 264, 264, 264, 264, 264, 264, 264,
521 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
522 264, 264, 264, 16, 264, 264, 264, 264, 264, 264,
523 264, 264, 264, 264, 264, 264, 52, 264, 264, 264,
524 264, 264, 264, 264, 264, 166, 264, 264, 264, 264,
525 264, 91, 90, 264, 264, 264, 264, 264, 264, 264,
526 264, 264, 264, 264, 264, 264, 264, 264, 153, 264,
527 264, 264, 264, 264, 264, 264, 264, 109, 264, 264,
528 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
529
530 264, 264, 264, 264, 264, 264, 264, 70, 264, 264,
531 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
532 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
533 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
534 264, 264, 264, 74, 264, 264, 264, 264, 264, 264,
535 264, 264, 264, 264, 264, 264, 264, 46, 264, 264,
536 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
537 264, 264, 264, 264, 156, 157, 264, 217, 264, 264,
538 264, 264, 264, 264, 264, 264, 264, 264, 6, 264,
539 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
540
541 264, 264, 264, 264, 264, 264, 264, 264, 264, 220,
542 264, 264, 264, 241, 264, 264, 264, 264, 264, 264,
543 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
544 264, 264, 264, 264, 264, 264, 264, 264, 264, 36,
545 264, 264, 264, 264, 264, 264, 264, 264, 149, 264,
546 264, 264, 104, 264, 264, 264, 264, 264, 264, 264,
547 264, 264, 264, 171, 264, 150, 264, 264, 183, 264,
548 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
549 264, 264, 264, 264, 264, 37, 264, 264, 264, 264,
550 264, 264, 106, 95, 264, 96, 264, 264, 94, 264,
551
552 264, 264, 264, 264, 264, 264, 264, 120, 264, 264,
553 264, 264, 264, 264, 264, 264, 264, 264, 264, 206,
554 264, 264, 264, 264, 264, 264, 264, 264, 151, 264,
555 264, 264, 264, 264, 154, 264, 264, 264, 182, 264,
556 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
557 264, 264, 84, 264, 264, 264, 264, 264, 264, 264,
558 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
559 264, 264, 264, 264, 44, 264, 264, 264, 22, 264,
560 264, 264, 264, 264, 19, 264, 264, 264, 264, 23,
561 32, 264, 130, 264, 264, 264, 264, 264, 264, 264,
562
563 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
564 264, 59, 61, 264, 264, 264, 264, 264, 264, 264,
565 264, 264, 264, 264, 264, 224, 264, 264, 264, 193,
566 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
567 264, 264, 264, 264, 264, 97, 264, 264, 264, 264,
568 264, 264, 264, 264, 119, 264, 264, 264, 264, 264,
569 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
570 235, 264, 264, 264, 264, 264, 264, 264, 264, 264,
571 264, 264, 264, 264, 264, 124, 264, 264, 264, 264,
572 264, 264, 264, 264, 264, 264, 264, 264, 264, 177,
573
574 264, 264, 264, 264, 264, 264, 264, 264, 244, 264,
575 264, 264, 264, 264, 264, 264, 264, 141, 264, 264,
576 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
577 264, 264, 264, 264, 264, 264, 264, 264, 264, 136,
578 264, 144, 264, 264, 264, 264, 264, 112, 264, 264,
579 264, 264, 264, 80, 264, 264, 264, 264, 169, 264,
580 264, 264, 264, 264, 184, 264, 264, 264, 264, 264,
581 264, 264, 264, 264, 264, 264, 264, 198, 264, 264,
582 264, 264, 264, 264, 105, 264, 264, 264, 264, 264,
583 264, 264, 264, 264, 140, 264, 264, 264, 264, 264,
584
585 62, 63, 264, 264, 264, 264, 264, 45, 264, 264,
586 264, 264, 264, 69, 145, 264, 160, 264, 186, 155,
587 218, 264, 264, 264, 55, 264, 147, 264, 264, 264,
588 264, 264, 9, 264, 264, 264, 83, 264, 264, 264,
589 264, 211, 264, 264, 264, 168, 264, 264, 264, 264,
590 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
591 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
592 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
593 264, 264, 264, 264, 139, 264, 264, 264, 264, 264,
594 264, 264, 264, 264, 264, 126, 223, 264, 264, 264,
595
596 264, 197, 264, 264, 264, 264, 264, 264, 264, 264,
597 179, 264, 264, 264, 264, 264, 264, 264, 264, 264,
598 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
599 264, 264, 264, 264, 264, 264, 238, 264, 146, 264,
600 264, 264, 54, 56, 264, 264, 264, 264, 264, 264,
601 264, 82, 264, 264, 264, 264, 209, 264, 264, 264,
602 219, 264, 264, 264, 264, 264, 264, 173, 30, 24,
603 26, 264, 264, 264, 264, 264, 264, 31, 25, 27,
604 264, 264, 264, 264, 264, 264, 79, 264, 264, 264,
605 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
606
607 264, 264, 264, 264, 175, 172, 264, 264, 264, 264,
608 264, 264, 264, 264, 264, 264, 264, 264, 264, 53,
609 264, 107, 264, 264, 264, 264, 264, 264, 264, 264,
610 121, 13, 264, 264, 264, 264, 264, 264, 264, 264,
611 264, 233, 264, 236, 264, 264, 264, 264, 264, 264,
612 12, 264, 264, 21, 264, 264, 264, 215, 264, 264,
613 264, 221, 264, 57, 264, 181, 264, 174, 264, 264,
614 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
615 264, 264, 264, 264, 135, 134, 264, 264, 264, 264,
616 264, 264, 264, 264, 264, 176, 170, 264, 264, 264,
617
618 225, 264, 264, 264, 264, 264, 264, 264, 264, 264,
619 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
620 264, 264, 264, 64, 264, 264, 264, 210, 264, 264,
621 264, 264, 264, 180, 264, 264, 264, 264, 264, 264,
622 264, 264, 242, 243, 132, 58, 264, 264, 264, 92,
623 93, 264, 264, 127, 264, 129, 264, 161, 264, 264,
624 264, 133, 264, 264, 187, 264, 264, 264, 264, 264,
625 264, 264, 114, 264, 264, 264, 264, 264, 264, 264,
626 264, 264, 264, 264, 194, 264, 264, 264, 264, 264,
627 264, 264, 264, 264, 264, 264, 264, 264, 264, 162,
628
629 264, 264, 208, 264, 237, 264, 264, 264, 40, 264,
630 264, 264, 264, 4, 264, 264, 113, 264, 264, 264,
631 264, 264, 264, 264, 264, 264, 264, 264, 264, 190,
632 33, 34, 264, 264, 264, 264, 264, 264, 264, 226,
633 264, 264, 264, 264, 264, 264, 196, 264, 264, 165,
634 264, 264, 264, 264, 264, 264, 264, 264, 264, 67,
635 264, 41, 214, 264, 191, 264, 264, 11, 264, 264,
636 264, 264, 264, 264, 163, 71, 264, 264, 264, 264,
637 264, 264, 138, 264, 264, 264, 264, 264, 116, 264,
638 264, 264, 264, 264, 264, 264, 264, 264, 195, 110,
639
640 264, 98, 99, 264, 264, 264, 73, 77, 72, 264,
641 65, 264, 264, 264, 10, 264, 264, 264, 212, 264,
642 35, 264, 264, 264, 137, 264, 264, 264, 264, 264,
643 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
644 264, 264, 78, 76, 264, 66, 234, 264, 264, 264,
645 152, 264, 264, 164, 264, 264, 264, 264, 264, 264,
646 128, 60, 264, 264, 264, 264, 264, 227, 264, 264,
647 264, 264, 264, 264, 264, 111, 75, 117, 118, 68,
648 264, 213, 131, 264, 264, 264, 264, 189, 264, 264,
649 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
650
651 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
652 264, 264, 264, 264, 264, 264, 264, 264, 264, 81,
653 264, 188, 264, 205, 231, 264, 264, 264, 264, 264,
654 264, 264, 264, 264, 5, 264, 264, 264, 232, 264,
655 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
656 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
657 115, 264, 264, 264, 264, 264, 264, 264, 264, 264,
658 148, 264, 264, 264, 264, 264, 264, 264, 264, 264,
659 228, 264, 264, 264, 264, 264, 264, 264, 264, 264,
660 264, 264, 264, 264, 264, 264, 264, 264, 245, 264,
661
662 264, 201, 264, 264, 264, 264, 264, 229, 264, 264,
663 264, 264, 264, 264, 230, 264, 264, 264, 199, 264,
664 202, 203, 264, 264, 264, 264, 264, 200, 204, 0
662665 } ;
663666
664667 static yyconst YY_CHAR yy_ec[256] =
704707 1, 1, 1, 1, 1, 1
705708 } ;
706709
707 static yyconst flex_uint16_t yy_base[2613] =
710 static yyconst flex_uint16_t yy_base[2645] =
708711 { 0,
709712 0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
710 131, 137, 352, 307, 96, 7434, 7434, 7434, 109, 171,
713 131, 137, 352, 307, 96, 7525, 7525, 7525, 109, 171,
711714 85, 142, 215, 83, 117, 152, 207, 50, 110, 75,
712715 167, 231, 112, 275, 121, 259, 323, 243, 291, 320,
713 170, 368, 289, 7434, 7434, 7434, 104, 288, 7434, 7434,
714 7434, 147, 286, 289, 7434, 7434, 7434, 305, 239, 7434,
715 7434, 7434, 160, 210, 7434, 372, 7434, 177, 382, 201,
716 170, 368, 289, 7525, 7525, 7525, 104, 288, 7525, 7525,
717 7525, 147, 286, 289, 7525, 7525, 7525, 305, 239, 7525,
718 7525, 7525, 160, 210, 7525, 372, 7525, 177, 382, 201,
716719 386, 115, 0, 390, 0, 0, 160, 162, 199, 204,
717720 188, 169, 303, 222, 256, 248, 377, 369, 254, 226,
718721 313, 271, 365, 382, 296, 327, 391, 392, 384, 420,
741744
742745 1037, 1044, 1061, 1057, 1054, 1071, 1058, 1055, 1062, 1064,
743746 1075, 1077, 1099, 1085, 1098, 1111, 1102, 1104, 1113, 1094,
744 1125, 1124, 1122, 1132, 1126, 1151, 1130, 1135, 1148, 1155,
745 7434, 1173, 1166, 1218, 1164, 1175, 1209, 1181, 1168, 1196,
746 1171, 1208, 1212, 1223, 1198, 1138, 1213, 1248, 1178, 1202,
747 1226, 1240, 1236, 1247, 1243, 1245, 1244, 1263, 1271, 1251,
748 1253, 1279, 1287, 1261, 1275, 1278, 1283, 1293, 1296, 1309,
749 1298, 1292, 1314, 1311, 1317, 1323, 1306, 1334, 1333, 1326,
750 1321, 1325, 1341, 1350, 1344, 1355, 1362, 1338, 1364, 1366,
751 1382, 1372, 1376, 1365, 1389, 1378, 1373, 1368, 1390, 1392,
752
753 1393, 1400, 1406, 1402, 1417, 7434, 1421, 1405, 1428, 1416,
754 1410, 1427, 7434, 1438, 1414, 1432, 1445, 1433, 1452, 1457,
755 1437, 1459, 1473, 1454, 1468, 1481, 1461, 1477, 1465, 1469,
756 1476, 1486, 1478, 1501, 1494, 1492, 1538, 1495, 1497, 1507,
757 1520, 1514, 1535, 1532, 1550, 1533, 1560, 1541, 1552, 1545,
758 1568, 1559, 1566, 1577, 1575, 1576, 1584, 1590, 1581, 1591,
759 1601, 7434, 1603, 1605, 1556, 1602, 1595, 1596, 1617, 1620,
760 1622, 1634, 1630, 1644, 1637, 1161, 1625, 1636, 1629, 1639,
761 1647, 1653, 1649, 1652, 1667, 1669, 1689, 1674, 1688, 1690,
762 1664, 1692, 1693, 1702, 1677, 1694, 1681, 1695, 1704, 1682,
763
764 1709, 1714, 1711, 1719, 1706, 1730, 1717, 1716, 1734, 1726,
765 1744, 1731, 1741, 1736, 1743, 1755, 1745, 1750, 1778, 1771,
766 1781, 1786, 1783, 1789, 1775, 1782, 1792, 1773, 1796, 1805,
767 1809, 1815, 1804, 1820, 1803, 1831, 1823, 1811, 1821, 1842,
768 1838, 1845, 1841, 1846, 1864, 1836, 1847, 1861, 1850, 1848,
769 1857, 1874, 1882, 1862, 1871, 1887, 1895, 1896, 1877, 1884,
770 1898, 1901, 1908, 1913, 1914, 1915, 1916, 1929, 1911, 1922,
771 1921, 1927, 1938, 1930, 1956, 1943, 1948, 1951, 1953, 1958,
772 1955, 1978, 1964, 1965, 1970, 1982, 1972, 1983, 1973, 1997,
773 1985, 2000, 2011, 2013, 2001, 2014, 2017, 2006, 2023, 2010,
774
775 2025, 2033, 2031, 2028, 2045, 2024, 2047, 2043, 2056, 2066,
776 2065, 2059, 7434, 2052, 1998, 2053, 2072, 2070, 2060, 2089,
777 2069, 2083, 2081, 2087, 2130, 7434, 2096, 7434, 7434, 2100,
778 7434, 7434, 2104, 2114, 2128, 2118, 2123, 2110, 2129, 2133,
779 2095, 2180, 2131, 2140, 2146, 2150, 2183, 2085, 2167, 2177,
780 2170, 2188, 2163, 2190, 2191, 2201, 2194, 2205, 2218, 2207,
781 2210, 2223, 2234, 2221, 2225, 2220, 2228, 2237, 2241, 2275,
782 7434, 2252, 2249, 2251, 2250, 2254, 2263, 2264, 2255, 2269,
783 2276, 2266, 2259, 2279, 2281, 2297, 2286, 7434, 2295, 2298,
784 2306, 2300, 2291, 2312, 2314, 2310, 2318, 2315, 2321, 2320,
785
786 2299, 2348, 7434, 2341, 2349, 2331, 2355, 2342, 2334, 2344,
787 2350, 2346, 2356, 2370, 2362, 2369, 2375, 2373, 2376, 2390,
788 2392, 2394, 2386, 2389, 2400, 2383, 2403, 2410, 2413, 2408,
789 2419, 2414, 2407, 2432, 2433, 2421, 2448, 2434, 2436, 2440,
790 2430, 2459, 2453, 2456, 2450, 2457, 2464, 2463, 2470, 2471,
791 2460, 2461, 2487, 2475, 7434, 2469, 2489, 7434, 2484, 2485,
792 2531, 2516, 2514, 2495, 2498, 2522, 2512, 2519, 2521, 2560,
793 2543, 2555, 2541, 2561, 2567, 2550, 2544, 2571, 2569, 2578,
794 2580, 1925, 2583, 2562, 2577, 2622, 2588, 2592, 2599, 2594,
795 2589, 2604, 2610, 2611, 2616, 2620, 2629, 2640, 7434, 2619,
796
797 2631, 2632, 2647, 2637, 2649, 2646, 2661, 2663, 2664, 2658,
798 2668, 2667, 2674, 2662, 2669, 2673, 2675, 2689, 2708, 7434,
799 2696, 7434, 2691, 2695, 2697, 2702, 2716, 2722, 2723, 2710,
800 2725, 2713, 2718, 7434, 2720, 2738, 2755, 2748, 2743, 2740,
801 2744, 2753, 2746, 2769, 2752, 2773, 2771, 2764, 2776, 2787,
802 2778, 2790, 2797, 2798, 7434, 2800, 2788, 2801, 2782, 2811,
803 2809, 2805, 2813, 2808, 2820, 2821, 2817, 2825, 2847, 2844,
804 2846, 7434, 2836, 2860, 2856, 2850, 2840, 2861, 2868, 2857,
805 2853, 2866, 2867, 2855, 2884, 2869, 2871, 2885, 2888, 1093,
806 2883, 2894, 2886, 2882, 7434, 2895, 2904, 61, 2906, 2908,
807
808 2912, 2913, 2910, 2925, 2909, 2943, 2947, 2939, 2946, 2949,
809 2941, 2945, 2952, 2938, 2942, 2951, 2962, 2964, 2960, 2976,
810 2974, 2987, 2975, 3002, 7434, 2996, 3000, 2999, 2984, 3009,
811 3010, 3004, 3003, 3019, 3036, 3023, 7434, 2967, 3039, 3027,
812 3046, 3045, 3043, 3060, 3034, 3050, 3066, 3057, 3055, 3069,
813 3065, 3072, 3077, 3070, 3078, 3080, 3092, 7434, 2969, 3089,
814 3087, 3091, 3104, 3094, 3129, 3107, 3118, 3110, 3119, 3155,
815 3122, 3130, 3145, 3142, 3149, 3152, 3153, 3162, 3170, 3172,
816 3157, 3156, 3181, 3179, 3182, 3146, 3201, 3198, 3206, 3229,
817 3213, 2127, 3196, 7434, 3208, 3202, 3197, 3223, 3221, 3204,
818
819 3231, 3237, 3246, 3233, 3235, 3253, 3257, 3262, 3263, 3259,
820 3248, 3258, 3264, 3219, 3272, 3292, 3295, 7434, 3298, 3300,
821 3284, 3302, 3286, 3307, 3304, 3291, 3294, 3308, 3296, 3321,
822 3318, 7434, 3314, 3332, 3330, 3335, 3341, 3348, 3333, 3344,
823 3345, 3342, 7434, 3359, 3361, 3353, 3366, 3354, 3364, 3373,
824 3370, 3367, 7434, 3369, 3372, 3371, 3379, 3386, 7434, 3406,
825 3388, 3385, 3391, 3390, 3407, 3419, 3401, 3399, 3409, 3418,
826 3437, 3415, 3434, 7434, 3422, 3458, 3435, 3432, 3429, 3442,
827 3445, 3468, 3453, 3461, 3479, 3474, 3466, 3462, 3465, 3480,
828 3489, 3492, 3493, 7434, 3482, 3497, 3511, 3495, 3509, 3514,
829
830 3505, 3516, 3520, 3530, 3531, 3529, 3523, 3542, 3547, 3541,
831 3544, 3550, 3555, 3557, 3560, 3561, 3484, 3502, 3564, 3582,
832 7434, 3567, 3585, 3586, 3578, 3584, 3587, 3592, 3600, 3597,
833 3607, 3613, 3606, 3611, 3636, 3637, 3619, 3616, 3622, 3629,
834 3631, 3626, 3628, 3633, 3644, 3664, 3642, 3646, 3653, 3655,
835 3656, 3663, 3671, 3666, 3673, 3675, 3685, 3690, 3692, 3691,
836 3680, 3693, 3719, 7434, 3700, 3709, 3688, 3710, 3728, 3729,
837 3735, 3737, 3739, 3722, 3712, 3727, 3749, 3745, 7434, 3732,
838 7434, 3752, 3753, 3759, 3768, 7434, 3771, 7434, 3775, 3762,
839 3765, 7434, 3779, 3783, 3767, 3785, 3792, 3776, 3772, 3795,
840
841 3787, 3799, 3798, 3807, 3812, 3809, 3820, 3805, 3819, 3831,
842 3814, 3832, 7434, 3838, 3824, 3836, 3825, 3839, 3843, 3848,
843 3856, 3847, 3858, 3846, 3874, 3864, 3885, 3876, 3891, 3869,
844 3895, 7434, 3883, 3892, 3880, 3894, 7434, 3893, 3901, 3903,
845 3909, 3907, 3918, 3910, 3914, 3920, 3919, 3945, 3940, 3938,
846 3944, 3949, 3930, 3958, 3967, 3968, 3972, 3959, 3966, 3956,
847 3965, 3977, 3982, 3992, 3993, 3994, 3980, 4000, 4002, 4007,
848 3990, 3995, 3996, 3999, 4004, 4021, 4001, 4041, 4017, 4026,
849 4024, 4028, 7434, 4047, 4030, 4051, 4053, 4043, 4045, 4039,
850 4034, 4060, 4067, 4064, 4080, 4068, 7434, 4073, 7434, 4072,
851
852 4075, 4101, 4100, 4104, 4086, 4107, 4090, 4099, 4091, 4113,
853 4114, 4119, 4121, 4109, 4130, 4120, 4128, 4135, 4132, 7434,
854 4133, 4127, 4152, 4147, 4155, 4156, 4166, 4175, 4150, 4165,
855 4171, 4201, 7434, 4183, 4178, 4182, 4176, 4180, 4194, 4209,
856 4206, 7434, 4195, 4203, 4211, 4205, 4216, 7434, 7434, 4204,
857 4210, 4226, 4222, 4227, 4245, 4238, 4230, 4228, 4246, 4263,
858 4244, 4249, 7434, 4264, 4250, 4262, 4274, 4275, 4276, 4273,
859 4261, 7434, 4268, 4269, 4285, 4286, 4295, 4292, 4291, 4308,
860 4309, 4311, 4297, 4300, 4290, 4317, 4310, 4324, 4299, 4331,
861 4333, 7434, 4335, 4336, 4339, 4337, 4344, 4350, 4332, 4343,
862
863 4351, 4356, 4363, 4366, 4370, 4371, 4376, 4378, 4364, 4379,
864 4385, 4393, 4383, 4380, 4395, 4414, 4417, 4419, 4423, 4405,
865 4424, 4407, 4408, 4430, 4432, 4422, 4434, 7434, 4438, 4421,
866 4443, 4433, 4444, 4440, 4452, 4459, 4463, 4442, 4461, 4473,
867 4464, 7434, 4478, 4469, 4470, 4487, 4479, 4492, 4486, 4496,
868 4480, 4493, 4491, 4511, 4504, 4505, 4514, 4526, 7434, 7434,
869 4520, 7434, 4509, 4533, 4519, 4528, 4531, 4522, 4536, 4539,
870 4543, 7434, 4545, 4557, 4549, 4561, 4576, 4578, 4574, 4575,
871 4570, 4562, 4564, 4573, 4584, 4563, 4567, 4597, 4604, 4595,
872 4601, 4609, 7434, 4599, 4608, 4603, 7434, 4614, 4617, 4626,
873
874 4625, 4623, 4635, 4647, 4637, 4628, 4624, 4648, 4650, 4652,
875 4657, 4665, 4656, 4671, 4678, 4685, 4686, 4661, 4677, 4691,
876 7434, 4681, 4696, 4690, 4676, 4711, 4688, 4712, 4697, 7434,
877 4707, 4703, 4716, 7434, 4723, 4724, 4731, 4732, 4713, 4740,
878 4735, 4737, 4738, 4736, 7434, 4749, 7434, 4752, 4758, 7434,
879 4761, 4762, 4751, 4757, 4766, 4772, 4781, 4780, 4767, 4782,
880 4778, 4771, 4788, 4798, 4800, 4797, 7434, 4809, 4802, 4807,
881 4813, 4814, 4815, 7434, 7434, 4806, 7434, 4819, 4823, 7434,
882 4817, 4831, 4836, 4834, 4853, 4850, 4856, 4849, 7434, 4858,
883 4840, 4863, 4859, 4848, 4861, 4862, 4870, 4867, 4883, 4896,
884
885 7434, 4879, 4891, 4904, 4887, 4892, 4908, 4916, 4897, 7434,
886 4922, 4926, 4889, 4931, 4906, 7434, 4932, 4935, 7434, 4933,
887 4945, 4924, 4951, 4944, 4952, 4960, 4943, 4949, 4971, 4962,
888 4968, 4972, 7434, 4963, 4977, 4975, 4984, 4978, 4983, 5002,
889 4995, 4999, 4998, 4986, 5004, 5018, 5020, 5008, 5025, 5013,
890 5011, 5023, 5027, 5012, 7434, 5041, 5044, 5050, 7434, 5043,
891 5038, 5039, 5042, 5046, 7434, 5063, 5067, 5069, 7434, 5073,
892 7434, 5080, 5068, 5066, 5078, 5088, 5098, 5095, 5109, 5093,
893 5106, 5111, 5101, 5126, 5122, 5128, 5124, 5121, 5115, 7434,
894 7434, 5132, 5143, 5125, 5140, 5145, 5138, 5139, 5152, 5155,
895
896 5163, 5159, 5173, 7434, 5170, 5156, 5171, 7434, 5153, 5183,
897 5166, 5177, 5190, 5181, 5191, 5194, 5202, 5196, 5204, 5186,
898 5201, 5219, 5214, 7434, 5208, 5213, 5221, 5218, 5230, 5216,
899 5238, 5231, 7434, 5240, 5253, 5257, 5243, 5247, 5259, 5262,
900 5266, 5268, 5258, 5265, 5274, 5282, 5281, 5292, 7434, 5293,
901 5276, 5284, 5295, 5306, 5310, 5308, 5312, 5299, 5313, 5314,
902 5301, 5311, 7434, 5324, 5316, 5326, 5332, 5328, 5341, 5333,
903 5348, 5350, 5339, 5352, 5342, 5362, 7434, 5351, 5357, 5355,
904 5377, 5365, 5368, 5375, 5378, 7434, 5383, 5376, 5379, 5385,
905 5374, 5408, 5402, 5413, 7434, 5404, 5414, 5417, 5403, 5405,
906
907 5412, 5420, 5429, 5432, 5435, 5443, 5426, 5441, 5449, 5456,
908 5457, 5460, 5453, 5235, 5459, 7434, 5452, 7434, 5462, 5473,
909 5478, 5494, 5482, 7434, 5481, 5490, 5488, 5492, 5501, 7434,
910 5499, 5496, 5498, 5508, 7434, 5515, 5509, 5523, 5532, 5527,
911 7434, 5546, 5545, 5547, 5537, 5554, 5551, 5539, 5555, 5549,
912 5563, 5538, 5559, 7434, 5558, 5564, 5568, 5587, 5573, 5594,
913 7434, 5576, 5579, 5583, 5601, 5582, 5603, 5574, 5606, 5589,
914 7434, 5595, 5610, 5618, 5609, 5625, 7434, 7434, 5626, 5630,
915 5638, 5620, 5642, 7434, 5644, 5623, 5637, 5651, 5647, 7434,
916 7434, 5655, 7434, 5645, 7434, 7434, 5654, 5657, 5660, 7434,
917
918 5661, 7434, 5671, 5676, 5664, 5670, 5674, 7434, 5666, 5682,
919 5695, 7434, 5687, 5704, 5684, 5690, 7434, 5700, 5689, 5697,
920 7434, 5709, 5713, 5720, 5721, 5716, 5714, 5719, 5729, 5730,
921 5738, 5739, 5744, 5737, 5732, 5753, 5757, 5751, 5762, 5767,
922 5768, 5760, 5766, 5770, 5759, 5764, 5778, 5774, 5783, 5776,
923 5784, 5794, 5788, 5799, 5815, 5805, 5793, 5803, 7434, 5806,
924 5795, 5800, 5825, 5822, 5832, 5833, 5846, 5847, 5852, 7434,
925 7434, 5855, 5830, 5843, 5839, 7434, 5841, 5844, 5845, 5849,
926 5868, 5864, 5860, 5885, 7434, 5890, 5883, 5893, 5879, 5880,
927 5894, 5887, 5881, 5882, 5906, 5896, 5903, 5916, 5756, 5913,
928
929 5917, 5918, 5929, 5919, 5921, 5930, 5936, 5947, 5948, 5951,
930 7434, 5933, 7434, 5944, 5949, 5954, 7434, 7434, 5962, 5964,
931 5970, 5957, 5965, 5985, 5984, 7434, 5971, 5989, 5987, 5977,
932 7434, 5975, 5981, 6003, 7434, 5994, 6005, 5999, 6007, 6014,
933 6023, 7434, 7434, 7434, 7434, 6024, 6009, 6016, 6022, 6028,
934 7434, 7434, 7434, 6033, 6013, 6034, 6036, 6040, 6045, 7434,
935 6042, 6043, 6063, 6058, 6047, 6076, 6070, 6074, 6060, 6064,
936 6086, 6083, 6091, 6081, 6084, 6093, 6094, 7434, 7434, 6085,
937 6099, 6122, 6109, 6119, 6104, 6103, 6123, 6118, 6117, 6125,
938 6130, 6126, 7434, 6134, 7434, 6142, 6143, 6140, 6150, 6157,
939
940 6159, 6155, 6162, 7434, 7434, 6153, 6161, 6160, 6173, 6175,
941 6169, 6176, 6192, 6182, 7434, 6189, 7434, 6187, 6193, 6215,
942 6211, 6205, 6212, 7434, 6214, 6209, 7434, 6221, 6216, 6218,
943 7434, 6226, 6229, 6235, 7434, 6237, 7434, 6246, 7434, 6231,
944 7434, 6239, 6254, 6247, 6261, 6260, 6265, 6266, 6268, 6256,
945 6269, 6252, 6258, 6280, 6276, 6273, 7434, 7434, 6289, 6278,
946 6282, 6286, 6285, 6313, 6290, 6307, 6310, 7434, 7434, 6309,
947 6312, 6316, 7434, 6296, 6322, 6327, 6326, 6332, 6335, 6337,
948 6330, 6341, 6348, 6342, 6362, 6364, 6366, 6369, 6357, 6371,
949 6354, 6353, 6377, 6375, 6385, 7434, 6399, 6404, 6390, 7434,
950
951 6409, 6403, 6411, 6413, 6406, 7434, 6396, 6416, 6417, 6419,
952 6412, 6424, 6434, 6440, 7434, 7434, 7434, 7434, 6425, 6441,
953 6444, 7434, 7434, 6432, 7434, 6446, 7434, 6439, 7434, 6448,
954 6461, 6454, 7434, 6459, 6468, 7434, 6465, 6470, 6478, 6473,
955 6474, 6479, 6488, 7434, 6484, 6497, 6499, 6503, 6489, 6487,
956 6505, 6495, 6517, 6511, 6518, 7434, 6500, 6524, 6523, 6515,
957 6520, 6537, 6534, 6532, 6530, 6544, 6551, 6527, 6558, 6546,
958 7434, 6562, 6567, 7434, 6560, 7434, 6569, 6561, 6579, 7434,
959 6572, 6566, 6568, 6555, 7434, 6589, 6583, 7434, 6576, 6600,
960 6602, 6596, 6587, 6593, 6603, 6599, 6609, 6618, 6627, 7434,
961
962 7434, 7434, 6610, 6611, 6638, 6635, 6637, 6646, 6625, 7434,
963 6639, 6642, 6632, 6655, 6658, 6653, 7434, 6656, 6641, 7434,
964 6657, 6661, 6667, 6663, 6674, 6681, 6686, 6689, 6687, 7434,
965 6691, 7434, 7434, 6678, 7434, 6671, 6694, 7434, 6696, 6698,
966 6680, 6701, 6709, 6706, 7434, 7434, 6703, 6720, 6718, 6729,
967 6727, 7434, 6714, 6715, 6738, 6719, 6742, 7434, 6741, 6733,
968 6730, 6744, 6745, 6724, 6756, 6757, 6761, 7434, 7434, 6760,
969 7434, 7434, 6755, 6781, 6782, 7434, 7434, 7434, 6785, 7434,
970 6789, 2173, 6788, 7434, 6794, 6777, 6783, 7434, 6796, 6791,
971 6799, 6787, 7434, 6793, 6808, 6805, 6827, 6828, 6816, 6829,
972
973 6830, 6841, 6845, 6821, 6822, 6826, 6854, 6855, 6843, 6850,
974 7434, 7434, 6851, 7434, 7434, 6852, 6863, 6865, 7434, 6858,
975 6871, 7434, 6875, 6861, 6868, 6882, 6869, 6891, 7434, 7434,
976 6879, 6890, 6873, 6900, 6886, 7434, 6902, 6913, 6898, 6909,
977 6896, 6903, 6906, 7434, 7434, 7434, 7434, 7434, 6916, 7434,
978 7434, 6911, 6931, 6917, 6933, 7434, 6927, 6940, 6948, 6943,
979 6941, 6954, 6939, 6938, 6958, 6970, 6944, 6972, 6968, 6975,
980 6963, 6964, 6992, 6993, 6998, 7001, 6985, 6990, 7002, 7003,
981 7006, 6982, 7009, 7023, 7012, 7022, 7021, 7434, 7027, 7434,
982 7025, 7434, 7434, 7041, 7044, 7038, 7028, 7032, 7049, 7048,
983
984 7050, 7037, 7434, 7058, 7052, 7053, 7434, 7061, 7055, 7067,
985 7079, 7082, 7072, 7093, 7096, 7084, 7085, 7097, 7105, 7108,
986 7099, 7109, 7111, 7112, 7088, 7126, 7125, 7133, 7434, 7136,
987 7123, 7138, 7127, 7128, 7153, 7132, 7143, 7148, 7434, 7158,
988 7152, 7157, 7163, 7167, 7168, 7165, 7172, 7174, 7434, 7170,
989 7197, 7183, 7199, 7204, 7201, 7208, 7184, 7207, 7211, 7210,
990 7217, 7213, 7214, 7226, 7231, 7227, 7434, 7222, 7232, 7434,
991 7247, 7250, 7237, 7238, 7259, 7434, 7261, 7243, 7248, 7265,
992 7268, 7264, 7434, 7269, 7276, 7273, 7434, 7285, 7434, 7434,
993 7292, 7282, 7283, 7281, 7299, 7434, 7434, 7434, 7342, 7349,
994
995 7356, 7363, 7370, 83, 7377, 7384, 7391, 7398, 7405, 7412,
996 7419, 7426
747 1125, 1124, 1122, 1132, 1126, 1174, 1134, 1135, 1142, 1151,
748 7525, 1169, 1153, 1223, 1143, 1173, 1191, 1181, 1184, 1194,
749 1192, 1218, 1209, 1203, 1097, 1196, 1162, 1252, 1183, 1221,
750 1224, 1231, 1254, 1234, 1236, 1240, 1245, 1261, 1279, 1253,
751 1266, 1265, 1291, 1274, 1269, 1283, 1281, 1296, 1273, 1309,
752 1302, 1292, 1300, 1293, 1310, 1322, 1305, 1330, 1329, 1336,
753 1320, 1325, 1347, 1350, 1334, 1348, 1358, 1351, 1360, 1357,
754 1366, 1355, 1372, 1362, 1374, 1381, 1384, 1378, 1382, 1392,
755
756 1403, 1387, 1397, 1391, 1415, 7525, 1419, 1401, 1405, 1417,
757 1418, 1409, 7525, 1432, 1431, 1427, 1440, 1428, 1461, 1455,
758 1443, 1458, 1467, 1453, 1468, 1479, 1449, 1476, 1464, 1462,
759 1488, 1494, 1487, 1496, 1489, 1485, 1532, 1498, 1490, 1514,
760 1516, 1517, 1512, 1529, 1519, 1528, 1568, 1526, 1547, 1556,
761 1565, 1545, 1579, 1567, 1559, 1569, 1562, 1577, 1583, 1578,
762 1593, 1575, 1595, 7525, 1604, 1614, 1480, 1607, 1606, 1597,
763 1609, 1610, 1611, 1626, 1622, 1640, 1624, 1627, 1649, 1643,
764 1652, 1646, 1657, 1648, 1656, 1662, 1675, 1650, 1686, 1682,
765 1671, 1672, 1669, 1674, 1678, 1673, 1676, 1699, 1687, 1700,
766
767 1707, 1688, 1693, 1713, 1721, 1715, 1705, 1720, 1709, 1733,
768 1736, 1716, 1746, 1735, 1744, 1737, 1756, 1760, 1752, 1759,
769 1764, 1742, 1767, 1773, 1779, 1785, 1780, 1762, 1793, 1783,
770 1680, 1786, 1789, 1797, 1813, 1808, 1812, 1816, 1822, 1810,
771 1804, 1826, 1824, 1838, 1831, 1839, 1852, 1835, 1837, 1840,
772 1843, 1849, 1854, 1864, 1870, 1862, 1866, 1867, 1885, 1881,
773 1876, 1890, 1879, 1900, 1886, 1889, 1893, 1891, 1894, 1918,
774 1915, 1908, 1912, 1913, 1921, 1928, 1931, 1917, 1927, 1948,
775 1929, 1935, 1949, 1942, 1950, 1965, 1968, 1959, 1960, 1976,
776 1969, 1963, 1970, 1977, 1995, 1994, 1997, 2008, 1988, 2007,
777
778 1980, 2003, 2009, 2011, 2015, 2016, 2021, 2012, 2022, 2036,
779 2040, 2034, 2032, 2056, 2037, 2053, 7525, 2041, 2061, 2046,
780 2067, 2058, 2059, 2074, 2064, 2078, 2075, 2083, 2126, 7525,
781 2080, 7525, 7525, 2089, 7525, 7525, 2081, 2107, 2105, 2114,
782 2119, 2101, 2110, 2123, 2084, 2175, 2139, 2133, 2141, 2136,
783 2122, 2129, 2157, 2168, 2158, 2188, 2178, 2171, 2185, 2195,
784 2180, 2199, 2204, 2203, 2206, 2205, 2210, 2212, 2214, 2216,
785 2217, 2231, 2242, 2251, 7525, 2243, 2172, 2252, 2246, 2247,
786 2254, 2256, 2239, 2255, 2258, 2240, 2268, 2263, 2269, 2276,
787 2274, 7525, 2279, 2285, 2292, 2289, 2299, 2295, 2291, 2282,
788
789 2309, 2296, 2312, 2308, 2306, 2337, 7525, 2326, 2314, 2322,
790 2341, 2324, 2327, 2332, 2334, 2342, 2351, 2359, 2353, 2357,
791 2368, 2354, 2369, 2378, 2379, 2382, 2374, 2390, 2380, 2391,
792 2375, 2393, 2396, 2402, 2415, 2405, 2419, 2404, 2403, 2421,
793 2423, 2418, 2435, 2442, 2431, 2426, 2438, 2452, 2437, 2454,
794 2449, 2465, 2456, 2458, 2455, 2471, 2453, 2468, 2469, 2484,
795 7525, 2463, 2477, 7525, 2485, 2486, 2532, 2492, 2502, 2494,
796 2497, 2513, 2512, 2518, 2511, 2531, 2528, 2547, 2545, 2552,
797 2556, 2549, 2544, 2559, 2483, 2571, 2577, 1152, 2586, 2566,
798 2564, 2613, 2583, 2584, 2588, 2591, 2596, 2615, 2599, 2611,
799
800 2608, 2609, 2617, 2641, 7525, 2604, 2634, 2624, 2636, 2655,
801 2648, 2638, 2647, 2658, 2646, 2663, 2660, 2652, 2672, 2661,
802 2664, 2666, 2683, 2688, 2700, 7525, 2685, 7525, 2689, 2687,
803 2684, 2694, 2712, 2713, 2715, 2698, 2721, 2705, 2710, 7525,
804 2719, 2731, 2737, 2740, 2739, 2732, 2733, 2742, 2746, 2759,
805 2736, 2762, 2768, 2754, 2767, 2769, 2760, 2779, 2780, 2765,
806 7525, 2787, 2781, 2794, 2795, 2791, 2796, 2792, 2806, 2798,
807 2807, 2808, 2802, 2818, 2822, 2825, 2833, 7525, 2813, 2819,
808 2846, 2844, 2841, 2829, 2845, 2851, 2852, 2843, 2855, 2856,
809 2864, 2865, 2857, 2869, 2866, 2872, 2875, 1093, 2877, 2888,
810
811 2879, 2876, 7525, 2881, 2905, 61, 2896, 2894, 2899, 2912,
812 2907, 2918, 2913, 2924, 2925, 2926, 2927, 2930, 2928, 2932,
813 2936, 2934, 2945, 2940, 2950, 2951, 2948, 2952, 2953, 2975,
814 2962, 2980, 7525, 2983, 2990, 2979, 2973, 2998, 2997, 3007,
815 3000, 3010, 3013, 3011, 7525, 3004, 3014, 3024, 3028, 3031,
816 3027, 3032, 3034, 3037, 3050, 3041, 3040, 3051, 3045, 3055,
817 3063, 3068, 3061, 3064, 3076, 7525, 2993, 3072, 3079, 3074,
818 3093, 3077, 3107, 3090, 3091, 3102, 3118, 3142, 3113, 3121,
819 3127, 3132, 3136, 3122, 3139, 3157, 3163, 3167, 3153, 3166,
820 3171, 3169, 3168, 3129, 3140, 3174, 3177, 3205, 3184, 1434,
821
822 3204, 7525, 3203, 3201, 3191, 3208, 3227, 3202, 3228, 3212,
823 3211, 3218, 3230, 3232, 3242, 3253, 3247, 3254, 3244, 3241,
824 3260, 3270, 3257, 3273, 3275, 7525, 3276, 3281, 3282, 3278,
825 3271, 3294, 3290, 3289, 3293, 3296, 3292, 3302, 3306, 3309,
826 7525, 3321, 3320, 3322, 3318, 3330, 3338, 3331, 3328, 3334,
827 3337, 3347, 7525, 3336, 3355, 3351, 3371, 3359, 3350, 3361,
828 3375, 3364, 7525, 3365, 3353, 3386, 3394, 3373, 7525, 3395,
829 3387, 3377, 3381, 3391, 3392, 3408, 3396, 3390, 3411, 3420,
830 3426, 3404, 3428, 7525, 3421, 3444, 3432, 3422, 3431, 3435,
831 3446, 3458, 3449, 3455, 3470, 3471, 3468, 3462, 3457, 3474,
832
833 3482, 3476, 3480, 7525, 3472, 3493, 3503, 3501, 3497, 3498,
834 3506, 3507, 3502, 3508, 3521, 3520, 3532, 3533, 3541, 3531,
835 3542, 3553, 3547, 3550, 3534, 3552, 3485, 3570, 3571, 3574,
836 7525, 3585, 3582, 3578, 3573, 3576, 3577, 3581, 3593, 3596,
837 3598, 3602, 3597, 3603, 3631, 3632, 3608, 3617, 3618, 3620,
838 3621, 3624, 3645, 3626, 3627, 3644, 3661, 3638, 3643, 3648,
839 3655, 3664, 3659, 3666, 3675, 3682, 3671, 3660, 3687, 3686,
840 3684, 3691, 3693, 3719, 7525, 3699, 3701, 3695, 3707, 3729,
841 3727, 3730, 3733, 3736, 3724, 3731, 3741, 3746, 3739, 7525,
842 3751, 7525, 3726, 3750, 3771, 3775, 7525, 3779, 7525, 3780,
843
844 3765, 3767, 7525, 3782, 3786, 3774, 3763, 3788, 3790, 3777,
845 3804, 3778, 3796, 3807, 3820, 3811, 3800, 3824, 3809, 3831,
846 3813, 3822, 3837, 3823, 3834, 7525, 3843, 3827, 3830, 3854,
847 3849, 3840, 3876, 3870, 3858, 3859, 3871, 3882, 3864, 3881,
848 3888, 3894, 3892, 3899, 7525, 3902, 3895, 3898, 3907, 7525,
849 3872, 3923, 3926, 3904, 3910, 3915, 3929, 3934, 3921, 3938,
850 3946, 3941, 3942, 3954, 3961, 3945, 3968, 3951, 3974, 3976,
851 3962, 3969, 3965, 3980, 3985, 3989, 3991, 3995, 3992, 3988,
852 4001, 4008, 4009, 4002, 3997, 4003, 4007, 4025, 4019, 4024,
853 4018, 4022, 4033, 4029, 4034, 7525, 4040, 4045, 4049, 4056,
854
855 4044, 4048, 4050, 4060, 4064, 4070, 4061, 4081, 4080, 7525,
856 4079, 7525, 4077, 4098, 4103, 4106, 4110, 4100, 4092, 4117,
857 4108, 4105, 4112, 4133, 4107, 4120, 4128, 4126, 4135, 4132,
858 4138, 4140, 4149, 7525, 4139, 4136, 4167, 4155, 4165, 4173,
859 4169, 4177, 4172, 4166, 4185, 4207, 7525, 4192, 4213, 4191,
860 4210, 4220, 4216, 4225, 4217, 7525, 4202, 4212, 4229, 4214,
861 4242, 7525, 7525, 4219, 4236, 4249, 4246, 4244, 4247, 4233,
862 4253, 4215, 4250, 4248, 4270, 4237, 4263, 4269, 7525, 4281,
863 4271, 4285, 4294, 4295, 4296, 4293, 4280, 7525, 4277, 4305,
864 4290, 4312, 4306, 4311, 4317, 4308, 4322, 4328, 4318, 4321,
865
866 4348, 4335, 4332, 4351, 4346, 4353, 4354, 7525, 4355, 4361,
867 4363, 4359, 4364, 4362, 4349, 4372, 4377, 4382, 4374, 4376,
868 4390, 4392, 4403, 4396, 4393, 4399, 4410, 4416, 4404, 4409,
869 4419, 4422, 4432, 4415, 4438, 4427, 4444, 4429, 4436, 4448,
870 4449, 4463, 4458, 7525, 4467, 4446, 4472, 4443, 4466, 4478,
871 4480, 4477, 4497, 4459, 4492, 4487, 4493, 7525, 4502, 4501,
872 4496, 4506, 4503, 4494, 4522, 4507, 4505, 4535, 4520, 4540,
873 4528, 4529, 4549, 4552, 7525, 7525, 4554, 7525, 4555, 4538,
874 4557, 4545, 4562, 4561, 4566, 4573, 4568, 4582, 7525, 4575,
875 4576, 4579, 4578, 4588, 4609, 4608, 4605, 4602, 4593, 4595,
876
877 4604, 4615, 4606, 4601, 4622, 4635, 4619, 4629, 4643, 7525,
878 4628, 4633, 4638, 7525, 4640, 4630, 4658, 4660, 4668, 4672,
879 4662, 4677, 4661, 4667, 4686, 4687, 4688, 4684, 4691, 4689,
880 4701, 4697, 4698, 4726, 4715, 4727, 4703, 4711, 4732, 7525,
881 4719, 4733, 4724, 4716, 4740, 4725, 4745, 4743, 7525, 4749,
882 4738, 4764, 7525, 4759, 4765, 4748, 4771, 4753, 4750, 4772,
883 4774, 4775, 4776, 7525, 4782, 7525, 4780, 4792, 7525, 4799,
884 4801, 4789, 4790, 4788, 4815, 4817, 4818, 4803, 4816, 4809,
885 4810, 4828, 4830, 4838, 4834, 7525, 4852, 4833, 4849, 4854,
886 4855, 4856, 7525, 7525, 4839, 7525, 4857, 4861, 7525, 4859,
887
888 4875, 4876, 4870, 4871, 4866, 4892, 4897, 7525, 4899, 4888,
889 4909, 4898, 4890, 4900, 4901, 4917, 4894, 4903, 4935, 7525,
890 4922, 4919, 4923, 4925, 4928, 4950, 4946, 4937, 7525, 4955,
891 4959, 4945, 4962, 4958, 7525, 4970, 4964, 4969, 7525, 4981,
892 4966, 4973, 4978, 5000, 4996, 5004, 4989, 4991, 5017, 5008,
893 5006, 5012, 7525, 5005, 5016, 5014, 5036, 5027, 5025, 5022,
894 5043, 5051, 5050, 5055, 5044, 5059, 5061, 5064, 5067, 5063,
895 5047, 5081, 5075, 5085, 7525, 5086, 5091, 5094, 7525, 5088,
896 5087, 5092, 5102, 5089, 7525, 5115, 5118, 5104, 5112, 7525,
897 7525, 5116, 7525, 5132, 5123, 5125, 5126, 5139, 5133, 5147,
898
899 5141, 5136, 5154, 5159, 5157, 5176, 5166, 5174, 5169, 5171,
900 5160, 7525, 7525, 5177, 5187, 5181, 5189, 5191, 5182, 5193,
901 5200, 5205, 5212, 5217, 5228, 7525, 5220, 5206, 5221, 7525,
902 5209, 5230, 5218, 5216, 5237, 5232, 5238, 5246, 5252, 5245,
903 5258, 5240, 5251, 5269, 5271, 7525, 5257, 5261, 5259, 5265,
904 5272, 5273, 5283, 5281, 7525, 5290, 5304, 5303, 5298, 5299,
905 5301, 5318, 5312, 5315, 5308, 5307, 5326, 5339, 5336, 5332,
906 7525, 5338, 5329, 5335, 5340, 5344, 5357, 5341, 5358, 5354,
907 5361, 5369, 5373, 5363, 5364, 7525, 5375, 5374, 5367, 5389,
908 5379, 5387, 5392, 5402, 5398, 5390, 5396, 5407, 5405, 7525,
909
910 5388, 5404, 5406, 5424, 5412, 5422, 5425, 5429, 7525, 5437,
911 5423, 5435, 5432, 5431, 5459, 5438, 5461, 7525, 5454, 5467,
912 5470, 5451, 5464, 5458, 5478, 5484, 5487, 5480, 5485, 5491,
913 5473, 5488, 5499, 5500, 5504, 5511, 5503, 5526, 5525, 7525,
914 5512, 7525, 5515, 5533, 5538, 5536, 5521, 7525, 5530, 5539,
915 5549, 5535, 5558, 7525, 5542, 5559, 5556, 5562, 7525, 5576,
916 5573, 5560, 5572, 5588, 7525, 5590, 5589, 5586, 5598, 5600,
917 5596, 5583, 5603, 5602, 5594, 5593, 5621, 7525, 5605, 5623,
918 5628, 5629, 5613, 5638, 7525, 5617, 5625, 5632, 5639, 5627,
919 5652, 5656, 5661, 5644, 7525, 5659, 5653, 5668, 5669, 5674,
920
921 7525, 7525, 5664, 5680, 5679, 5666, 5686, 7525, 5693, 5673,
922 5698, 5690, 5702, 7525, 7525, 5699, 7525, 5694, 7525, 7525,
923 7525, 5713, 5717, 5715, 7525, 5716, 7525, 5703, 5726, 5707,
924 5706, 5730, 7525, 5729, 5719, 5732, 7525, 5738, 5741, 5733,
925 5737, 7525, 5761, 5744, 5749, 7525, 5765, 5769, 5768, 5772,
926 5778, 5756, 5771, 5776, 5782, 5784, 5786, 5787, 5779, 5783,
927 5788, 5816, 5807, 5804, 5802, 5821, 5822, 5811, 5818, 5812,
928 5806, 5827, 5810, 5835, 5831, 5815, 5836, 5842, 5837, 5846,
929 5864, 5857, 5859, 5862, 7525, 5852, 5849, 5858, 5869, 5876,
930 5873, 5875, 5894, 5895, 5905, 7525, 7525, 5908, 5892, 5900,
931
932 5893, 7525, 5896, 5897, 5891, 5914, 5917, 5925, 5928, 5929,
933 7525, 5931, 5938, 5948, 5932, 5933, 5942, 5939, 5944, 5952,
934 5964, 5963, 5967, 5968, 5969, 5965, 5971, 5966, 5979, 5981,
935 5994, 5995, 5997, 5988, 6002, 6003, 7525, 5998, 7525, 5996,
936 6013, 6015, 7525, 7525, 6016, 6032, 6018, 6022, 6020, 6019,
937 6044, 7525, 6024, 6046, 6052, 6040, 7525, 6049, 6054, 6055,
938 7525, 6045, 6056, 6051, 6058, 6063, 6086, 7525, 7525, 7525,
939 7525, 6087, 6067, 6078, 6079, 6084, 6083, 7525, 7525, 7525,
940 6094, 6090, 6095, 6101, 6105, 6115, 7525, 6114, 6103, 6107,
941 6118, 6137, 6138, 6136, 6135, 6126, 6128, 6152, 6149, 6147,
942
943 6142, 6153, 6159, 6161, 7525, 7525, 6155, 6163, 6177, 6173,
944 6182, 6188, 6185, 6186, 6183, 6179, 6190, 6196, 6195, 7525,
945 6199, 7525, 6203, 6206, 6209, 6218, 6215, 6223, 6219, 6228,
946 7525, 7525, 6221, 6229, 6225, 6239, 6234, 6248, 6245, 6241,
947 6243, 7525, 6250, 7525, 6254, 6259, 6278, 6269, 6271, 6277,
948 7525, 6276, 6270, 7525, 6284, 6280, 6287, 7525, 6290, 6293,
949 6295, 7525, 6299, 7525, 6300, 7525, 6296, 7525, 6304, 6307,
950 6313, 6319, 6322, 6310, 6330, 6331, 6333, 6321, 6338, 6323,
951 6339, 6344, 6342, 6343, 7525, 7525, 6361, 6349, 6355, 6357,
952 6356, 6359, 6354, 6360, 6367, 7525, 7525, 6368, 6370, 6382,
953
954 7525, 6365, 6393, 6397, 6398, 6383, 6391, 6394, 6407, 6400,
955 6405, 6410, 6421, 6425, 6430, 6432, 6420, 6434, 6423, 6418,
956 6442, 6435, 6445, 7525, 6454, 6461, 6449, 7525, 6468, 6466,
957 6474, 6470, 6471, 7525, 6459, 6479, 6481, 6478, 6469, 6515,
958 6476, 6490, 7525, 7525, 7525, 7525, 6509, 6504, 6506, 7525,
959 7525, 6494, 6500, 7525, 6510, 7525, 6502, 7525, 6525, 6527,
960 6526, 7525, 6529, 6537, 7525, 6524, 6532, 6539, 6549, 6540,
961 6544, 6543, 7525, 6574, 6567, 6568, 6577, 6561, 6557, 6575,
962 6564, 6586, 6571, 6583, 7525, 6570, 6588, 6592, 6595, 6598,
963 6610, 6609, 6601, 6593, 6613, 6619, 6600, 6629, 6615, 7525,
964
965 6631, 6632, 7525, 6622, 7525, 6633, 6636, 6642, 7525, 6650,
966 6635, 6641, 6638, 7525, 6653, 6658, 7525, 6644, 6667, 6673,
967 6656, 6669, 6668, 6670, 6674, 6683, 6687, 6695, 6691, 7525,
968 7525, 7525, 6694, 6684, 6681, 6690, 6709, 6714, 6702, 7525,
969 6718, 6719, 6707, 6732, 6725, 6728, 7525, 6735, 6721, 7525,
970 6737, 6738, 6739, 6746, 6749, 6756, 6757, 6758, 6763, 7525,
971 6761, 7525, 7525, 6753, 7525, 6752, 6776, 7525, 6775, 6764,
972 6762, 6783, 6786, 6788, 7525, 7525, 6794, 6784, 6801, 6789,
973 6800, 6802, 7525, 6803, 6806, 6809, 6805, 6812, 7525, 6827,
974 6819, 6820, 6822, 6825, 6821, 6839, 6834, 6846, 7525, 7525,
975
976 6848, 7525, 7525, 6831, 6859, 6867, 7525, 7525, 7525, 6860,
977 7525, 6863, 6878, 6870, 7525, 6872, 6861, 6866, 7525, 6881,
978 7525, 6882, 6887, 6877, 7525, 6884, 6876, 6895, 6900, 6910,
979 6898, 6912, 6919, 6920, 6926, 6899, 6915, 6911, 6929, 6936,
980 6916, 6933, 7525, 7525, 6945, 7525, 7525, 6948, 6949, 6950,
981 7525, 6943, 6954, 7525, 6964, 6951, 6953, 6968, 6956, 6967,
982 7525, 7525, 6955, 6981, 6959, 6986, 6970, 7525, 6996, 6979,
983 6975, 6998, 6982, 6992, 6991, 7525, 7525, 7525, 7525, 7525,
984 7002, 7525, 7525, 6994, 7000, 7013, 7008, 7525, 6997, 7025,
985 7034, 7040, 7023, 7044, 7028, 7024, 7030, 7037, 7029, 7031,
986
987 7056, 7060, 7059, 7068, 7062, 7078, 7082, 7084, 7066, 7070,
988 7088, 7087, 7089, 7071, 7093, 7083, 7086, 7099, 7103, 7525,
989 7109, 7525, 7107, 7525, 7525, 7102, 7127, 7123, 7113, 7112,
990 7138, 7129, 7133, 7118, 7525, 7121, 7130, 7149, 7525, 7142,
991 7156, 7147, 7150, 7154, 7159, 7170, 7174, 7164, 7165, 7172,
992 7180, 7192, 7194, 7191, 7193, 7199, 7181, 7208, 7205, 7213,
993 7525, 7211, 7197, 7207, 7209, 7220, 7222, 7225, 7232, 7229,
994 7525, 7233, 7241, 7243, 7227, 7242, 7238, 7257, 7259, 7249,
995 7525, 7255, 7266, 7260, 7273, 7282, 7285, 7288, 7277, 7292,
996 7293, 7297, 7302, 7300, 7304, 7286, 7309, 7316, 7525, 7303,
997
998 7318, 7525, 7323, 7334, 7321, 7325, 7332, 7525, 7342, 7327,
999 7330, 7350, 7347, 7356, 7525, 7353, 7358, 7361, 7525, 7360,
1000 7525, 7525, 7367, 7362, 7374, 7370, 7375, 7525, 7525, 7525,
1001 7433, 7440, 7447, 7454, 7461, 83, 7468, 7475, 7482, 7489,
1002 7496, 7503, 7510, 7517
9971003 } ;
9981004
999 static yyconst flex_int16_t yy_def[2613] =
1005 static yyconst flex_int16_t yy_def[2645] =
10001006 { 0,
1001 2598, 1, 2599, 2599, 2600, 2600, 2601, 2601, 2602, 2602,
1002 2603, 2603, 2598, 2604, 2598, 2598, 2598, 2598, 2605, 2604,
1003 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1004 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1005 2604, 2604, 2606, 2598, 2598, 2598, 2606, 2607, 2598, 2598,
1006 2598, 2607, 2608, 2598, 2598, 2598, 2598, 2608, 2609, 2598,
1007 2598, 2598, 2609, 2610, 2598, 2611, 2598, 2610, 2610, 2604,
1008 2604, 2598, 2612, 2605, 2612, 2605, 2604, 2604, 2604, 2604,
1009 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1010 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1011
1012 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1013 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1014 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1015 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2606,
1016 2606, 2607, 2607, 2608, 2608, 2598, 2609, 2609, 2610, 2610,
1017 2611, 2611, 2610, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1018 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1019 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1020 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1021 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1022
1023 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1024 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1025 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1026 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2604,
1027 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1028 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1029 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1030 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1031 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1032 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1033
1034 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1035 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1036 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1037 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604,
1038 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1039 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1040 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1041 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1042 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1043 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1044
1045 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1046 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1047 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1048 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1049 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1050 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1051 2604, 2598, 2604, 2610, 2604, 2604, 2604, 2604, 2604, 2604,
1052 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1053 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1054 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1055
1056 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1057 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1058 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1059 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1060 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1061 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1062 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1063 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1064 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1065 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1066
1067 2610, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1068 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1069 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2598, 2604,
1070 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1071 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1072 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1073 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1074 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1075 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
1076 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1077
1078 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1079 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1080 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1081 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1082 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2604,
1083 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604,
1084 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1085 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1086 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1087 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1088
1089 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1090 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1091 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1092 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1093 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1094 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1095 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1096 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1097 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1098 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2610, 2604, 2604,
1099
1100 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1101 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1102 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1103 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1104 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1105 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
1106 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1107 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1108 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1109 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1110
1111 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1112 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
1113 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1114 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1115 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1116 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1117 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1118 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1119 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1120 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1121
1122 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1123 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1124 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1125 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1126 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1127 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1128 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1129 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1130 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604,
1131 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1132
1133 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1134 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1135 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1136 2604, 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1137 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1138 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1139 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1140 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1141 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1142 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604,
1143
1144 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1145 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1146 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1147 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1148 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
1149 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1150 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1151 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1152 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1153 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1154
1155 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1156 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1157 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
1158 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1159 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1160 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598,
1161 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1162 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1163 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1164 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1165
1166 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1167 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1168 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1169 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1170 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2598,
1171 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1172 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1173 2604, 2604, 2604, 2598, 2598, 2604, 2598, 2604, 2604, 2598,
1174 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1175 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1176
1177 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1178 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604,
1179 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1180 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1181 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1182 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604,
1183 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604,
1184 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1185 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1186 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1187
1188 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604,
1189 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1190 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1191 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1192 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1193 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1194 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1195 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1196 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1197 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1198
1199 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1200 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604,
1201 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598,
1202 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1203 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1204 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1205 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1206 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604,
1207 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598,
1208 2598, 2604, 2598, 2604, 2598, 2598, 2604, 2604, 2604, 2598,
1209
1210 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
1211 2604, 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1212 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1213 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1214 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1215 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1216 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1217 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1218 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1219 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1220
1221 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1222 2598, 2604, 2598, 2604, 2604, 2604, 2598, 2598, 2604, 2604,
1223 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1224 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1225 2604, 2598, 2598, 2598, 2598, 2604, 2604, 2604, 2604, 2604,
1226 2598, 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1227 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1228 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
1229 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1230 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, 2604, 2604,
1231
1232 2604, 2604, 2604, 2598, 2598, 2604, 2604, 2604, 2604, 2604,
1233 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604,
1234 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, 2604,
1235 2598, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2598, 2604,
1236 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1237 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604,
1238 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
1239 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1240 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1241 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598,
1242
1243 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1244 2604, 2604, 2604, 2604, 2598, 2598, 2598, 2598, 2604, 2604,
1245 2604, 2598, 2598, 2604, 2598, 2604, 2598, 2604, 2598, 2604,
1246 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1247 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604,
1248 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1249 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1250 2598, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, 2598,
1251 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604,
1252 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1253
1254 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1255 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598,
1256 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598,
1257 2604, 2598, 2598, 2604, 2598, 2604, 2604, 2598, 2604, 2604,
1258 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604, 2604, 2604,
1259 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604,
1260 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604,
1261 2598, 2598, 2604, 2604, 2604, 2598, 2598, 2598, 2604, 2598,
1262 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604,
1263 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1264
1265 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1266 2598, 2598, 2604, 2598, 2598, 2604, 2604, 2604, 2598, 2604,
1267 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598,
1268 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1269 2604, 2604, 2604, 2598, 2598, 2598, 2598, 2598, 2604, 2598,
1270 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1271 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1272 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1273 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598,
1274 2604, 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1275
1276 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604,
1277 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1278 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1279 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1280 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604,
1281 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
1282 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598,
1283 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604,
1284 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2598, 2598,
1285 2604, 2604, 2604, 2604, 2604, 2598, 2598, 0, 2598, 2598,
1286
1287 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
1288 2598, 2598
1007 2630, 1, 2631, 2631, 2632, 2632, 2633, 2633, 2634, 2634,
1008 2635, 2635, 2630, 2636, 2630, 2630, 2630, 2630, 2637, 2636,
1009 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1010 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1011 2636, 2636, 2638, 2630, 2630, 2630, 2638, 2639, 2630, 2630,
1012 2630, 2639, 2640, 2630, 2630, 2630, 2630, 2640, 2641, 2630,
1013 2630, 2630, 2641, 2642, 2630, 2643, 2630, 2642, 2642, 2636,
1014 2636, 2630, 2644, 2637, 2644, 2637, 2636, 2636, 2636, 2636,
1015 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1016 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1017
1018 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1019 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1020 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1021 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2638,
1022 2638, 2639, 2639, 2640, 2640, 2630, 2641, 2641, 2642, 2642,
1023 2643, 2643, 2642, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1024 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1025 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1026 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1027 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1028
1029 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1030 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1031 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1032 2636, 2636, 2636, 2636, 2636, 2636, 2642, 2636, 2636, 2636,
1033 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1034 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1035 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1036 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1037 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1038 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1039
1040 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1041 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1042 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1043 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2642, 2636,
1044 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1045 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1046 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1047 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1048 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1049 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1050
1051 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1052 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1053 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1054 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1055 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1056 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1057 2636, 2636, 2636, 2630, 2636, 2642, 2636, 2636, 2636, 2636,
1058 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1059 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1060 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1061
1062 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1063 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1064 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1065 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1066 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1067 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1068 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1069 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1070 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1071 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1072
1073 2636, 2636, 2636, 2636, 2642, 2636, 2636, 2636, 2636, 2636,
1074 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
1075 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1076 2636, 2630, 2630, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
1077 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1078 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1079 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1080 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1081 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1082 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1083
1084 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
1085 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1086 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1087 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1088 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1089 2636, 2636, 2642, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1090 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1091 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1092 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1093 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1094
1095 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1096 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1097 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636,
1098 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1099 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1100 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1101 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1102 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1103 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1104 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1105
1106 2636, 2636, 2630, 2636, 2636, 2642, 2636, 2636, 2636, 2636,
1107 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1108 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1109 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1110 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1111 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1112 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1113 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1114 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1115 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1116
1117 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1118 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1119 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1120 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1121 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1122 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1123 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1124 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1125 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1126 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1127
1128 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1129 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1130 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1131 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1132 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1133 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1134 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1135 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1136 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1137 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636,
1138
1139 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1140 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1141 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1142 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1143 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630,
1144 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1145 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1146 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1147 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1148 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1149
1150 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1151 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1152 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1153 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1154 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
1155 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1156 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1157 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1158 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1159 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1160
1161 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1162 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1163 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1164 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1165 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1166 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1167 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1168 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2636,
1169 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1170 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1171
1172 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1173 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1174 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1175 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1176 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1177 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1178 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2630, 2636,
1179 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1180 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1181 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2636, 2630, 2636,
1182
1183 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1184 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1185 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1186 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
1187 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1188 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1189 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1190 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
1191 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630,
1192 2630, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1193
1194 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1195 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1196 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630,
1197 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1198 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1199 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1200 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1201 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1202 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1203 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1204
1205 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1206 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1207 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1208 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1209 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1210 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636,
1211 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1212 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1213 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1214 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1215
1216 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1217 2636, 2636, 2636, 2630, 2630, 2636, 2630, 2636, 2630, 2630,
1218 2630, 2636, 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2636,
1219 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
1220 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636,
1221 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1222 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1223 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1224 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1225 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636,
1226
1227 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1228 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1229 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1230 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2630, 2636,
1231 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1232 2636, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
1233 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630,
1234 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630,
1235 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636,
1236 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1237
1238 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
1239 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1240 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1241 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1242 2636, 2630, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1243 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636,
1244 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2636,
1245 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1246 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
1247 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636,
1248
1249 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1250 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1251 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636, 2636,
1252 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1253 2636, 2636, 2630, 2630, 2630, 2630, 2636, 2636, 2636, 2630,
1254 2630, 2636, 2636, 2630, 2636, 2630, 2636, 2630, 2636, 2636,
1255 2636, 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1256 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1257 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1258 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1259
1260 2636, 2636, 2630, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
1261 2636, 2636, 2636, 2630, 2636, 2636, 2630, 2636, 2636, 2636,
1262 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1263 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1264 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2630,
1265 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1266 2636, 2630, 2630, 2636, 2630, 2636, 2636, 2630, 2636, 2636,
1267 2636, 2636, 2636, 2636, 2630, 2630, 2636, 2636, 2636, 2636,
1268 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1269 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2630,
1270
1271 2636, 2630, 2630, 2636, 2636, 2636, 2630, 2630, 2630, 2636,
1272 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
1273 2630, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636,
1274 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1275 2636, 2636, 2630, 2630, 2636, 2630, 2630, 2636, 2636, 2636,
1276 2630, 2636, 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2636,
1277 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1278 2636, 2636, 2636, 2636, 2636, 2630, 2630, 2630, 2630, 2630,
1279 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1280 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1281
1282 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1283 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630,
1284 2636, 2630, 2636, 2630, 2630, 2636, 2636, 2636, 2636, 2636,
1285 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
1286 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1287 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1288 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1289 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1290 2630, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636,
1291 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2636, 2630, 2636,
1292
1293 2636, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2636, 2636,
1294 2636, 2636, 2636, 2636, 2630, 2636, 2636, 2636, 2630, 2636,
1295 2630, 2630, 2636, 2636, 2636, 2636, 2636, 2630, 2630, 0,
1296 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
1297 2630, 2630, 2630, 2630
12891298 } ;
12901299
1291 static yyconst flex_uint16_t yy_nxt[7501] =
1300 static yyconst flex_uint16_t yy_nxt[7592] =
12921301 { 0,
12931302 14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
12941303 14, 14, 18, 20, 21, 22, 23, 24, 25, 14,
13281337 171, 134, 135, 114, 173, 145, 177, 143, 141, 115,
13291338 71, 161, 116, 136, 132, 71, 198, 137, 172, 117,
13301339 123, 138, 71, 124, 133, 160, 71, 256, 134, 135,
1331 125, 2598, 71, 177, 126, 127, 71, 178, 161, 71,
1332 136, 2598, 71, 198, 137, 172, 71, 123, 138, 70,
1340 125, 2630, 71, 177, 126, 127, 71, 178, 161, 71,
1341 136, 2630, 71, 198, 137, 172, 71, 123, 138, 70,
13331342 124, 70, 70, 75, 70, 75, 75, 125, 75, 71,
13341343 70, 126, 127, 149, 178, 149, 149, 70, 149, 70,
13351344 70, 75, 70, 75, 75, 165, 75, 174, 70, 167,
13361345
1337 168, 166, 75, 2598, 71, 175, 176, 179, 71, 180,
1338 181, 152, 2598, 2598, 2598, 186, 71, 188, 2598, 197,
1339 2598, 71, 165, 71, 174, 71, 167, 168, 166, 76,
1346 168, 166, 75, 2630, 71, 175, 176, 179, 71, 180,
1347 181, 152, 2630, 2630, 2630, 186, 71, 188, 2630, 197,
1348 2630, 71, 165, 71, 174, 71, 167, 168, 166, 76,
13401349 71, 71, 175, 176, 179, 182, 180, 181, 183, 187,
13411350 194, 189, 71, 196, 188, 195, 197, 71, 71, 191,
1342 199, 184, 185, 192, 200, 2598, 71, 201, 2598, 71,
1343 2598, 190, 182, 71, 71, 183, 187, 194, 189, 193,
1351 199, 184, 185, 192, 200, 2630, 71, 201, 2630, 71,
1352 2630, 190, 182, 71, 71, 183, 187, 194, 189, 193,
13441353 196, 71, 195, 71, 71, 202, 191, 199, 184, 185,
13451354 192, 200, 71, 203, 201, 204, 205, 206, 190, 209,
1346 208, 207, 71, 210, 214, 71, 193, 71, 2598, 215,
1347
1348 71, 2598, 202, 222, 331, 2598, 71, 71, 71, 71,
1355 208, 207, 71, 210, 214, 71, 193, 71, 2630, 215,
1356
1357 71, 2630, 202, 222, 331, 2630, 71, 71, 71, 71,
13491358 203, 219, 204, 205, 206, 71, 209, 208, 207, 211,
13501359 210, 214, 221, 223, 216, 71, 215, 224, 212, 71,
13511360 222, 71, 225, 226, 213, 217, 71, 71, 219, 218,
1352 2598, 71, 71, 71, 229, 228, 211, 227, 71, 221,
1361 2630, 71, 71, 71, 229, 228, 211, 227, 71, 221,
13531362 223, 216, 231, 71, 224, 212, 71, 236, 232, 225,
13541363 226, 213, 217, 233, 234, 230, 218, 71, 239, 71,
1355 71, 229, 228, 71, 227, 235, 2598, 2598, 71, 231,
1356 71, 2598, 240, 2598, 236, 232, 2598, 237, 2598, 2598,
1364 71, 229, 228, 71, 227, 235, 2630, 2630, 71, 231,
1365 71, 2630, 240, 2630, 236, 232, 2630, 237, 2630, 2630,
13571366 233, 234, 230, 144, 238, 144, 144, 71, 144, 245,
13581367
13591368 71, 149, 235, 149, 149, 75, 149, 75, 75, 240,
13601369 75, 150, 242, 241, 237, 71, 71, 246, 243, 247,
1361 248, 238, 71, 2598, 71, 244, 245, 71, 249, 252,
1370 248, 238, 71, 2630, 71, 244, 245, 71, 249, 252,
13621371 251, 250, 71, 255, 288, 253, 71, 71, 71, 242,
13631372 241, 254, 292, 152, 246, 243, 247, 248, 71, 257,
13641373 71, 267, 244, 258, 268, 249, 265, 251, 250, 71,
13651374 255, 71, 253, 71, 266, 272, 71, 270, 254, 269,
1366 259, 2598, 71, 71, 71, 2598, 71, 71, 267, 273,
1367 258, 268, 71, 265, 71, 278, 316, 2598, 71, 274,
1368 2598, 266, 272, 275, 71, 271, 269, 259, 260, 71,
1375 259, 2630, 71, 71, 71, 2630, 71, 71, 267, 273,
1376 258, 268, 71, 265, 71, 278, 316, 2630, 71, 274,
1377 2630, 266, 272, 275, 71, 271, 269, 259, 260, 71,
13691378
13701379 289, 71, 71, 261, 276, 71, 273, 277, 262, 71,
13711380 279, 280, 278, 316, 263, 264, 274, 290, 285, 71,
1372 275, 71, 271, 2598, 406, 260, 71, 289, 291, 294,
1381 275, 71, 271, 2630, 406, 260, 71, 289, 291, 294,
13731382 261, 276, 71, 71, 277, 262, 286, 279, 280, 281,
13741383 71, 263, 264, 71, 282, 285, 287, 293, 298, 71,
13751384 295, 71, 297, 296, 71, 291, 283, 71, 284, 71,
1376 299, 71, 300, 286, 302, 71, 281, 2598, 71, 301,
1385 299, 71, 300, 286, 302, 71, 281, 2630, 71, 301,
13771386 71, 282, 303, 287, 293, 298, 305, 295, 71, 304,
13781387 296, 307, 306, 283, 71, 284, 71, 71, 308, 71,
13791388 309, 302, 71, 71, 71, 310, 301, 71, 311, 303,
13891398 340, 343, 71, 71, 71, 71, 71, 335, 71, 337,
13901399 333, 341, 344, 347, 348, 349, 71, 350, 351, 353,
13911400
1392 2598, 352, 2598, 71, 336, 368, 342, 340, 343, 71,
1393 71, 71, 71, 354, 356, 71, 71, 357, 2598, 344,
1401 2630, 352, 2630, 71, 336, 368, 342, 340, 343, 71,
1402 71, 71, 71, 354, 356, 71, 71, 357, 2630, 344,
13941403 347, 348, 358, 363, 350, 351, 353, 71, 352, 355,
13951404 360, 71, 71, 361, 71, 362, 367, 71, 71, 71,
1396 354, 356, 71, 364, 357, 365, 371, 2598, 71, 358,
1405 354, 356, 71, 364, 357, 365, 371, 2630, 71, 358,
13971406 363, 366, 369, 370, 71, 71, 355, 360, 376, 71,
13981407 361, 71, 362, 367, 372, 71, 374, 375, 377, 71,
13991408 364, 71, 365, 371, 71, 71, 379, 378, 366, 369,
14001409 381, 373, 71, 380, 390, 71, 71, 71, 382, 71,
14011410 71, 372, 71, 374, 375, 377, 383, 71, 384, 389,
14021411
1403 385, 2598, 386, 379, 378, 71, 71, 381, 373, 71,
1404 380, 387, 71, 388, 71, 382, 71, 391, 392, 2598,
1412 385, 2630, 386, 379, 378, 71, 71, 381, 373, 71,
1413 380, 387, 71, 388, 71, 382, 71, 391, 392, 2630,
14051414 71, 71, 398, 383, 397, 384, 389, 385, 71, 386,
1406 2598, 71, 399, 71, 400, 2598, 2598, 71, 387, 393,
1415 2630, 71, 399, 71, 400, 2630, 2630, 71, 387, 393,
14071416 388, 71, 71, 407, 391, 392, 402, 394, 395, 398,
1408 396, 397, 401, 403, 71, 2598, 2598, 71, 71, 399,
1417 396, 397, 401, 403, 71, 2630, 2630, 71, 71, 399,
14091418 71, 400, 404, 405, 410, 411, 393, 71, 71, 413,
14101419 407, 414, 417, 402, 394, 395, 71, 396, 408, 401,
14111420 403, 409, 412, 71, 415, 416, 418, 71, 71, 404,
14121421 405, 410, 411, 71, 71, 419, 71, 71, 414, 417,
14131422
1414 71, 71, 1047, 71, 421, 408, 422, 420, 409, 412,
1423 71, 71, 1057, 71, 421, 408, 422, 420, 409, 412,
14151424 71, 415, 416, 418, 71, 424, 71, 423, 425, 426,
1416 431, 427, 419, 2598, 71, 2598, 2598, 428, 429, 437,
1417 430, 421, 71, 71, 420, 2598, 2598, 71, 71, 2598,
1425 431, 427, 419, 2630, 71, 2630, 2630, 428, 429, 437,
1426 430, 421, 71, 71, 420, 472, 71, 71, 71, 2630,
14181427 432, 71, 424, 71, 423, 436, 426, 431, 427, 438,
14191428 71, 439, 71, 433, 428, 429, 434, 430, 435, 440,
1420 2598, 71, 445, 71, 71, 71, 441, 432, 446, 71,
1421 471, 71, 436, 613, 71, 447, 438, 71, 439, 442,
1422 433, 448, 443, 434, 444, 435, 440, 71, 449, 445,
1423 71, 459, 451, 441, 71, 446, 460, 471, 466, 463,
1424
1425 71, 464, 447, 71, 450, 71, 442, 150, 448, 443,
1426 71, 444, 71, 475, 71, 449, 461, 71, 459, 451,
1427 71, 462, 2598, 460, 2598, 466, 463, 465, 464, 467,
1428 469, 450, 452, 453, 476, 71, 470, 71, 2598, 472,
1429 475, 71, 454, 468, 455, 456, 457, 71, 71, 458,
1430 481, 71, 71, 479, 465, 473, 467, 71, 477, 452,
1431 453, 476, 71, 470, 474, 71, 472, 478, 483, 454,
1432 468, 455, 456, 457, 480, 71, 458, 482, 485, 71,
1433 479, 487, 71, 71, 71, 477, 71, 71, 486, 484,
1434 71, 474, 71, 491, 478, 483, 488, 489, 490, 2598,
1435
1436 71, 480, 71, 492, 482, 2598, 493, 495, 487, 494,
1437 71, 499, 496, 2598, 71, 486, 484, 71, 71, 500,
1438 491, 2598, 71, 488, 2598, 497, 71, 507, 511, 2598,
1439 492, 71, 71, 493, 495, 71, 494, 71, 499, 496,
1440 498, 502, 501, 503, 504, 71, 500, 510, 71, 509,
1441 71, 508, 497, 71, 507, 505, 71, 506, 512, 513,
1442 71, 515, 71, 518, 71, 71, 514, 498, 502, 501,
1443 503, 504, 71, 71, 510, 517, 509, 71, 508, 522,
1444 71, 519, 505, 71, 506, 512, 513, 516, 515, 71,
1445 518, 520, 523, 514, 71, 521, 2598, 527, 524, 526,
1446
1447 528, 71, 517, 71, 71, 71, 525, 71, 519, 531,
1448 2598, 71, 71, 532, 516, 71, 530, 71, 520, 523,
1449 529, 71, 521, 533, 527, 524, 526, 528, 71, 71,
1450 535, 71, 71, 525, 536, 534, 531, 539, 537, 71,
1451 532, 71, 540, 530, 71, 71, 544, 529, 538, 71,
1452 533, 541, 546, 71, 547, 71, 71, 535, 545, 548,
1453 71, 536, 534, 550, 539, 537, 71, 71, 542, 540,
1454 543, 71, 71, 544, 549, 538, 71, 71, 541, 551,
1455 553, 547, 552, 555, 71, 545, 554, 558, 556, 2598,
1456 550, 71, 562, 71, 559, 542, 71, 543, 71, 560,
1457
1458 71, 549, 561, 563, 71, 564, 551, 71, 71, 552,
1459 555, 557, 71, 554, 558, 71, 71, 71, 565, 562,
1460 71, 559, 566, 567, 2598, 71, 560, 575, 576, 561,
1461 563, 71, 564, 71, 71, 577, 71, 578, 557, 2598,
1462 71, 579, 2598, 2598, 2598, 565, 71, 2598, 2598, 566,
1463 567, 568, 580, 71, 575, 576, 569, 582, 570, 71,
1464 581, 584, 577, 602, 578, 587, 571, 583, 579, 572,
1465 573, 71, 71, 586, 71, 585, 574, 71, 568, 580,
1466 71, 589, 588, 569, 71, 570, 590, 581, 584, 71,
1467 591, 71, 587, 571, 583, 71, 572, 573, 71, 71,
1468
1469 586, 595, 585, 574, 592, 71, 593, 71, 589, 588,
1470 594, 596, 597, 590, 71, 71, 71, 591, 598, 599,
1471 71, 601, 604, 71, 600, 2598, 603, 605, 595, 71,
1472 71, 592, 614, 593, 71, 71, 616, 594, 596, 597,
1473 71, 71, 71, 606, 150, 598, 599, 607, 601, 604,
1474 609, 600, 608, 603, 605, 610, 71, 612, 611, 71,
1475 615, 71, 618, 617, 71, 2598, 620, 621, 71, 71,
1476 606, 630, 2598, 71, 607, 71, 71, 609, 71, 608,
1477 619, 2598, 610, 71, 612, 611, 71, 615, 71, 618,
1478 617, 71, 71, 620, 621, 622, 625, 624, 623, 627,
1479
1480 628, 626, 629, 71, 631, 632, 71, 619, 71, 633,
1481 634, 635, 636, 71, 2598, 637, 71, 639, 642, 638,
1482 71, 71, 622, 647, 624, 623, 627, 71, 71, 71,
1483 641, 71, 71, 71, 71, 643, 644, 634, 635, 636,
1484 640, 71, 637, 71, 639, 71, 638, 645, 71, 646,
1485 71, 648, 649, 71, 654, 71, 71, 641, 71, 650,
1486 656, 653, 643, 644, 651, 71, 655, 640, 652, 71,
1487 71, 658, 657, 71, 645, 71, 646, 659, 648, 649,
1488 71, 654, 71, 71, 71, 660, 650, 656, 653, 71,
1489 2598, 651, 661, 655, 71, 652, 662, 2598, 658, 657,
1490
1491 665, 2598, 663, 667, 659, 670, 666, 668, 671, 669,
1492 71, 675, 71, 2598, 71, 2598, 2598, 71, 677, 661,
1493 71, 71, 71, 662, 664, 71, 672, 665, 71, 663,
1494 667, 71, 670, 666, 668, 71, 669, 673, 676, 674,
1495 679, 680, 71, 71, 71, 677, 678, 681, 71, 682,
1496 71, 664, 684, 672, 71, 683, 685, 693, 2598, 71,
1497 71, 689, 71, 686, 673, 676, 674, 679, 680, 699,
1498 71, 687, 690, 678, 681, 71, 688, 71, 695, 694,
1499 71, 71, 683, 685, 71, 71, 71, 71, 689, 71,
1500 686, 696, 691, 692, 2598, 700, 71, 697, 706, 690,
1501
1502 71, 71, 702, 71, 701, 695, 694, 703, 2598, 704,
1503 71, 2598, 698, 71, 705, 708, 71, 2598, 696, 691,
1504 692, 71, 700, 71, 697, 706, 71, 2598, 2598, 707,
1505 2598, 701, 715, 938, 71, 71, 704, 71, 709, 698,
1506 71, 705, 708, 710, 711, 714, 712, 71, 713, 716,
1507 71, 717, 71, 71, 71, 71, 707, 720, 718, 715,
1508 71, 71, 719, 721, 71, 709, 71, 2598, 71, 71,
1509 710, 711, 714, 712, 722, 713, 716, 71, 717, 723,
1510 729, 724, 71, 725, 720, 718, 727, 71, 726, 719,
1511 71, 728, 71, 731, 71, 71, 730, 71, 735, 732,
1512
1513 733, 722, 737, 71, 71, 761, 723, 729, 724, 71,
1514 725, 71, 71, 727, 734, 726, 736, 71, 728, 738,
1515 731, 71, 71, 730, 71, 735, 732, 733, 739, 737,
1516 740, 741, 744, 742, 746, 2598, 71, 71, 743, 71,
1517 71, 734, 747, 736, 745, 71, 738, 749, 748, 71,
1518 71, 752, 71, 71, 750, 739, 71, 740, 741, 744,
1519 742, 746, 71, 71, 150, 743, 751, 71, 755, 747,
1520 71, 745, 71, 753, 749, 748, 754, 758, 752, 756,
1521 759, 750, 71, 760, 71, 762, 71, 757, 763, 767,
1522 765, 71, 71, 751, 764, 71, 766, 799, 71, 71,
1523
1524 753, 2598, 786, 754, 71, 71, 756, 759, 71, 71,
1525 760, 71, 762, 768, 757, 763, 767, 765, 769, 770,
1526 71, 764, 71, 776, 71, 778, 71, 2598, 71, 777,
1527 2598, 781, 779, 783, 71, 71, 782, 2598, 1157, 71,
1528 768, 2598, 2598, 71, 780, 769, 770, 771, 794, 71,
1529 776, 772, 778, 71, 773, 784, 777, 71, 781, 779,
1530 783, 774, 71, 782, 775, 785, 71, 71, 71, 71,
1531 71, 780, 71, 795, 771, 794, 796, 2598, 772, 71,
1532 804, 773, 784, 2416, 2417, 71, 800, 797, 774, 71,
1533 801, 775, 785, 787, 788, 2598, 789, 802, 798, 790,
1534
1535 795, 803, 71, 796, 791, 805, 71, 804, 806, 71,
1536 792, 793, 71, 800, 797, 807, 71, 801, 808, 71,
1537 787, 788, 71, 789, 802, 798, 790, 71, 803, 71,
1538 71, 791, 805, 71, 810, 806, 809, 792, 793, 811,
1539 71, 812, 807, 813, 71, 808, 71, 814, 815, 71,
1540 817, 816, 818, 820, 819, 2598, 824, 71, 825, 71,
1541 71, 810, 71, 809, 71, 826, 811, 71, 812, 823,
1542 813, 834, 827, 71, 814, 815, 71, 817, 816, 818,
1543 71, 819, 821, 828, 829, 830, 831, 822, 71, 71,
1544 71, 71, 826, 71, 71, 832, 823, 833, 71, 827,
1545
1546 835, 836, 71, 71, 837, 71, 843, 2598, 71, 2598,
1547 828, 829, 830, 831, 71, 71, 839, 838, 71, 840,
1548 71, 842, 832, 841, 833, 71, 2598, 835, 836, 844,
1549 71, 847, 2598, 843, 71, 851, 71, 71, 71, 71,
1550 845, 850, 848, 839, 838, 71, 840, 846, 842, 71,
1551 841, 71, 849, 71, 71, 854, 844, 71, 847, 71,
1552 71, 855, 851, 852, 856, 2598, 859, 845, 850, 848,
1553 71, 853, 857, 71, 846, 858, 860, 863, 862, 849,
1554 71, 71, 854, 71, 861, 71, 864, 71, 71, 71,
1555 852, 856, 865, 859, 71, 71, 867, 868, 853, 857,
1556
1557 866, 71, 858, 860, 863, 862, 872, 869, 71, 71,
1558 871, 861, 71, 864, 71, 71, 870, 876, 873, 865,
1559 879, 874, 71, 867, 868, 71, 881, 866, 71, 71,
1560 882, 71, 875, 71, 869, 877, 878, 871, 883, 71,
1561 880, 889, 71, 870, 876, 873, 71, 71, 874, 71,
1562 886, 890, 71, 71, 887, 892, 884, 882, 71, 875,
1563 71, 888, 877, 878, 885, 883, 893, 880, 895, 71,
1564 891, 71, 71, 71, 897, 71, 898, 886, 890, 71,
1565 896, 887, 892, 884, 901, 894, 900, 71, 888, 71,
1566 899, 885, 71, 903, 902, 71, 71, 891, 71, 71,
1567
1568 71, 897, 71, 150, 904, 906, 905, 896, 71, 71,
1569 71, 901, 894, 900, 71, 907, 908, 899, 909, 2598,
1570 903, 902, 918, 71, 71, 2598, 71, 2598, 71, 916,
1571 917, 904, 906, 905, 71, 919, 922, 71, 920, 921,
1572 2598, 2598, 907, 908, 2598, 909, 910, 923, 911, 918,
1573 2598, 71, 912, 71, 913, 71, 916, 917, 71, 914,
1574 71, 71, 919, 922, 915, 920, 921, 924, 928, 926,
1575 71, 927, 925, 910, 923, 911, 932, 933, 929, 912,
1576 71, 913, 71, 71, 931, 936, 914, 935, 930, 71,
1577 939, 915, 937, 940, 71, 928, 926, 934, 927, 71,
1578
1579 71, 71, 952, 932, 933, 929, 71, 941, 71, 949,
1580 71, 931, 948, 2598, 935, 930, 71, 71, 951, 71,
1581 940, 953, 71, 2598, 934, 950, 960, 71, 71, 952,
1582 954, 71, 2598, 71, 941, 942, 949, 955, 71, 948,
1583 943, 958, 944, 71, 964, 951, 961, 956, 953, 71,
1584 71, 957, 950, 945, 946, 71, 959, 954, 71, 71,
1585 947, 71, 942, 962, 955, 970, 965, 943, 71, 944,
1586 71, 71, 963, 961, 956, 2598, 71, 966, 957, 71,
1587 945, 946, 967, 959, 968, 71, 71, 947, 71, 971,
1588 962, 973, 969, 965, 974, 975, 977, 71, 972, 963,
1589
1590 71, 71, 71, 71, 966, 976, 71, 71, 71, 967,
1591 978, 968, 71, 71, 71, 979, 971, 981, 973, 969,
1592 990, 974, 975, 977, 980, 972, 982, 983, 71, 984,
1593 71, 988, 976, 985, 71, 71, 71, 978, 989, 986,
1594 987, 71, 2598, 991, 981, 993, 2598, 71, 992, 71,
1595 994, 980, 71, 982, 983, 71, 984, 71, 988, 71,
1596 985, 71, 71, 997, 71, 989, 986, 987, 995, 998,
1597 991, 996, 999, 1002, 1000, 992, 1003, 71, 1001, 71,
1598 1005, 2598, 71, 71, 1004, 71, 1006, 71, 2598, 1017,
1599 997, 71, 71, 1008, 71, 995, 998, 1007, 996, 999,
1600
1601 1002, 1000, 2598, 71, 1009, 1001, 1010, 1011, 71, 2598,
1602 71, 1004, 71, 1006, 1012, 71, 1015, 71, 1014, 1016,
1603 1008, 71, 1013, 1018, 1007, 2598, 71, 71, 1021, 71,
1604 1019, 1009, 1026, 1010, 1011, 1020, 71, 71, 1022, 71,
1605 71, 1012, 1025, 1015, 71, 1014, 1016, 71, 71, 1013,
1606 71, 1023, 71, 1024, 1027, 1021, 71, 1019, 2598, 71,
1607 71, 1028, 1020, 1029, 71, 1022, 1030, 1031, 1032, 1025,
1608 1034, 1033, 2598, 1039, 1040, 71, 1035, 1038, 1023, 71,
1609 1024, 1043, 1041, 71, 2598, 71, 71, 1037, 1028, 71,
1610 1029, 1036, 71, 1030, 71, 71, 71, 1034, 1033, 71,
1611
1612 71, 1042, 1044, 1035, 1038, 71, 71, 71, 71, 1041,
1613 71, 1045, 1046, 1048, 1037, 1049, 1053, 1050, 1036, 1051,
1614 2598, 71, 71, 71, 71, 71, 1052, 71, 1042, 1044,
1615 1057, 1058, 1054, 71, 71, 1055, 1056, 1059, 1045, 1046,
1616 1048, 1060, 1049, 71, 1050, 71, 1051, 71, 71, 71,
1617 1061, 71, 71, 1052, 1062, 2598, 1063, 1057, 1058, 1054,
1618 1064, 2598, 1055, 1056, 71, 1069, 1065, 1066, 1060, 1068,
1619 1071, 1067, 1074, 1070, 2598, 2598, 1114, 71, 71, 1094,
1620 71, 71, 71, 1063, 71, 71, 71, 1064, 71, 1072,
1621 71, 71, 1069, 1065, 1066, 1073, 1068, 1071, 1067, 71,
1622
1623 1070, 71, 1075, 71, 1076, 1077, 71, 1078, 71, 1083,
1624 1086, 2598, 2598, 71, 71, 71, 1072, 1084, 1085, 1079,
1625 1090, 2598, 1073, 71, 1087, 1089, 71, 2598, 1080, 1075,
1626 1081, 1076, 1077, 1082, 1078, 71, 1083, 1086, 71, 71,
1627 1088, 71, 71, 71, 1084, 1085, 1079, 1090, 71, 71,
1628 1091, 1087, 1089, 1092, 1093, 1080, 1095, 1081, 71, 1096,
1629 1082, 1098, 71, 1097, 1099, 1101, 71, 1088, 2598, 2598,
1630 2598, 2598, 2598, 71, 1102, 71, 1104, 1091, 71, 1105,
1631 1092, 1093, 71, 1095, 71, 71, 1096, 1100, 1098, 71,
1632 1097, 1099, 1101, 1103, 71, 1109, 71, 1110, 1107, 71,
1633
1634 1106, 1102, 1108, 1104, 71, 71, 1105, 1116, 71, 71,
1635 1111, 71, 1112, 1113, 1100, 1115, 71, 71, 1119, 71,
1636 1103, 1118, 1109, 1117, 1110, 1107, 71, 1106, 71, 1108,
1637 71, 71, 1125, 71, 1116, 1124, 1120, 1111, 1122, 1112,
1638 1113, 1121, 1115, 71, 1123, 1119, 71, 1132, 1118, 71,
1639 1117, 1133, 1134, 1147, 2598, 1135, 2598, 71, 71, 1125,
1640 2598, 71, 1124, 2598, 2598, 1122, 1136, 2598, 71, 71,
1641 1138, 1123, 1126, 1137, 1132, 1127, 1128, 1143, 1133, 1139,
1642 1129, 71, 1135, 1140, 71, 71, 1130, 1141, 71, 1142,
1643 1131, 71, 71, 1136, 71, 71, 71, 1138, 1144, 1126,
1644
1645 1137, 71, 1127, 1128, 1143, 1145, 1139, 1129, 1148, 71,
1646 1140, 71, 1146, 1130, 1141, 1149, 1142, 1131, 71, 1158,
1647 71, 71, 1150, 2598, 1159, 1144, 1156, 1161, 1163, 1160,
1648 2598, 1179, 1145, 1164, 2598, 71, 71, 71, 1165, 1146,
1649 71, 71, 1149, 71, 1162, 71, 1158, 71, 1166, 1150,
1650 1151, 1159, 71, 1156, 1161, 1152, 1160, 1153, 71, 1154,
1651 71, 1155, 71, 1167, 1169, 1165, 1170, 1168, 71, 2598,
1652 71, 1162, 71, 1171, 71, 1166, 71, 1151, 1176, 1173,
1653 1175, 1178, 1152, 1172, 1153, 71, 1154, 71, 1155, 1174,
1654 1167, 1169, 71, 1170, 1168, 1177, 71, 71, 71, 1180,
1655
1656 1171, 71, 71, 71, 1181, 1176, 1173, 1175, 1178, 1182,
1657 1172, 71, 2598, 1183, 1186, 1185, 1174, 1184, 1187, 1188,
1658 1192, 1189, 1177, 71, 1190, 71, 1180, 1191, 1193, 1196,
1659 71, 71, 1195, 71, 71, 71, 1182, 71, 1194, 71,
1660 1183, 71, 1185, 71, 1184, 1187, 71, 71, 1189, 1197,
1661 1198, 1190, 1199, 71, 1191, 1193, 1196, 71, 1200, 1195,
1662 71, 1201, 1203, 1202, 1204, 1194, 1206, 1205, 1207, 71,
1663 1208, 71, 71, 1209, 71, 1210, 1197, 1198, 1217, 1199,
1664 71, 71, 1213, 71, 71, 1200, 1218, 71, 1201, 1203,
1665 1202, 1204, 71, 71, 1205, 1211, 1212, 1208, 71, 1214,
1666
1667 71, 1215, 1210, 71, 1219, 71, 71, 1216, 71, 71,
1668 71, 71, 71, 1220, 1221, 1224, 1225, 1223, 71, 2598,
1669 1222, 2598, 1211, 1212, 71, 71, 1214, 71, 1215, 71,
1670 71, 1219, 1227, 1228, 1216, 1231, 1229, 1226, 71, 1230,
1671 71, 1221, 1224, 1225, 1223, 71, 71, 1222, 71, 1232,
1672 1233, 1234, 1239, 1235, 71, 1240, 1238, 71, 71, 1227,
1673 1228, 71, 1231, 1229, 1226, 1236, 1230, 1246, 71, 1241,
1674 1237, 71, 1242, 71, 71, 1243, 71, 1233, 1234, 1239,
1675 1235, 71, 1240, 1238, 71, 1244, 1248, 1247, 1245, 1250,
1676 1249, 1279, 71, 1251, 1246, 2598, 1241, 71, 2598, 1242,
1677
1678 71, 71, 1243, 1252, 71, 71, 1254, 71, 1257, 1280,
1679 1253, 1260, 1244, 71, 1247, 1245, 1250, 1249, 71, 71,
1680 1251, 71, 1255, 71, 1259, 1256, 2598, 1258, 71, 1263,
1681 1252, 71, 71, 1254, 71, 1257, 71, 1253, 1260, 1261,
1682 1269, 71, 2598, 2598, 71, 1262, 1265, 1264, 71, 1255,
1683 71, 1259, 1256, 71, 1258, 71, 1263, 1266, 1267, 71,
1684 1268, 1270, 71, 1274, 1271, 1273, 1261, 1269, 71, 71,
1685 71, 1272, 1262, 1265, 1264, 1276, 2598, 1281, 1278, 1283,
1686 71, 71, 1275, 71, 1266, 1267, 71, 1268, 1270, 71,
1687 1274, 1271, 1273, 1277, 71, 1282, 71, 2598, 1272, 71,
1688
1689 71, 1284, 1276, 71, 1281, 1278, 71, 1285, 1286, 1275,
1690 1287, 1289, 2598, 1290, 1288, 2598, 2598, 71, 2598, 2598,
1691 1277, 71, 1282, 71, 71, 71, 71, 1292, 1284, 1291,
1692 1293, 71, 1294, 1305, 1285, 1286, 71, 1287, 1289, 71,
1693 1290, 1288, 1295, 1296, 1298, 71, 71, 1301, 1297, 1299,
1694 71, 1300, 71, 1302, 1292, 71, 1291, 1293, 71, 1294,
1695 1303, 71, 1308, 1304, 1307, 71, 1306, 71, 71, 1295,
1696 71, 1309, 71, 1310, 1301, 71, 71, 1311, 1300, 1317,
1697 1302, 71, 1314, 71, 1312, 71, 1313, 1303, 1318, 1308,
1698 1304, 1307, 71, 1306, 71, 71, 1315, 1320, 1316, 1319,
1699
1700 1310, 1324, 71, 71, 1311, 71, 1317, 1321, 1322, 1314,
1701 71, 1312, 71, 1313, 71, 1318, 1323, 1329, 1325, 71,
1702 1331, 2598, 2598, 1315, 71, 1316, 1319, 71, 1324, 71,
1703 71, 71, 71, 1326, 1321, 1322, 1330, 1327, 1332, 71,
1704 1333, 2598, 1339, 1323, 1329, 1325, 1334, 1331, 71, 71,
1705 1328, 71, 1335, 1336, 1338, 1337, 1341, 1342, 71, 1340,
1706 1326, 71, 1343, 1330, 1327, 1332, 71, 71, 71, 1339,
1707 1345, 71, 1346, 1334, 71, 1347, 71, 1328, 71, 1335,
1708 1336, 1338, 1337, 1348, 71, 1344, 1340, 1349, 71, 1343,
1709 1350, 71, 71, 1351, 1352, 2598, 1353, 1345, 71, 1346,
1710
1711 1354, 71, 1355, 1357, 71, 1356, 71, 71, 1359, 1358,
1712 71, 71, 1344, 1360, 71, 71, 1361, 1350, 71, 1363,
1713 1351, 1352, 71, 1353, 71, 1362, 71, 1354, 1364, 1355,
1714 1357, 71, 1356, 1366, 71, 1359, 1358, 71, 71, 1367,
1715 1360, 1365, 1368, 1361, 71, 1370, 71, 1369, 71, 1371,
1716 1372, 71, 1362, 71, 1373, 1364, 1375, 1376, 71, 71,
1717 1366, 1379, 1374, 71, 71, 1377, 1367, 1383, 1365, 1368,
1718 71, 71, 1370, 1380, 1369, 71, 1371, 71, 71, 1381,
1719 1378, 1373, 71, 1375, 1376, 71, 71, 71, 1379, 1374,
1720 1382, 1384, 1377, 1387, 1383, 71, 1385, 71, 1388, 1386,
1721
1722 1380, 1389, 1390, 71, 1392, 2598, 1381, 1378, 71, 1391,
1723 2598, 1393, 1394, 71, 1396, 71, 1397, 1382, 1384, 71,
1724 1387, 2598, 71, 1385, 71, 1401, 1386, 1402, 1389, 1395,
1725 71, 71, 71, 71, 71, 1398, 1391, 1399, 1393, 1394,
1726 71, 1396, 71, 1397, 1403, 1400, 71, 1408, 71, 71,
1727 2598, 1404, 1401, 71, 1402, 1409, 1395, 71, 71, 71,
1728 1405, 2598, 1398, 1406, 1399, 1410, 1411, 1412, 2598, 71,
1729 2598, 1403, 1400, 1413, 1414, 1407, 1417, 71, 1404, 71,
1730 2598, 1415, 1409, 71, 71, 1416, 1419, 1405, 71, 1422,
1731 1406, 1418, 1410, 1411, 1412, 71, 1420, 71, 71, 1423,
1732
1733 1413, 1425, 1407, 1417, 71, 71, 71, 71, 1415, 1421,
1734 1424, 71, 1416, 1419, 1428, 1426, 71, 1427, 1418, 71,
1735 1430, 71, 2598, 1420, 1429, 1433, 1436, 1431, 1432, 71,
1736 1434, 71, 71, 71, 71, 71, 1421, 1424, 71, 71,
1737 71, 71, 1426, 71, 1427, 1435, 71, 1430, 1437, 1438,
1738 1440, 1429, 1433, 1436, 1431, 1432, 71, 1434, 1439, 1442,
1739 71, 1441, 1443, 71, 1449, 71, 1445, 71, 1444, 71,
1740 1446, 1447, 1435, 71, 2598, 1448, 1438, 1440, 71, 2598,
1741 71, 1450, 71, 1452, 71, 1439, 71, 1459, 1441, 1443,
1742 71, 1449, 71, 1445, 1451, 1444, 1455, 1446, 1447, 71,
1743
1744 1456, 1453, 1448, 71, 1454, 1457, 71, 71, 1450, 1458,
1745 1452, 71, 71, 1460, 71, 1461, 1462, 1463, 1465, 71,
1746 1466, 1451, 1467, 1455, 1464, 71, 1471, 1456, 1453, 71,
1747 71, 1454, 1457, 1472, 1468, 1470, 1458, 1469, 71, 71,
1748 71, 1473, 1461, 71, 1463, 1465, 71, 1466, 71, 1467,
1749 1475, 1464, 71, 71, 1476, 1474, 1478, 1480, 71, 71,
1750 71, 1468, 1470, 1477, 1469, 1481, 71, 71, 1473, 71,
1751 1479, 71, 71, 1484, 71, 1482, 1483, 1475, 2598, 1485,
1752 1489, 1476, 1474, 1478, 1480, 1495, 71, 1498, 1497, 71,
1753 1477, 71, 1481, 1486, 71, 71, 1487, 1479, 1490, 1488,
1754
1755 1484, 1491, 1482, 1483, 71, 71, 1485, 1489, 1492, 1494,
1756 71, 1499, 1496, 1493, 71, 71, 1500, 71, 1504, 71,
1757 1486, 71, 71, 1487, 1501, 1490, 1488, 1502, 1491, 1503,
1758 1505, 1506, 2598, 71, 71, 1508, 1494, 1507, 1499, 1496,
1759 71, 1509, 71, 71, 71, 71, 1510, 1511, 71, 71,
1760 71, 1501, 1513, 1512, 1502, 71, 1503, 1505, 1506, 1516,
1761 1515, 71, 1508, 1514, 1507, 71, 71, 71, 1509, 71,
1762 1518, 1517, 1519, 1510, 1511, 2598, 1521, 71, 1523, 1520,
1763 1512, 1530, 1522, 71, 71, 71, 1516, 1515, 71, 71,
1764 1514, 1524, 1525, 1526, 1527, 1529, 1528, 1541, 1517, 1519,
1765
1766 71, 71, 71, 71, 1534, 1523, 1520, 71, 71, 1522,
1767 1532, 1545, 71, 71, 71, 71, 1531, 1535, 1524, 1525,
1768 1526, 1527, 1529, 1528, 71, 71, 1533, 1536, 1539, 71,
1769 71, 71, 1540, 1537, 71, 1538, 71, 1532, 71, 71,
1770 1543, 1542, 1544, 1531, 1535, 1547, 1546, 71, 71, 71,
1771 71, 1550, 1548, 1533, 1536, 1539, 71, 1549, 1552, 1540,
1772 1537, 1551, 1538, 71, 1554, 1553, 2598, 1543, 1542, 1544,
1773 71, 71, 71, 1546, 71, 71, 71, 1555, 71, 1548,
1774 1558, 1556, 71, 71, 1549, 1552, 1557, 1559, 1551, 71,
1775 71, 1554, 1553, 1562, 1560, 71, 1565, 1567, 1561, 1563,
1776
1777 1568, 2598, 71, 71, 1555, 71, 1566, 1558, 1556, 71,
1778 71, 1570, 1564, 1557, 1559, 71, 1569, 71, 71, 71,
1779 1562, 1560, 71, 1565, 71, 1561, 1563, 1571, 1572, 1582,
1780 1573, 1574, 71, 1566, 71, 1575, 1577, 1576, 1570, 1564,
1781 1578, 1579, 1580, 1569, 71, 1584, 71, 71, 1581, 1583,
1782 1586, 1585, 1589, 71, 1571, 1572, 71, 1573, 71, 1588,
1783 71, 71, 71, 71, 1576, 1590, 1591, 1578, 1579, 71,
1784 1587, 71, 71, 71, 1596, 1581, 1583, 71, 1585, 71,
1785 1598, 71, 71, 71, 1603, 1600, 1588, 1592, 1593, 1594,
1786 1601, 71, 1590, 1597, 1595, 1602, 1599, 1587, 71, 1606,
1787
1788 71, 1596, 71, 71, 2598, 1610, 1605, 1607, 71, 71,
1789 1604, 1603, 71, 1609, 1592, 1593, 1594, 71, 71, 71,
1790 1597, 1595, 1602, 1599, 1612, 71, 71, 1615, 1608, 1611,
1791 71, 71, 71, 1605, 1607, 71, 1613, 1604, 1616, 1614,
1792 1609, 1617, 1618, 71, 71, 1619, 1620, 1621, 71, 1624,
1793 71, 1612, 1622, 71, 1615, 1608, 1611, 2598, 71, 71,
1794 1623, 71, 1627, 1613, 1628, 71, 1614, 71, 1617, 1618,
1795 71, 1626, 71, 1620, 1621, 71, 1624, 1625, 71, 1622,
1796 1630, 1629, 71, 1631, 71, 1632, 1633, 1623, 71, 1627,
1797 2598, 1635, 1634, 1640, 1636, 1637, 71, 1638, 1626, 1639,
1798
1799 71, 71, 71, 71, 1625, 1641, 71, 1630, 1629, 71,
1800 1642, 1643, 71, 71, 71, 71, 2598, 71, 1635, 1634,
1801 1640, 1636, 1637, 71, 1638, 1646, 1639, 1644, 1645, 2598,
1802 1650, 1648, 1641, 1652, 71, 1655, 71, 1642, 71, 1649,
1803 71, 1647, 71, 71, 1653, 1651, 1654, 71, 71, 1659,
1804 1661, 1656, 1646, 71, 1644, 1645, 71, 1650, 1648, 1664,
1805 1652, 1660, 71, 71, 71, 71, 1649, 71, 1647, 1665,
1806 1657, 1653, 1651, 1654, 71, 1658, 71, 1661, 1656, 1667,
1807 1662, 1666, 1663, 1669, 1668, 1670, 71, 71, 1660, 71,
1808 1671, 71, 1672, 1673, 2598, 71, 71, 1657, 1676, 1674,
1809
1810 71, 1675, 1658, 2598, 71, 1677, 1667, 1662, 1666, 1663,
1811 71, 1668, 1678, 1680, 1679, 71, 71, 71, 1681, 1683,
1812 71, 1684, 1682, 2598, 71, 71, 1674, 71, 1675, 71,
1813 71, 1685, 1677, 1687, 1686, 71, 71, 1689, 1688, 1678,
1814 1680, 1679, 71, 1690, 1691, 1692, 71, 1693, 1684, 1682,
1815 71, 71, 71, 1694, 1695, 71, 1696, 1697, 1685, 2598,
1816 1687, 1686, 71, 71, 1689, 1688, 1698, 1699, 1703, 1704,
1817 71, 71, 1692, 2598, 71, 71, 71, 71, 2598, 71,
1818 1694, 1695, 1700, 1696, 1697, 1701, 1702, 1705, 71, 1706,
1819 71, 71, 1708, 1698, 1699, 1703, 71, 71, 1707, 1709,
1820
1821 71, 71, 1712, 1710, 1713, 71, 71, 1715, 1711, 1700,
1822 71, 71, 1701, 1702, 1705, 1714, 1706, 71, 1724, 71,
1823 71, 71, 1717, 1716, 2598, 1707, 1709, 71, 1720, 1712,
1824 1710, 1713, 1719, 1718, 1721, 1711, 71, 71, 1722, 71,
1825 1723, 71, 1714, 1729, 1727, 71, 71, 1725, 71, 1717,
1826 1716, 1726, 71, 71, 71, 1720, 71, 1728, 71, 1719,
1827 1718, 1721, 71, 1730, 1732, 1722, 1731, 1723, 1733, 1734,
1828 71, 1727, 1736, 71, 1725, 71, 1737, 1735, 1726, 71,
1829 1738, 1739, 2598, 2598, 1728, 1740, 1741, 71, 71, 71,
1830 1730, 1732, 71, 1731, 1742, 71, 1734, 71, 71, 1736,
1831
1832 71, 71, 71, 1737, 1735, 1743, 71, 1738, 1739, 71,
1833 1744, 1747, 1740, 1741, 1745, 1748, 1749, 1750, 71, 1757,
1834 2598, 1742, 71, 1752, 1751, 1759, 71, 1746, 71, 1754,
1835 71, 71, 1743, 1753, 2598, 71, 71, 1744, 1747, 1755,
1836 1756, 1745, 1748, 71, 1750, 71, 1757, 71, 1758, 1761,
1837 1752, 1751, 1759, 1760, 1746, 71, 1754, 1763, 1766, 1762,
1838 1753, 71, 1764, 71, 2598, 71, 1755, 1756, 1765, 1767,
1839 71, 71, 71, 1769, 71, 1758, 1761, 1768, 1771, 1772,
1840 1760, 1770, 71, 71, 71, 1766, 1762, 1777, 71, 1764,
1841 71, 71, 1774, 1773, 1775, 1765, 1767, 1778, 1786, 71,
1842
1843 1769, 71, 71, 1776, 1768, 1779, 1772, 71, 1770, 1781,
1844 71, 71, 1782, 1783, 71, 1780, 71, 71, 1784, 1774,
1845 1773, 1775, 71, 71, 1778, 71, 1785, 1793, 1787, 1790,
1846 1776, 1788, 1779, 1789, 71, 1795, 1797, 71, 71, 1782,
1847 1783, 71, 1780, 71, 1794, 1784, 1791, 71, 1796, 1792,
1848 71, 71, 71, 1785, 1793, 1787, 1790, 71, 1788, 71,
1849 1789, 1799, 71, 1797, 71, 1798, 71, 1800, 1801, 1803,
1850 1802, 1794, 1804, 1791, 1805, 1796, 1792, 71, 71, 2598,
1851 71, 71, 71, 71, 1807, 71, 1808, 1806, 1799, 71,
1852 2598, 1809, 1798, 1813, 1800, 1801, 1803, 1802, 1811, 1804,
1853
1854 2598, 1805, 71, 1812, 1810, 71, 71, 71, 71, 1815,
1855 1816, 1807, 71, 1808, 1806, 1814, 1817, 71, 1809, 71,
1856 1813, 1818, 1820, 2598, 1819, 1811, 1822, 71, 1821, 1825,
1857 1812, 1810, 71, 1823, 71, 1826, 1815, 71, 1824, 1827,
1858 71, 1828, 1814, 1817, 1830, 71, 1834, 1829, 71, 1820,
1859 71, 1819, 1835, 1822, 71, 1821, 1831, 2598, 1836, 1839,
1860 71, 71, 1837, 71, 71, 71, 1827, 71, 1828, 1838,
1861 1832, 71, 1840, 1834, 1829, 1841, 1842, 71, 71, 71,
1862 1843, 1833, 71, 1831, 71, 1836, 1844, 1846, 1845, 1837,
1863 1847, 71, 71, 2598, 71, 71, 1838, 1832, 71, 1840,
1864
1865 1848, 1849, 71, 1842, 1850, 71, 1854, 1851, 1833, 71,
1866 71, 1852, 71, 1844, 1846, 1845, 71, 1847, 1855, 1853,
1867 71, 1857, 71, 1856, 1858, 71, 1861, 1848, 1849, 71,
1868 71, 1850, 1859, 71, 1851, 71, 1860, 2598, 1852, 1862,
1869 71, 71, 1947, 71, 1863, 1855, 1853, 71, 1857, 1867,
1870 1856, 1858, 71, 71, 1865, 71, 1864, 71, 71, 1859,
1871 71, 1866, 1868, 1860, 1869, 1871, 1862, 1870, 1873, 71,
1872 71, 1863, 1872, 1874, 71, 1876, 1867, 71, 1877, 71,
1873 1878, 1865, 71, 1864, 1875, 1879, 71, 1881, 1866, 1868,
1874 1880, 1869, 71, 1884, 1870, 1873, 71, 71, 71, 1872,
1875
1876 1874, 71, 1876, 1882, 71, 71, 1883, 71, 1887, 1885,
1877 1886, 1875, 1879, 71, 1881, 71, 1888, 1880, 1890, 1889,
1878 71, 71, 1891, 71, 1893, 1895, 1896, 1897, 1900, 1894,
1879 1882, 71, 71, 1883, 71, 1887, 1885, 1886, 71, 1892,
1880 71, 1899, 1898, 1888, 1902, 71, 1889, 71, 1905, 71,
1881 71, 71, 71, 71, 1897, 71, 1894, 1901, 1903, 1904,
1882 2598, 1906, 1908, 71, 2598, 71, 1892, 71, 1899, 1898,
1883 1909, 71, 71, 1911, 1912, 1905, 1907, 1917, 71, 1910,
1884 71, 71, 1915, 1913, 1901, 1903, 1904, 71, 1906, 71,
1885 71, 71, 1914, 1916, 71, 1921, 71, 1909, 1923, 1918,
1886
1887 1911, 71, 1919, 1907, 71, 1920, 1910, 71, 1922, 1915,
1888 1913, 1924, 1925, 71, 71, 71, 71, 71, 71, 1914,
1889 1916, 1926, 71, 1927, 71, 1923, 1918, 1928, 1929, 1919,
1890 1933, 1930, 1920, 2598, 1931, 1922, 2598, 1935, 1924, 1925,
1891 1932, 71, 71, 71, 71, 1934, 1936, 71, 1926, 1937,
1892 1927, 71, 71, 71, 1928, 1929, 71, 1933, 1930, 71,
1893 1939, 1931, 1938, 1940, 1935, 71, 1941, 1932, 71, 2598,
1894 1942, 71, 1934, 1936, 71, 1948, 1937, 1943, 1944, 1946,
1895 71, 1945, 71, 1950, 1949, 1952, 1951, 1939, 71, 1938,
1896 1940, 71, 71, 1941, 2598, 71, 71, 1942, 71, 71,
1897
1898 1959, 71, 1948, 2598, 1943, 1944, 1946, 1953, 1945, 1957,
1899 1950, 1949, 71, 1951, 1955, 1954, 1956, 71, 1958, 1960,
1900 71, 71, 1961, 1962, 1963, 1964, 1967, 71, 2598, 71,
1901 1966, 71, 1965, 71, 1953, 71, 1957, 71, 71, 1970,
1902 71, 1955, 1954, 1956, 1974, 1958, 1960, 71, 71, 1961,
1903 1962, 1963, 1964, 1967, 71, 1968, 1969, 1966, 1971, 1965,
1904 1972, 1975, 71, 1976, 1973, 1977, 71, 2598, 1978, 1981,
1905 2598, 71, 1982, 1979, 1983, 2598, 71, 71, 71, 1984,
1906 1985, 1995, 1968, 1969, 71, 71, 71, 1972, 71, 1980,
1907 71, 1973, 1977, 71, 71, 1978, 1981, 71, 71, 1982,
1908
1909 1979, 1983, 71, 71, 1986, 1987, 1984, 71, 1989, 1991,
1910 1988, 1990, 71, 71, 1993, 71, 1980, 1992, 71, 1997,
1911 1994, 71, 71, 1998, 1996, 2000, 71, 1999, 71, 2001,
1912 2009, 1986, 1987, 71, 71, 1989, 1991, 1988, 1990, 2002,
1913 71, 1993, 71, 2004, 1992, 71, 1997, 1994, 71, 71,
1914 1998, 1996, 2003, 2005, 1999, 2007, 2001, 71, 2006, 71,
1915 2008, 2010, 71, 2011, 71, 71, 2002, 2013, 2012, 71,
1916 2004, 2015, 2017, 2018, 2016, 2014, 71, 71, 2019, 2003,
1917 2005, 71, 2007, 71, 71, 2006, 71, 2008, 2010, 2020,
1918 71, 2023, 2021, 71, 71, 2012, 71, 2024, 2015, 71,
1919
1920 71, 2016, 2014, 71, 2022, 71, 2025, 2026, 2027, 71,
1921 71, 2028, 2031, 71, 2029, 71, 2020, 2030, 2023, 2021,
1922 2032, 71, 2034, 71, 2024, 2035, 71, 2033, 71, 71,
1923 2038, 2022, 2598, 2025, 71, 2027, 71, 2036, 2037, 71,
1924 2039, 2029, 2042, 71, 2030, 2040, 2041, 2032, 71, 2034,
1925 2043, 2044, 71, 71, 2033, 71, 2045, 2038, 71, 71,
1926 71, 2046, 2047, 2106, 2036, 2037, 2048, 2039, 71, 71,
1927 2049, 71, 2040, 2041, 2051, 2050, 71, 71, 71, 2052,
1928 2053, 2058, 2598, 71, 2054, 2055, 2060, 2598, 2046, 2047,
1929 71, 2057, 71, 2048, 2056, 71, 71, 2049, 71, 71,
1930
1931 2598, 71, 2050, 71, 2061, 71, 71, 71, 2058, 71,
1932 2059, 2054, 2055, 71, 2062, 71, 2063, 71, 2057, 2064,
1933 2069, 2056, 71, 71, 2065, 2066, 2068, 71, 2067, 2072,
1934 2070, 2061, 71, 71, 71, 2073, 2071, 2059, 71, 71,
1935 2074, 2062, 71, 2063, 71, 71, 2064, 2069, 2075, 2076,
1936 2077, 2065, 2066, 2068, 71, 2067, 2072, 2070, 2078, 2079,
1937 2082, 71, 2073, 2071, 71, 2080, 2083, 2074, 2081, 71,
1938 2084, 71, 71, 2085, 2086, 2075, 2076, 2077, 71, 2087,
1939 71, 2088, 71, 71, 71, 71, 71, 2082, 71, 2089,
1940 2091, 71, 2080, 2083, 71, 2081, 2090, 2084, 2092, 71,
1941
1942 2085, 2086, 2093, 71, 2094, 2095, 2087, 71, 2088, 2096,
1943 2097, 2100, 2101, 2098, 2099, 2104, 2089, 2091, 71, 71,
1944 71, 71, 71, 2090, 71, 2092, 71, 2103, 2105, 71,
1945 2598, 2094, 71, 71, 2102, 71, 2096, 2097, 2100, 2101,
1946 2098, 2099, 71, 2107, 2108, 71, 2110, 2113, 2598, 2109,
1947 2114, 2111, 71, 2112, 2103, 71, 71, 71, 71, 2115,
1948 71, 2102, 2116, 2117, 2118, 2119, 2598, 2598, 71, 71,
1949 2107, 2108, 71, 2110, 2113, 71, 2109, 2114, 2111, 2123,
1950 2112, 2120, 2124, 71, 2125, 2121, 71, 71, 71, 2116,
1951 71, 2118, 2119, 71, 2122, 2126, 71, 2127, 2129, 2131,
1952
1953 2128, 71, 2132, 71, 71, 2130, 2123, 2133, 2120, 71,
1954 71, 2125, 2121, 2134, 71, 2135, 71, 2137, 2136, 2139,
1955 71, 2122, 2126, 71, 71, 2129, 71, 2128, 71, 2132,
1956 2138, 2140, 2130, 71, 2133, 2141, 2598, 2142, 71, 2148,
1957 2134, 2144, 71, 2143, 71, 2136, 71, 2145, 71, 2146,
1958 2147, 2149, 71, 71, 2598, 71, 2150, 2138, 2140, 2157,
1959 2154, 71, 71, 71, 2142, 2152, 2148, 71, 2144, 2153,
1960 2143, 2151, 71, 71, 2145, 71, 2146, 2147, 2149, 71,
1961 2155, 71, 71, 2150, 71, 2156, 71, 2154, 2158, 2159,
1962 2161, 2160, 2152, 2163, 2162, 2598, 2153, 71, 2151, 71,
1963
1964 2164, 2167, 71, 71, 2165, 2168, 2169, 2155, 2166, 71,
1965 2170, 2176, 2156, 71, 2171, 71, 2159, 2161, 2160, 2177,
1966 71, 2162, 71, 71, 71, 71, 2174, 2164, 2167, 2172,
1967 71, 2165, 71, 71, 2173, 2166, 2175, 2170, 71, 2179,
1968 2178, 2171, 71, 71, 2180, 2181, 2177, 2182, 71, 2184,
1969 2183, 2598, 2598, 2174, 2598, 2598, 71, 71, 71, 2185,
1970 2186, 71, 71, 2175, 71, 71, 2179, 2178, 2191, 71,
1971 2187, 2180, 2181, 71, 2182, 2188, 2184, 2183, 2189, 71,
1972 2190, 71, 71, 2192, 2193, 2196, 2185, 2186, 2598, 71,
1973 2198, 2195, 71, 2194, 71, 2191, 71, 2187, 71, 71,
1974
1975 71, 71, 2188, 2199, 2200, 2189, 2197, 2190, 71, 2204,
1976 2192, 2193, 71, 2201, 71, 71, 2202, 2198, 2195, 2203,
1977 2194, 71, 2205, 2206, 2598, 2207, 71, 2598, 71, 2208,
1978 2199, 71, 71, 2197, 2210, 2209, 2204, 2211, 2598, 2214,
1979 2201, 2215, 2212, 2202, 71, 2213, 2203, 2216, 71, 2217,
1980 71, 71, 2207, 71, 71, 71, 2208, 71, 2218, 2222,
1981 71, 2210, 2209, 2219, 2211, 71, 2214, 2221, 71, 2212,
1982 71, 2220, 2213, 2223, 71, 2224, 71, 2225, 71, 2226,
1983 2227, 2229, 2230, 2228, 2231, 71, 71, 2232, 2233, 2234,
1984 2219, 71, 2598, 71, 2221, 71, 2235, 71, 2220, 71,
1985
1986 71, 2236, 2224, 2240, 71, 71, 2226, 71, 71, 2230,
1987 2228, 2231, 71, 2237, 2238, 71, 2234, 71, 2239, 71,
1988 2241, 71, 2244, 2243, 71, 71, 2245, 2242, 71, 71,
1989 2240, 2247, 2246, 2248, 2598, 71, 2598, 2249, 2598, 2598,
1990 2237, 2238, 2256, 2252, 2598, 2239, 71, 2598, 71, 71,
1991 2243, 71, 71, 2245, 2242, 71, 2250, 2251, 2247, 2246,
1992 2248, 71, 2253, 2255, 2249, 71, 71, 2254, 2258, 71,
1993 2252, 71, 2257, 2259, 71, 2260, 71, 2261, 2598, 2262,
1994 71, 71, 2263, 2250, 2251, 2264, 2266, 71, 2265, 2253,
1995 2255, 2267, 71, 71, 2254, 2258, 71, 2598, 2268, 2257,
1996
1997 2259, 71, 2260, 71, 2261, 71, 2262, 2269, 71, 2263,
1998 71, 2271, 2264, 2266, 71, 2265, 71, 2270, 2267, 2272,
1999 2273, 2274, 2275, 2276, 71, 2268, 2279, 2278, 2280, 71,
2000 2277, 2284, 2598, 2281, 2269, 71, 2285, 2288, 71, 2283,
2001 2282, 2598, 71, 71, 2270, 71, 2272, 2273, 71, 2275,
2002 71, 71, 71, 2279, 2278, 71, 71, 2277, 71, 2286,
2003 2281, 2287, 2289, 71, 71, 2294, 2283, 2282, 2290, 2291,
2004 2292, 71, 2293, 71, 2295, 2296, 2297, 2300, 71, 71,
2005 71, 2298, 2301, 71, 2299, 71, 2286, 71, 2287, 2289,
2006 2302, 2307, 2294, 71, 2303, 2290, 2291, 2292, 71, 2293,
2007
2008 71, 2295, 2296, 2297, 71, 2306, 2304, 71, 2298, 71,
2009 2305, 2299, 71, 71, 2308, 2310, 2309, 71, 71, 2311,
2010 2312, 2303, 2313, 71, 2315, 2314, 71, 71, 71, 2598,
2011 2317, 2318, 2306, 2304, 71, 2320, 71, 2305, 71, 71,
2012 2321, 2308, 71, 2309, 71, 2322, 2311, 2312, 2316, 2313,
2013 71, 2319, 2314, 2323, 71, 2324, 71, 71, 2318, 71,
2014 2325, 2326, 71, 71, 2327, 2329, 71, 2321, 2328, 71,
2015 2330, 71, 2322, 71, 2332, 2316, 71, 2331, 2319, 2333,
2016 2323, 2335, 2324, 71, 2338, 71, 2341, 2325, 2326, 2336,
2017 71, 2327, 2329, 2334, 71, 2328, 2337, 71, 2339, 71,
2018
2019 71, 71, 2342, 2340, 2331, 71, 71, 71, 71, 2343,
2020 2344, 71, 2345, 2341, 2346, 71, 2336, 2347, 71, 2348,
2021 2334, 2352, 71, 2337, 2349, 2339, 71, 2350, 71, 2342,
2022 2340, 2351, 71, 2353, 2355, 71, 2343, 2344, 71, 71,
2023 2354, 71, 71, 2356, 2347, 2357, 2348, 2358, 71, 71,
2024 71, 2349, 2359, 2360, 2350, 2361, 2362, 71, 2351, 2363,
2025 2353, 2355, 2365, 2364, 71, 2368, 71, 2354, 2369, 2371,
2026 2356, 71, 2370, 2372, 71, 2598, 71, 71, 71, 2359,
2027 71, 71, 2361, 2362, 2373, 71, 2363, 2366, 2367, 2374,
2028 2364, 2375, 71, 2376, 71, 71, 71, 71, 2377, 2370,
2029
2030 71, 2378, 71, 2380, 2379, 2382, 71, 2383, 2384, 2381,
2031 71, 2373, 2386, 71, 2366, 2367, 2374, 71, 2375, 71,
2032 71, 2388, 2387, 2389, 2385, 71, 71, 2391, 71, 2390,
2033 71, 2379, 2382, 71, 2383, 71, 2381, 71, 2392, 2386,
2034 71, 2393, 71, 2398, 2394, 71, 2395, 2396, 71, 2387,
2035 2389, 2385, 2405, 71, 71, 2397, 2390, 71, 71, 71,
2036 2399, 2400, 2402, 71, 2401, 2392, 71, 2411, 71, 71,
2037 2398, 2394, 71, 2395, 2396, 2404, 2403, 71, 2409, 2405,
2038 71, 71, 2397, 71, 71, 2406, 2407, 2399, 2400, 2402,
2039 2408, 2401, 2410, 2412, 71, 71, 71, 2414, 2413, 71,
2040
2041 71, 2415, 2404, 2403, 2418, 2409, 2419, 2420, 2422, 2421,
2042 2423, 2598, 2406, 2407, 2425, 2424, 71, 2408, 2428, 2410,
2043 71, 71, 71, 2426, 71, 2413, 71, 71, 71, 2427,
2044 71, 2418, 71, 71, 2420, 71, 2421, 2423, 71, 2429,
2045 2430, 2425, 2424, 2431, 71, 2428, 2432, 71, 2435, 2439,
2046 2426, 2433, 2437, 2436, 2434, 71, 2427, 2598, 2438, 2440,
2047 71, 71, 2444, 2445, 2446, 71, 71, 71, 71, 71,
2048 2431, 2441, 2442, 2432, 2443, 2447, 2439, 2448, 2433, 2449,
2049 71, 2434, 71, 2450, 71, 2438, 2440, 2451, 2452, 71,
2050 71, 71, 2453, 71, 71, 2454, 2455, 71, 2441, 2442,
2051
2052 71, 2443, 71, 2456, 71, 2458, 2449, 71, 71, 2457,
2053 71, 2459, 71, 2460, 71, 2452, 2461, 2462, 71, 2453,
2054 2463, 71, 2454, 2455, 2464, 71, 2465, 2466, 2598, 71,
2055 71, 2469, 2458, 2467, 2468, 71, 2457, 71, 2459, 71,
2056 2460, 71, 71, 2461, 2462, 71, 2470, 2471, 71, 2472,
2057 71, 2464, 71, 2465, 2466, 71, 71, 2477, 2469, 2473,
2058 2467, 2468, 2474, 2475, 2480, 2476, 71, 2479, 2478, 2481,
2059 71, 2598, 71, 2470, 2471, 2488, 2472, 71, 71, 71,
2060 71, 2484, 71, 71, 2477, 2489, 2473, 71, 2482, 2474,
2061 2475, 2480, 2476, 71, 2479, 2478, 2481, 71, 2483, 2485,
2062
2063 2486, 2487, 71, 71, 2490, 2598, 2491, 71, 2484, 71,
2064 2492, 71, 2489, 2493, 71, 2482, 2494, 2496, 2598, 2499,
2065 2497, 71, 2495, 2498, 71, 2483, 2485, 2486, 2487, 71,
2066 2501, 71, 71, 2491, 2503, 2598, 2500, 71, 2502, 2511,
2067 71, 71, 71, 2494, 2496, 71, 2499, 2497, 71, 2495,
2068 2498, 71, 2504, 2507, 2505, 2506, 2512, 2508, 2509, 2510,
2069 71, 71, 71, 2500, 71, 2502, 71, 71, 2515, 2518,
2070 2598, 71, 2520, 2598, 2513, 2514, 71, 71, 2517, 2504,
2071 71, 2505, 2506, 71, 2508, 2509, 2510, 71, 71, 71,
2072 2516, 71, 71, 2519, 71, 2515, 2518, 71, 2521, 2520,
2073
2074 71, 2513, 2514, 2524, 2522, 2517, 71, 2523, 2598, 2529,
2075 2525, 71, 2532, 2526, 2527, 2531, 2528, 2516, 71, 2536,
2076 2519, 71, 2530, 71, 71, 2521, 2533, 71, 2534, 2535,
2077 2524, 2522, 71, 2537, 2523, 71, 71, 2525, 71, 2532,
2078 2526, 2527, 2538, 2528, 71, 2539, 2536, 71, 71, 2530,
2079 71, 71, 2540, 2533, 2541, 2534, 2535, 2542, 2543, 2544,
2080 2545, 2548, 71, 2546, 71, 71, 71, 71, 2547, 2538,
2081 2549, 71, 71, 2550, 2552, 71, 2551, 71, 2556, 2540,
2082 2598, 2541, 71, 2598, 2542, 2543, 2544, 71, 2548, 2557,
2083 2546, 71, 71, 2555, 2553, 2547, 71, 71, 2554, 2558,
2084
2085 2550, 2552, 71, 2551, 71, 2556, 71, 71, 2559, 71,
2086 2560, 71, 2562, 71, 2561, 2566, 2557, 2563, 2564, 2567,
2087 2555, 2553, 71, 71, 2569, 2554, 2558, 2565, 2568, 2570,
2088 2598, 2598, 2571, 2572, 2576, 2559, 71, 2560, 71, 2562,
2089 71, 2561, 2566, 71, 2563, 2564, 71, 71, 2574, 71,
2090 71, 2569, 71, 71, 2565, 2568, 71, 2573, 2575, 2571,
2091 2572, 71, 2598, 2577, 2578, 71, 71, 2579, 2580, 2581,
2092 71, 71, 2582, 2583, 2584, 2574, 71, 71, 2586, 2585,
2093 2587, 2589, 71, 2588, 2573, 2575, 71, 71, 2590, 71,
2094 2577, 2578, 2591, 2596, 2579, 2580, 2581, 2598, 71, 2582,
2095
2096 71, 2584, 2592, 71, 71, 2586, 2585, 71, 71, 2593,
2097 2588, 2597, 71, 2594, 2595, 71, 2598, 2598, 2598, 2591,
2098 71, 71, 71, 2598, 71, 2598, 2598, 2598, 2598, 2592,
2099 2598, 71, 2598, 2598, 2598, 2598, 2593, 2598, 71, 2598,
2100 2594, 2595, 43, 43, 43, 43, 43, 43, 43, 48,
2101 48, 48, 48, 48, 48, 48, 53, 53, 53, 53,
2102 53, 53, 53, 59, 59, 59, 59, 59, 59, 59,
2103 64, 64, 64, 64, 64, 64, 64, 74, 74, 2598,
2104 74, 74, 74, 74, 140, 140, 2598, 2598, 2598, 140,
2105 140, 142, 142, 2598, 2598, 142, 2598, 142, 144, 2598,
2106
2107 2598, 2598, 2598, 2598, 144, 147, 147, 2598, 2598, 2598,
2108 147, 147, 149, 2598, 2598, 2598, 2598, 2598, 149, 151,
2109 151, 2598, 151, 151, 151, 151, 75, 75, 2598, 75,
2110 75, 75, 75, 13, 2598, 2598, 2598, 2598, 2598, 2598,
2111 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2112 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2113 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2114 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2115 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2116 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598
1429 946, 71, 472, 71, 71, 71, 447, 432, 448, 449,
1430 461, 71, 436, 71, 71, 2630, 438, 450, 439, 453,
1431 433, 71, 71, 434, 451, 435, 440, 441, 474, 442,
1432 71, 71, 71, 447, 462, 448, 449, 461, 463, 465,
1433
1434 452, 71, 443, 464, 450, 444, 453, 445, 71, 446,
1435 471, 451, 71, 71, 441, 474, 442, 466, 477, 468,
1436 71, 462, 71, 150, 2630, 467, 465, 452, 473, 443,
1437 71, 71, 444, 71, 445, 71, 446, 454, 455, 469,
1438 470, 2630, 71, 483, 466, 477, 468, 456, 71, 457,
1439 458, 459, 467, 478, 460, 473, 479, 71, 480, 475,
1440 71, 482, 71, 71, 454, 455, 469, 470, 476, 485,
1441 71, 481, 484, 71, 456, 71, 457, 458, 459, 71,
1442 478, 460, 490, 479, 71, 480, 487, 486, 482, 498,
1443 488, 71, 71, 71, 489, 476, 485, 494, 481, 484,
1444
1445 71, 491, 492, 2630, 71, 71, 493, 496, 71, 490,
1446 497, 495, 71, 71, 486, 501, 498, 488, 71, 502,
1447 71, 489, 71, 504, 494, 499, 509, 513, 503, 2630,
1448 71, 71, 71, 493, 496, 71, 505, 497, 495, 71,
1449 500, 71, 501, 506, 71, 511, 502, 510, 71, 71,
1450 504, 517, 499, 509, 507, 503, 508, 512, 514, 71,
1451 2630, 71, 524, 505, 71, 515, 516, 500, 71, 71,
1452 506, 519, 511, 71, 510, 71, 520, 521, 517, 523,
1453 518, 507, 522, 508, 512, 514, 71, 71, 525, 71,
1454 71, 527, 515, 516, 71, 526, 71, 71, 519, 71,
1455
1456 534, 71, 528, 520, 521, 71, 523, 518, 529, 522,
1457 530, 71, 531, 71, 535, 525, 532, 71, 527, 533,
1458 71, 71, 526, 71, 536, 540, 71, 534, 537, 528,
1459 71, 71, 538, 543, 539, 529, 71, 530, 541, 531,
1460 71, 535, 71, 532, 71, 1168, 533, 548, 71, 549,
1461 542, 536, 540, 547, 71, 537, 71, 71, 71, 538,
1462 543, 539, 544, 546, 545, 541, 71, 71, 550, 552,
1463 71, 71, 551, 71, 555, 560, 549, 542, 553, 71,
1464 547, 554, 71, 557, 2630, 556, 558, 606, 71, 544,
1465 546, 545, 71, 561, 71, 563, 552, 71, 562, 551,
1466
1467 71, 71, 560, 71, 564, 553, 71, 71, 554, 559,
1468 557, 565, 556, 567, 566, 71, 569, 568, 71, 71,
1469 561, 578, 563, 2630, 71, 562, 71, 71, 71, 71,
1470 577, 564, 580, 71, 581, 71, 559, 71, 565, 582,
1471 567, 566, 579, 569, 568, 570, 583, 584, 578, 585,
1472 571, 71, 572, 71, 588, 71, 71, 577, 71, 580,
1473 573, 581, 589, 574, 575, 71, 582, 71, 71, 579,
1474 576, 71, 570, 583, 584, 586, 585, 571, 591, 572,
1475 2630, 588, 592, 595, 71, 587, 71, 573, 590, 589,
1476 574, 575, 593, 597, 594, 71, 596, 576, 71, 600,
1477
1478 599, 71, 602, 2630, 71, 591, 71, 71, 71, 592,
1479 595, 598, 587, 603, 71, 590, 71, 71, 71, 593,
1480 597, 594, 71, 596, 601, 604, 600, 599, 609, 602,
1481 605, 607, 71, 608, 71, 610, 71, 611, 598, 617,
1482 603, 612, 613, 71, 616, 71, 71, 614, 71, 71,
1483 71, 601, 604, 150, 615, 609, 618, 605, 607, 620,
1484 608, 71, 610, 71, 611, 71, 71, 619, 612, 613,
1485 621, 616, 622, 624, 614, 623, 634, 625, 628, 71,
1486 637, 615, 71, 632, 633, 71, 635, 71, 71, 71,
1487 636, 71, 675, 629, 619, 71, 71, 621, 630, 622,
1488
1489 624, 71, 623, 626, 625, 628, 627, 631, 71, 638,
1490 71, 71, 71, 71, 71, 71, 639, 71, 640, 71,
1491 641, 71, 642, 643, 644, 71, 71, 71, 646, 645,
1492 626, 647, 71, 627, 631, 648, 638, 649, 71, 71,
1493 651, 650, 653, 639, 71, 640, 71, 641, 71, 642,
1494 643, 644, 71, 652, 71, 71, 645, 658, 647, 71,
1495 71, 654, 648, 665, 649, 657, 655, 659, 650, 653,
1496 656, 664, 71, 660, 71, 71, 71, 661, 662, 2630,
1497 652, 71, 666, 71, 658, 71, 663, 672, 654, 667,
1498 665, 71, 657, 655, 659, 71, 669, 656, 71, 71,
1499
1500 660, 71, 670, 71, 661, 662, 71, 676, 671, 666,
1501 673, 668, 71, 663, 672, 674, 667, 677, 71, 71,
1502 679, 678, 71, 669, 71, 71, 680, 681, 71, 670,
1503 685, 682, 71, 686, 676, 671, 71, 673, 668, 683,
1504 684, 687, 674, 71, 677, 688, 689, 71, 678, 71,
1505 697, 71, 71, 680, 681, 71, 690, 685, 682, 691,
1506 693, 71, 694, 71, 692, 71, 683, 684, 687, 703,
1507 71, 695, 696, 689, 71, 699, 71, 71, 71, 71,
1508 698, 700, 71, 690, 705, 701, 2630, 693, 71, 694,
1509 704, 71, 706, 71, 708, 2630, 2630, 707, 695, 696,
1510
1511 702, 71, 699, 71, 710, 71, 71, 698, 700, 71,
1512 711, 705, 701, 709, 712, 71, 713, 704, 71, 714,
1513 71, 708, 716, 715, 71, 71, 717, 702, 71, 71,
1514 71, 710, 71, 71, 718, 720, 719, 711, 725, 71,
1515 709, 712, 721, 713, 722, 723, 714, 71, 726, 716,
1516 715, 71, 71, 717, 71, 724, 71, 71, 727, 729,
1517 71, 718, 720, 719, 728, 730, 71, 71, 71, 721,
1518 71, 722, 723, 732, 71, 726, 733, 2630, 734, 731,
1519 2630, 71, 724, 737, 735, 727, 729, 71, 71, 71,
1520 736, 728, 730, 738, 740, 741, 742, 739, 71, 71,
1521
1522 732, 749, 71, 733, 71, 734, 731, 71, 71, 71,
1523 737, 735, 743, 744, 745, 71, 71, 736, 747, 71,
1524 738, 740, 741, 742, 739, 746, 748, 71, 749, 750,
1525 751, 754, 753, 71, 71, 752, 71, 755, 756, 743,
1526 744, 745, 71, 757, 761, 747, 71, 71, 71, 764,
1527 71, 71, 746, 748, 150, 71, 750, 751, 754, 753,
1528 71, 71, 752, 758, 755, 756, 759, 760, 767, 762,
1529 757, 71, 766, 71, 765, 71, 71, 763, 768, 71,
1530 71, 772, 770, 769, 773, 71, 2630, 2630, 2630, 771,
1531 758, 792, 71, 759, 760, 71, 762, 71, 71, 766,
1532
1533 71, 765, 784, 71, 763, 768, 71, 782, 774, 770,
1534 769, 773, 775, 71, 71, 776, 771, 71, 783, 71,
1535 71, 786, 71, 71, 789, 785, 2630, 787, 71, 784,
1536 2630, 2630, 788, 2630, 782, 774, 790, 804, 2630, 775,
1537 71, 805, 776, 777, 71, 783, 71, 778, 786, 71,
1538 779, 789, 785, 71, 787, 791, 800, 780, 71, 788,
1539 781, 71, 71, 790, 804, 71, 801, 2630, 71, 2630,
1540 777, 802, 71, 803, 778, 71, 806, 779, 71, 830,
1541 71, 807, 791, 800, 780, 808, 811, 781, 793, 794,
1542 2630, 795, 2630, 801, 796, 810, 71, 71, 802, 797,
1543
1544 803, 809, 812, 806, 814, 798, 799, 71, 807, 813,
1545 71, 71, 808, 811, 71, 793, 794, 71, 795, 71,
1546 816, 796, 810, 820, 71, 819, 797, 71, 809, 812,
1547 815, 814, 798, 799, 71, 817, 813, 818, 71, 821,
1548 822, 824, 71, 71, 71, 71, 823, 816, 825, 71,
1549 820, 71, 819, 71, 826, 71, 71, 815, 827, 831,
1550 829, 832, 817, 828, 818, 833, 821, 822, 824, 836,
1551 71, 839, 837, 823, 834, 825, 835, 838, 71, 71,
1552 840, 71, 71, 843, 841, 71, 71, 829, 832, 842,
1553 71, 71, 833, 71, 71, 71, 836, 71, 839, 837,
1554
1555 845, 834, 71, 835, 838, 844, 846, 71, 71, 847,
1556 848, 841, 850, 71, 849, 71, 842, 851, 71, 852,
1557 2630, 71, 853, 854, 71, 2630, 861, 845, 71, 856,
1558 71, 71, 844, 846, 71, 71, 847, 848, 71, 850,
1559 860, 849, 857, 855, 851, 71, 852, 71, 71, 853,
1560 854, 71, 858, 71, 2630, 862, 856, 864, 863, 865,
1561 859, 71, 2630, 71, 866, 71, 71, 860, 867, 857,
1562 855, 71, 869, 71, 868, 870, 71, 2630, 874, 858,
1563 71, 71, 862, 871, 864, 863, 865, 859, 872, 873,
1564 71, 866, 71, 71, 878, 867, 71, 877, 71, 869,
1565
1566 875, 868, 870, 885, 876, 874, 879, 71, 71, 883,
1567 871, 880, 881, 71, 71, 872, 873, 71, 71, 71,
1568 890, 71, 887, 882, 877, 884, 889, 875, 886, 71,
1569 71, 876, 71, 879, 891, 71, 883, 888, 880, 881,
1570 894, 71, 71, 71, 71, 892, 898, 890, 896, 897,
1571 882, 895, 884, 893, 71, 886, 899, 71, 71, 901,
1572 71, 891, 71, 900, 888, 71, 903, 894, 906, 902,
1573 71, 908, 892, 898, 71, 896, 71, 71, 895, 904,
1574 893, 71, 905, 899, 909, 907, 912, 910, 71, 2630,
1575 900, 71, 71, 71, 71, 150, 902, 71, 908, 914,
1576
1577 911, 943, 71, 915, 71, 924, 904, 71, 71, 905,
1578 71, 909, 907, 912, 910, 913, 71, 916, 925, 917,
1579 2630, 926, 71, 71, 71, 71, 914, 911, 943, 928,
1580 915, 71, 924, 71, 927, 930, 71, 931, 932, 929,
1581 2630, 71, 913, 933, 916, 925, 917, 918, 926, 919,
1582 71, 71, 71, 920, 934, 921, 928, 71, 2630, 2630,
1583 922, 927, 930, 935, 931, 923, 929, 71, 2630, 937,
1584 71, 71, 936, 939, 918, 940, 919, 941, 944, 938,
1585 920, 934, 921, 71, 71, 942, 71, 922, 71, 945,
1586 935, 71, 923, 947, 949, 71, 937, 948, 71, 936,
1587
1588 939, 957, 940, 71, 941, 71, 938, 956, 2630, 960,
1589 71, 968, 942, 2630, 958, 959, 71, 2630, 2630, 962,
1590 2630, 949, 71, 71, 948, 71, 950, 71, 957, 966,
1591 71, 951, 961, 952, 956, 71, 960, 963, 71, 964,
1592 965, 958, 959, 71, 953, 954, 962, 71, 71, 969,
1593 71, 955, 71, 950, 71, 970, 71, 967, 951, 961,
1594 952, 971, 972, 71, 963, 973, 964, 965, 975, 974,
1595 978, 953, 954, 71, 977, 71, 969, 71, 955, 976,
1596 71, 979, 970, 980, 967, 71, 71, 71, 971, 981,
1597 983, 71, 973, 982, 71, 975, 974, 71, 984, 71,
1598
1599 71, 977, 71, 71, 985, 71, 976, 987, 979, 986,
1600 980, 71, 998, 988, 991, 989, 981, 983, 990, 996,
1601 982, 992, 71, 71, 71, 984, 71, 71, 71, 993,
1602 994, 985, 995, 71, 997, 999, 986, 71, 1001, 71,
1603 988, 991, 989, 1002, 71, 990, 996, 1000, 992, 71,
1604 1003, 71, 71, 1004, 71, 1005, 993, 994, 71, 995,
1605 71, 997, 999, 1008, 1007, 1006, 1011, 1009, 1012, 1013,
1606 71, 71, 71, 1010, 1000, 71, 71, 1003, 71, 71,
1607 1004, 71, 1005, 1014, 1016, 71, 1017, 1015, 1018, 1021,
1608 1008, 1007, 1006, 71, 1009, 1012, 1019, 1020, 71, 71,
1609
1610 1010, 71, 1025, 1026, 71, 1022, 71, 71, 71, 1023,
1611 1014, 1016, 1024, 1017, 1015, 1018, 1021, 1027, 71, 71,
1612 71, 1029, 1028, 1019, 1020, 1034, 71, 1033, 1030, 1035,
1613 71, 71, 1022, 71, 71, 71, 1023, 71, 1031, 1024,
1614 1032, 71, 1036, 1038, 1027, 71, 71, 71, 1029, 1028,
1615 1037, 1039, 71, 1040, 1033, 1030, 1041, 71, 71, 1043,
1616 1044, 71, 1042, 1049, 71, 1031, 1045, 1032, 71, 1036,
1617 1038, 1050, 71, 1047, 1052, 1046, 2630, 1037, 1039, 1048,
1618 71, 1053, 71, 71, 71, 71, 1043, 1044, 2630, 1042,
1619 71, 71, 1051, 1045, 71, 71, 71, 1054, 1055, 1056,
1620
1621 1047, 1052, 1046, 71, 71, 71, 1048, 1058, 71, 1059,
1622 1060, 71, 1062, 1061, 71, 71, 71, 1063, 71, 1051,
1623 71, 1065, 1064, 1066, 1054, 1055, 1056, 71, 1068, 1067,
1624 1069, 1071, 1072, 71, 1058, 71, 1059, 1060, 71, 1062,
1625 1061, 1074, 2630, 1073, 71, 1070, 71, 1075, 1065, 1064,
1626 1066, 71, 71, 1078, 1076, 1068, 1067, 71, 1077, 1081,
1627 1084, 1079, 2630, 71, 71, 71, 71, 71, 1074, 71,
1628 1073, 71, 1070, 71, 1075, 71, 1080, 1082, 1085, 71,
1629 1078, 1076, 1083, 1086, 71, 1077, 1081, 71, 1079, 71,
1630 71, 71, 71, 1087, 1088, 2630, 1093, 1089, 1095, 1096,
1631
1632 1124, 71, 2630, 1080, 1082, 1085, 1090, 1094, 1091, 1083,
1633 1086, 1092, 71, 1097, 71, 2630, 1104, 1100, 71, 71,
1634 1087, 1088, 71, 1093, 1089, 1095, 1096, 1098, 1099, 71,
1635 1102, 1105, 71, 1090, 1094, 1091, 71, 71, 1092, 71,
1636 1097, 1101, 1103, 71, 1100, 1107, 71, 1108, 1109, 71,
1637 71, 2630, 71, 71, 1098, 1099, 1106, 1102, 1105, 1110,
1638 1114, 1112, 2630, 71, 1115, 1111, 71, 71, 1101, 1103,
1639 71, 71, 1107, 71, 1108, 1109, 71, 1113, 1117, 71,
1640 71, 1119, 1116, 1106, 71, 1118, 1110, 1114, 1112, 71,
1641 71, 1115, 1111, 1121, 71, 1120, 1122, 1123, 1125, 1126,
1642
1643 71, 1129, 71, 71, 1113, 1117, 1127, 71, 1119, 1116,
1644 1128, 71, 1118, 71, 1130, 71, 71, 1133, 71, 1131,
1645 1121, 1132, 1120, 1122, 1123, 1125, 1126, 1134, 1129, 71,
1646 71, 1135, 71, 1127, 1144, 2630, 1158, 1128, 1142, 2630,
1647 2630, 71, 1143, 1147, 1133, 1145, 71, 1159, 1132, 2630,
1648 2630, 2630, 71, 1146, 1134, 2630, 1148, 71, 1135, 1136,
1649 71, 71, 1137, 1138, 2630, 1142, 71, 1139, 71, 1143,
1650 1147, 71, 1145, 1140, 1149, 71, 1150, 1141, 71, 71,
1651 1146, 71, 1151, 1148, 1152, 1153, 1136, 1154, 1155, 1137,
1652 1138, 1160, 71, 1161, 1139, 1156, 71, 1167, 1157, 2630,
1653
1654 1140, 1149, 71, 1150, 1141, 71, 71, 71, 71, 1151,
1655 71, 1152, 1153, 71, 1154, 1155, 71, 2630, 1160, 1170,
1656 1161, 1172, 1156, 71, 1167, 1157, 1162, 1169, 1171, 1173,
1657 71, 1163, 1179, 1164, 1174, 1165, 1176, 1166, 1178, 1175,
1658 71, 71, 71, 71, 71, 1177, 1170, 71, 1172, 1180,
1659 71, 71, 1182, 1162, 1169, 1171, 1173, 71, 1163, 1179,
1660 1164, 1181, 1165, 1176, 1166, 1178, 71, 71, 1183, 71,
1661 1184, 71, 1177, 1185, 1187, 1186, 1180, 1189, 1188, 1182,
1662 71, 71, 1190, 71, 1191, 1192, 71, 2630, 1181, 1193,
1663 1197, 1194, 71, 71, 2630, 1183, 71, 1184, 1195, 71,
1664
1665 1185, 1187, 1186, 1198, 1189, 1188, 1199, 1200, 1203, 71,
1666 71, 1191, 71, 1196, 71, 71, 1193, 71, 1194, 1205,
1667 71, 71, 1201, 1207, 1204, 1195, 1202, 1206, 71, 71,
1668 1198, 71, 71, 71, 1200, 71, 1208, 1209, 1211, 1210,
1669 1196, 71, 2630, 1219, 1214, 71, 1205, 1212, 71, 1201,
1670 1207, 1204, 1216, 1202, 1206, 1213, 1217, 71, 1215, 71,
1671 71, 71, 1220, 1208, 1209, 1211, 1210, 71, 1221, 71,
1672 71, 1214, 1218, 71, 1212, 71, 71, 71, 1222, 1216,
1673 1223, 1224, 1213, 1217, 1225, 1215, 71, 1226, 1229, 71,
1674 71, 1232, 71, 1230, 71, 1221, 1227, 1228, 71, 1218,
1675
1676 71, 1231, 1233, 71, 71, 1237, 2630, 1223, 1224, 1236,
1677 71, 1225, 71, 1234, 71, 1229, 71, 1238, 1232, 1235,
1678 71, 1240, 1239, 1227, 1228, 71, 71, 1242, 1241, 71,
1679 71, 71, 1237, 71, 71, 71, 1236, 1244, 1245, 1246,
1680 1234, 1243, 1252, 71, 1238, 1247, 1235, 71, 1240, 1239,
1681 71, 1249, 1248, 1251, 1242, 1241, 1250, 1253, 2630, 71,
1682 71, 71, 1254, 1259, 1244, 71, 1246, 71, 1243, 1252,
1683 71, 71, 1247, 1255, 71, 1257, 1256, 1261, 1258, 1248,
1684 1251, 1260, 2630, 71, 1253, 71, 2630, 1262, 71, 1254,
1685 1259, 1263, 1292, 1264, 71, 1265, 71, 71, 1270, 1267,
1686
1687 1255, 71, 1257, 1256, 1266, 1258, 1268, 71, 1260, 71,
1688 71, 71, 1269, 71, 1262, 71, 1272, 1273, 1263, 71,
1689 1264, 71, 1265, 1271, 71, 1270, 1267, 1274, 1278, 1275,
1690 1276, 1266, 71, 1268, 2630, 1279, 71, 71, 1277, 1269,
1691 71, 71, 71, 1272, 1273, 71, 71, 71, 1280, 1282,
1692 1271, 1281, 1283, 2630, 1274, 1278, 1275, 1276, 1284, 71,
1693 71, 1285, 1279, 1286, 2630, 1277, 1287, 1290, 1289, 1291,
1694 71, 71, 71, 71, 1288, 1280, 1282, 1293, 1281, 1283,
1695 71, 71, 2630, 2630, 1294, 1284, 71, 1295, 1285, 71,
1696 1286, 71, 71, 1287, 1290, 1289, 1291, 1296, 1297, 1298,
1697
1698 1302, 1288, 1300, 1299, 1301, 2630, 1303, 2630, 2630, 71,
1699 71, 1294, 71, 71, 1295, 71, 71, 71, 1305, 1306,
1700 71, 71, 2630, 1307, 71, 1297, 1298, 1302, 1304, 1300,
1701 1299, 1301, 71, 1303, 1308, 71, 71, 71, 1309, 1311,
1702 1313, 71, 71, 1310, 1312, 1305, 1306, 71, 1314, 1315,
1703 1307, 1316, 1319, 1317, 1318, 1304, 71, 71, 1321, 71,
1704 71, 1308, 1322, 71, 1320, 71, 71, 1313, 1323, 1324,
1705 71, 71, 1334, 2630, 1325, 1314, 1315, 71, 1316, 1326,
1706 1317, 1318, 71, 71, 71, 1321, 1327, 71, 1331, 1322,
1707 1328, 1320, 1329, 1330, 71, 1333, 1324, 1332, 71, 71,
1708
1709 71, 1325, 1336, 71, 1335, 71, 1326, 2630, 2630, 1337,
1710 71, 2630, 1338, 1327, 71, 1331, 1343, 1328, 1339, 1329,
1711 1330, 71, 1333, 71, 1332, 71, 71, 1345, 1344, 1336,
1712 71, 1335, 71, 1340, 71, 1346, 1337, 1341, 71, 1338,
1713 71, 1347, 2630, 1343, 1348, 1339, 71, 1349, 2630, 1350,
1714 1342, 1356, 1351, 1355, 1345, 1344, 1352, 2630, 71, 1358,
1715 1340, 1353, 1346, 71, 1341, 71, 71, 1359, 71, 71,
1716 71, 1348, 71, 1354, 1349, 71, 1350, 1342, 71, 1351,
1717 71, 1357, 1361, 1352, 1360, 71, 1358, 2630, 1353, 71,
1718 71, 1362, 1363, 1364, 1359, 1365, 1369, 1366, 2630, 1367,
1719
1720 1354, 1368, 71, 1371, 71, 1370, 71, 1372, 1357, 1375,
1721 71, 1360, 1379, 71, 71, 1374, 71, 71, 71, 71,
1722 1364, 71, 1365, 1369, 1366, 71, 1367, 71, 1368, 71,
1723 1371, 1373, 1370, 1376, 1372, 71, 1375, 1377, 1378, 71,
1724 1380, 1381, 1374, 71, 1382, 1384, 71, 1383, 71, 2630,
1725 71, 1387, 71, 1385, 1386, 1388, 1390, 1389, 1373, 71,
1726 1376, 71, 71, 71, 1377, 1378, 71, 1380, 1381, 71,
1727 71, 1382, 1384, 71, 1383, 1393, 71, 1394, 1387, 71,
1728 1385, 1386, 71, 1390, 1389, 1391, 1392, 1396, 71, 1395,
1729 1397, 1398, 1399, 71, 2630, 1402, 1401, 71, 71, 1400,
1730
1731 2630, 1404, 1393, 71, 1394, 1403, 1406, 1408, 1411, 71,
1732 71, 71, 1391, 1392, 1396, 71, 1395, 1397, 1398, 1399,
1733 71, 71, 1402, 1401, 1405, 1410, 1400, 71, 1407, 1409,
1734 1414, 71, 1403, 71, 71, 1411, 1412, 71, 71, 1413,
1735 1415, 71, 1416, 71, 1417, 1419, 71, 1418, 1424, 71,
1736 2630, 1405, 1410, 2630, 71, 1407, 1409, 1414, 1430, 1425,
1737 71, 1421, 71, 1412, 1422, 71, 1413, 1415, 71, 1416,
1738 1420, 1417, 1419, 71, 1418, 1426, 1423, 71, 1427, 1433,
1739 71, 71, 1428, 1429, 71, 71, 1425, 1431, 1421, 1432,
1740 71, 1422, 2630, 71, 1434, 1435, 1438, 1420, 1439, 1441,
1741
1742 71, 71, 1426, 1423, 71, 1427, 1433, 71, 71, 1428,
1743 1429, 1436, 1440, 71, 1431, 71, 1432, 1437, 1443, 71,
1744 1444, 1434, 1435, 1442, 71, 1453, 1445, 71, 71, 1447,
1745 71, 71, 1446, 1449, 71, 1448, 71, 2630, 1436, 1440,
1746 71, 71, 71, 1451, 1437, 1443, 71, 71, 71, 1452,
1747 1442, 1450, 1458, 1445, 1454, 1456, 1447, 71, 71, 1446,
1748 1449, 71, 1448, 71, 71, 1455, 1460, 1457, 71, 1461,
1749 1451, 1462, 71, 71, 1463, 2630, 1452, 1459, 1450, 71,
1750 1468, 1454, 1456, 71, 71, 1466, 1464, 71, 71, 71,
1751 1465, 2630, 1455, 1460, 1457, 71, 1461, 1467, 1462, 71,
1752
1753 71, 1463, 1469, 71, 1459, 1470, 1472, 1468, 1471, 71,
1754 1475, 1473, 1466, 1464, 1474, 1476, 71, 1465, 71, 71,
1755 71, 1477, 1478, 1480, 1467, 1479, 1483, 1488, 1487, 1469,
1756 2630, 71, 1470, 1472, 1481, 1471, 1482, 71, 1473, 71,
1757 1489, 1474, 71, 1484, 71, 71, 71, 71, 1477, 71,
1758 1480, 71, 1479, 1483, 1485, 1487, 71, 1486, 1490, 71,
1759 1491, 1481, 1492, 1482, 1493, 71, 1497, 71, 1494, 2630,
1760 1484, 71, 71, 1495, 71, 71, 1496, 71, 71, 71,
1761 1498, 1485, 1502, 1499, 1486, 1490, 1500, 1491, 71, 1492,
1762 1501, 1493, 2630, 1497, 71, 1494, 1503, 2630, 1504, 1507,
1763
1764 1495, 1505, 1506, 1496, 71, 71, 71, 1498, 71, 1502,
1765 1499, 71, 71, 1500, 1509, 1508, 71, 1501, 1511, 1510,
1766 1512, 1513, 1514, 1503, 71, 1504, 1507, 1515, 1505, 1506,
1767 71, 71, 1517, 1516, 1519, 1518, 1521, 2630, 1520, 1522,
1768 1531, 71, 1508, 2630, 1537, 1511, 71, 1533, 1513, 71,
1769 1525, 71, 71, 71, 71, 71, 71, 1523, 71, 71,
1770 1516, 1519, 1518, 1524, 71, 1520, 1522, 1526, 71, 1527,
1771 1529, 1528, 71, 1530, 1533, 71, 71, 1525, 1532, 1535,
1772 1534, 71, 2630, 71, 1523, 71, 71, 71, 71, 71,
1773 1524, 1538, 71, 1540, 1526, 1536, 1527, 1529, 1528, 1539,
1774
1775 1530, 1542, 71, 1541, 1548, 1532, 1535, 1534, 71, 71,
1776 71, 1543, 1544, 1545, 1546, 1547, 71, 1549, 1538, 71,
1777 71, 1550, 1536, 1553, 71, 2630, 1539, 1555, 1542, 71,
1778 1541, 1548, 71, 71, 71, 71, 1551, 1552, 1543, 1544,
1779 1545, 1546, 1547, 1554, 71, 71, 1556, 71, 1550, 1558,
1780 71, 71, 1557, 1559, 1555, 1560, 71, 71, 1564, 1561,
1781 71, 71, 1562, 1551, 1552, 2630, 1566, 71, 1565, 1563,
1782 1554, 71, 1567, 1556, 71, 1569, 1558, 1572, 1571, 1557,
1783 1559, 1573, 1568, 1570, 2630, 71, 1561, 71, 71, 1562,
1784 71, 1577, 71, 71, 71, 1565, 1563, 1578, 71, 1567,
1785
1786 71, 71, 71, 71, 1572, 1571, 1574, 1575, 1573, 1568,
1787 1570, 71, 1576, 71, 1579, 71, 71, 1582, 1577, 1580,
1788 1581, 71, 1586, 1587, 1578, 1584, 1585, 1593, 2630, 71,
1789 1583, 71, 71, 1574, 1575, 71, 1591, 1588, 71, 1576,
1790 1589, 1579, 71, 71, 1582, 1592, 1580, 1581, 71, 71,
1791 1594, 1590, 1584, 1585, 71, 71, 1596, 1583, 71, 1595,
1792 1599, 71, 1597, 1591, 1588, 1600, 71, 1589, 71, 1598,
1793 1601, 71, 1592, 1602, 1603, 71, 1604, 71, 1590, 1605,
1794 1606, 1607, 71, 71, 1610, 71, 1595, 71, 71, 1597,
1795 1608, 1615, 1600, 1609, 1617, 2630, 1598, 71, 71, 2630,
1796
1797 1602, 1625, 71, 1604, 2630, 71, 71, 1606, 1607, 1619,
1798 1622, 71, 2630, 2630, 1620, 2630, 71, 71, 1615, 71,
1799 1609, 1611, 1612, 1613, 1616, 1618, 71, 1621, 1614, 1623,
1800 1624, 71, 71, 71, 2630, 71, 71, 1622, 1628, 1627,
1801 71, 71, 71, 1626, 71, 71, 71, 1629, 1611, 1612,
1802 1613, 1616, 1618, 1631, 1621, 1614, 1623, 1624, 1630, 71,
1803 1632, 71, 1634, 1633, 1635, 1628, 1627, 71, 71, 1639,
1804 1626, 1638, 1640, 2630, 71, 1636, 1637, 71, 2630, 71,
1805 1631, 1641, 1642, 1648, 71, 1630, 1644, 1632, 71, 1634,
1806 1633, 71, 1647, 71, 71, 1651, 71, 1650, 1638, 1640,
1807
1808 71, 71, 1636, 1637, 1643, 71, 1645, 71, 1641, 1642,
1809 1646, 1649, 71, 1644, 71, 71, 1652, 71, 71, 1647,
1810 1653, 71, 1654, 1655, 1650, 1656, 1657, 71, 1658, 2630,
1811 1659, 1643, 71, 1645, 71, 1662, 1660, 1646, 1649, 1661,
1812 71, 71, 1663, 71, 71, 71, 1672, 71, 71, 1654,
1813 1655, 1664, 1656, 1657, 71, 1658, 1665, 1659, 71, 1666,
1814 1668, 71, 1662, 1660, 1669, 1670, 1661, 71, 71, 71,
1815 2630, 1671, 71, 1672, 71, 1667, 1673, 71, 1664, 71,
1816 1675, 1674, 71, 1665, 2630, 1677, 1666, 1668, 1676, 1679,
1817 1678, 1669, 1670, 1681, 1680, 1684, 1685, 71, 1671, 71,
1818
1819 71, 71, 1667, 1673, 1686, 1687, 71, 71, 1674, 1690,
1820 1691, 71, 1677, 2630, 2630, 1676, 71, 1678, 1682, 1683,
1821 1681, 1680, 1694, 71, 1688, 71, 71, 71, 71, 1689,
1822 71, 1686, 1687, 1692, 1695, 1697, 71, 71, 1693, 1698,
1823 71, 1696, 71, 1699, 2630, 1682, 1683, 1703, 1701, 1700,
1824 71, 1688, 1705, 1702, 71, 71, 1689, 1715, 71, 1704,
1825 1712, 2630, 1697, 71, 71, 71, 71, 1706, 1696, 1708,
1826 1699, 71, 71, 1707, 1710, 1701, 1700, 71, 1711, 71,
1827 1702, 1709, 71, 1713, 71, 1714, 1704, 71, 71, 71,
1828 1716, 1717, 71, 1718, 1706, 1721, 1708, 1719, 71, 1720,
1829
1830 1707, 1710, 1726, 71, 71, 1711, 1725, 2630, 1709, 1727,
1831 71, 71, 1714, 71, 71, 71, 1722, 1716, 1717, 71,
1832 1718, 71, 1721, 1723, 1719, 1724, 1720, 71, 71, 71,
1833 1730, 71, 1728, 1725, 1729, 1731, 1727, 1732, 71, 1733,
1834 71, 1734, 71, 1722, 1735, 1737, 2630, 1736, 71, 71,
1835 1723, 1746, 1724, 2630, 71, 71, 71, 71, 2630, 1728,
1836 1738, 1729, 1731, 1741, 1732, 1739, 1733, 71, 1734, 71,
1837 1742, 1735, 71, 71, 1736, 1743, 1740, 71, 71, 1744,
1838 1754, 1745, 2630, 1751, 1753, 1747, 1749, 1738, 71, 1748,
1839 1741, 71, 1739, 71, 71, 71, 71, 1742, 71, 1752,
1840
1841 71, 1750, 1743, 1740, 1755, 71, 1744, 1754, 1745, 71,
1842 71, 1753, 1747, 1749, 71, 71, 1748, 1756, 1757, 1760,
1843 1758, 2630, 1759, 1761, 1762, 1763, 1752, 71, 1750, 71,
1844 1766, 71, 1765, 71, 2630, 1771, 71, 71, 71, 71,
1845 71, 1764, 71, 1770, 1756, 1757, 1760, 1758, 71, 1759,
1846 1761, 1762, 1763, 1767, 1769, 1772, 71, 1766, 71, 1765,
1847 1773, 71, 71, 1775, 71, 1774, 1768, 71, 1764, 1776,
1848 1770, 2630, 1777, 1778, 71, 1779, 71, 1781, 1786, 1780,
1849 1767, 1769, 1772, 1784, 71, 71, 2630, 1773, 1783, 71,
1850 1775, 1782, 1774, 1768, 71, 1788, 1776, 71, 71, 1777,
1851
1852 1778, 71, 1779, 71, 1781, 71, 1780, 1785, 71, 71,
1853 1784, 1787, 71, 1790, 1789, 1783, 2630, 71, 1782, 1792,
1854 71, 1791, 1788, 1793, 1794, 1795, 1800, 2630, 71, 1804,
1855 71, 1796, 1797, 2630, 1785, 71, 1798, 2630, 1787, 71,
1856 1790, 1789, 1799, 71, 71, 71, 1792, 71, 1791, 1801,
1857 1793, 71, 1795, 71, 1802, 71, 71, 1803, 1796, 1797,
1858 1805, 71, 2630, 1798, 71, 1806, 71, 1809, 1810, 1799,
1859 1807, 2630, 1811, 2630, 1812, 71, 1801, 1816, 1808, 2630,
1860 1817, 1802, 71, 71, 1803, 1813, 71, 1805, 1814, 71,
1861 71, 1815, 1806, 1818, 71, 1810, 1819, 1807, 71, 1811,
1862
1863 71, 1812, 71, 71, 1816, 1808, 71, 1817, 1822, 1820,
1864 1821, 1823, 1813, 1824, 71, 1814, 2630, 1828, 1815, 1825,
1865 71, 1831, 1826, 1819, 71, 71, 71, 71, 71, 1832,
1866 71, 71, 1827, 71, 1833, 1822, 1820, 1821, 1823, 1829,
1867 1824, 71, 1830, 71, 1828, 1840, 1825, 1834, 1831, 1826,
1868 1835, 71, 1837, 1842, 71, 71, 1832, 71, 1836, 1827,
1869 1839, 1833, 71, 1838, 71, 71, 1829, 1843, 1841, 1830,
1870 1844, 71, 71, 1849, 1834, 71, 1845, 1835, 71, 1837,
1871 71, 1850, 1846, 1847, 1851, 1836, 71, 1839, 1848, 1854,
1872 1838, 1852, 1853, 71, 1843, 1841, 71, 1844, 71, 71,
1873
1874 1855, 1859, 1858, 1845, 1860, 71, 1861, 1863, 71, 1846,
1875 71, 1851, 2630, 71, 1856, 71, 71, 2630, 1852, 1853,
1876 71, 71, 1864, 1862, 1865, 1857, 71, 1855, 71, 1858,
1877 71, 1860, 71, 1861, 1866, 1867, 1868, 1870, 1869, 71,
1878 2630, 1856, 2630, 1874, 71, 71, 1871, 1872, 71, 1864,
1879 1862, 71, 1857, 1873, 1875, 71, 71, 71, 1878, 71,
1880 71, 1866, 1876, 1868, 1870, 1869, 1877, 71, 1879, 71,
1881 1874, 71, 1880, 1871, 1872, 1881, 71, 71, 1882, 71,
1882 1873, 1875, 1883, 1885, 71, 71, 1884, 2630, 1886, 1876,
1883 71, 71, 1887, 1877, 1888, 1879, 71, 71, 71, 1880,
1884
1885 71, 1889, 1881, 1890, 71, 1882, 1891, 1892, 71, 1883,
1886 71, 71, 71, 1884, 1893, 1886, 1895, 1894, 1896, 1887,
1887 71, 1888, 71, 1897, 1901, 1898, 1899, 1902, 1889, 71,
1888 1890, 1900, 1904, 1891, 1892, 1903, 2630, 71, 71, 1905,
1889 71, 1893, 71, 71, 1894, 1896, 71, 71, 1908, 1909,
1890 1897, 71, 1898, 1899, 71, 1910, 1914, 71, 1900, 1904,
1891 1906, 1911, 1903, 1907, 1913, 71, 1905, 1912, 71, 1915,
1892 1917, 71, 1916, 1919, 71, 71, 1909, 71, 71, 71,
1893 71, 1920, 1910, 71, 1918, 1921, 1925, 1906, 1911, 1922,
1894 1907, 1913, 1924, 71, 1912, 1923, 71, 71, 1926, 1916,
1895
1896 71, 1927, 71, 71, 2630, 1929, 71, 1930, 71, 1928,
1897 1933, 1918, 71, 71, 71, 1931, 1922, 1937, 71, 1924,
1898 1938, 1934, 1923, 1935, 1942, 1926, 71, 71, 71, 71,
1899 1932, 71, 1929, 1940, 1930, 71, 1928, 71, 1936, 1939,
1900 1941, 71, 1931, 71, 71, 71, 71, 1938, 1934, 1946,
1901 1935, 71, 1944, 1943, 1948, 1947, 1945, 1932, 1949, 1952,
1902 1940, 71, 71, 71, 71, 1936, 1939, 1941, 71, 1950,
1903 71, 71, 1951, 2630, 71, 1953, 71, 71, 1954, 1944,
1904 1943, 1948, 1947, 1945, 1955, 1949, 1952, 1956, 1957, 1958,
1905 71, 1959, 1964, 71, 2630, 1960, 1950, 71, 71, 1951,
1906
1907 71, 1961, 1953, 71, 1962, 1954, 71, 1963, 1965, 71,
1908 1966, 1955, 71, 1967, 1956, 1957, 1958, 71, 1959, 71,
1909 1968, 1969, 1960, 71, 71, 1970, 71, 71, 1961, 1972,
1910 71, 1962, 1971, 1973, 1963, 1965, 1976, 1966, 71, 71,
1911 1967, 1974, 71, 71, 1975, 1978, 1977, 1968, 1969, 1979,
1912 71, 71, 1970, 1981, 71, 1982, 1972, 1980, 1983, 1971,
1913 71, 1985, 1986, 1976, 71, 71, 1988, 1984, 1974, 71,
1914 2630, 1975, 71, 1977, 71, 71, 1979, 71, 71, 1987,
1915 1981, 71, 1982, 1990, 1980, 1983, 1991, 1989, 71, 1986,
1916 1993, 1992, 1994, 1988, 1984, 71, 1995, 71, 71, 71,
1917
1918 1996, 71, 1997, 1999, 1998, 2000, 1987, 2001, 2002, 2003,
1919 1990, 71, 71, 1991, 1989, 71, 2004, 1993, 1992, 1994,
1920 2006, 2009, 71, 1995, 2007, 71, 2005, 71, 71, 71,
1921 1999, 1998, 71, 71, 2008, 71, 2003, 71, 2010, 71,
1922 2011, 71, 71, 2004, 71, 2013, 2012, 2006, 2009, 2015,
1923 2630, 2007, 71, 2005, 2014, 2018, 71, 2016, 2017, 2019,
1924 71, 2008, 71, 2021, 71, 2010, 71, 71, 71, 2020,
1925 2025, 71, 2013, 2012, 2023, 2026, 2015, 71, 71, 2022,
1926 2035, 2014, 2018, 71, 2016, 2017, 2019, 2024, 2028, 2027,
1927 2029, 71, 71, 2030, 2031, 71, 2020, 2025, 71, 2033,
1928
1929 71, 2023, 2037, 71, 2032, 71, 2022, 71, 71, 2034,
1930 2045, 2039, 71, 71, 2024, 2028, 2027, 2029, 71, 71,
1931 2030, 2031, 2036, 2038, 2040, 71, 2033, 2043, 2044, 71,
1932 2041, 2032, 71, 71, 2042, 2047, 2034, 71, 71, 2046,
1933 2048, 71, 71, 2051, 2052, 71, 71, 2049, 2054, 2036,
1934 2038, 2040, 71, 2630, 71, 71, 71, 2041, 71, 2053,
1935 2050, 2042, 2047, 2055, 2056, 71, 2046, 2048, 71, 71,
1936 2051, 71, 71, 2057, 2049, 2058, 71, 71, 2060, 2059,
1937 71, 2061, 2065, 71, 2630, 2062, 2053, 2050, 71, 2063,
1938 2055, 2056, 2064, 2067, 2068, 71, 2069, 2066, 2070, 2071,
1939
1940 71, 2074, 2058, 2072, 71, 2060, 2059, 71, 71, 2065,
1941 71, 71, 2062, 2073, 2078, 71, 2063, 71, 71, 2064,
1942 2067, 71, 71, 71, 2066, 71, 71, 71, 2074, 2075,
1943 2072, 2076, 2077, 2079, 2080, 2081, 2083, 2082, 2084, 2630,
1944 2073, 71, 2086, 71, 2085, 71, 71, 2087, 2630, 71,
1945 71, 71, 2088, 2089, 71, 71, 2075, 71, 2076, 2077,
1946 71, 71, 2081, 2083, 2082, 2084, 71, 2091, 2090, 2086,
1947 71, 2085, 2093, 2092, 71, 71, 71, 2094, 2095, 2088,
1948 2089, 71, 2098, 2099, 2101, 71, 2096, 2630, 71, 2097,
1949 2103, 71, 2104, 2100, 2091, 2090, 71, 71, 71, 2093,
1950
1951 2092, 71, 2102, 71, 2094, 2095, 2105, 2106, 71, 2098,
1952 2099, 2101, 71, 2096, 71, 71, 2097, 2103, 2107, 2104,
1953 2100, 2108, 2109, 2110, 2111, 2114, 2630, 2113, 2112, 2102,
1954 71, 71, 71, 71, 71, 71, 71, 2630, 2116, 71,
1955 2630, 2630, 2119, 2120, 71, 2107, 2115, 71, 2108, 2109,
1956 2110, 2111, 2114, 71, 2113, 2112, 71, 2117, 2118, 2121,
1957 2122, 2125, 2123, 2124, 71, 2116, 2126, 71, 71, 2119,
1958 71, 71, 71, 2115, 2127, 2630, 2133, 71, 71, 2131,
1959 2132, 71, 2128, 71, 2117, 2118, 2121, 71, 2125, 2123,
1960 2124, 71, 2129, 2126, 2130, 2134, 2137, 2136, 2135, 2630,
1961
1962 2142, 2127, 71, 71, 71, 71, 71, 71, 71, 2128,
1963 71, 2141, 2140, 2138, 2630, 2144, 2143, 2146, 71, 2129,
1964 71, 2130, 2134, 2137, 2136, 2135, 2139, 71, 2630, 2145,
1965 2151, 2154, 2630, 71, 71, 71, 71, 71, 2141, 2140,
1966 2138, 71, 71, 2143, 2146, 2147, 2148, 2150, 2149, 2152,
1967 2153, 2156, 71, 2139, 71, 71, 2145, 71, 71, 71,
1968 2155, 71, 2157, 71, 2158, 2159, 2630, 2162, 2164, 2163,
1969 2166, 71, 2147, 2148, 2150, 2149, 2152, 2153, 2156, 71,
1970 2167, 2160, 2165, 71, 71, 71, 2161, 2155, 71, 2157,
1971 71, 71, 2159, 71, 71, 71, 2163, 71, 2168, 2630,
1972
1973 2169, 2170, 71, 2171, 2172, 2173, 71, 2167, 2160, 2165,
1974 2174, 2175, 2177, 2161, 2630, 2630, 2176, 71, 71, 2630,
1975 2182, 2178, 71, 71, 2183, 71, 71, 2169, 2170, 71,
1976 2171, 2172, 2173, 71, 71, 2180, 2179, 2174, 2175, 2177,
1977 71, 2181, 71, 2176, 71, 2184, 71, 2182, 2178, 2185,
1978 2186, 2183, 2188, 71, 71, 2187, 2189, 71, 2190, 2191,
1979 2193, 2630, 2180, 2179, 2630, 71, 2192, 71, 2181, 2194,
1980 2195, 2196, 2184, 2197, 71, 71, 71, 71, 2199, 2188,
1981 2198, 71, 2187, 2189, 2200, 2190, 71, 2193, 71, 2201,
1982 2202, 71, 71, 2192, 71, 2204, 2194, 2195, 71, 2203,
1983
1984 71, 2205, 71, 2206, 2207, 2199, 2208, 2198, 2630, 2630,
1985 2209, 2630, 71, 2210, 2212, 2630, 71, 2202, 71, 2211,
1986 2213, 71, 71, 2214, 71, 71, 2203, 71, 2205, 71,
1987 2206, 2207, 2219, 2208, 71, 71, 2217, 2209, 71, 2215,
1988 2210, 2212, 71, 2216, 2218, 71, 2211, 2213, 71, 2220,
1989 2214, 2224, 2221, 2228, 71, 2630, 2223, 71, 71, 2219,
1990 71, 2222, 71, 2217, 71, 2225, 2215, 71, 71, 2226,
1991 2216, 2218, 2227, 71, 2229, 2232, 2220, 2230, 71, 2221,
1992 71, 2234, 71, 2223, 71, 2233, 2231, 71, 2222, 71,
1993 2630, 2235, 2225, 71, 2236, 2238, 2226, 2237, 71, 2227,
1994
1995 2239, 2229, 2232, 2242, 2230, 2243, 2240, 2244, 71, 71,
1996 71, 2245, 2246, 2231, 2241, 71, 71, 71, 2235, 71,
1997 2249, 2236, 2238, 71, 2237, 2250, 71, 2239, 2247, 71,
1998 2242, 2251, 71, 2240, 71, 71, 2248, 2252, 71, 71,
1999 2253, 2241, 2254, 71, 2255, 2256, 71, 2249, 2257, 71,
2000 2258, 2261, 71, 2259, 2262, 2247, 2630, 2630, 71, 2263,
2001 71, 71, 71, 2248, 2252, 2260, 2270, 2253, 2264, 71,
2002 71, 2255, 71, 2265, 2269, 2257, 2272, 71, 71, 2273,
2003 2259, 71, 71, 71, 2266, 2274, 2263, 2267, 71, 2268,
2004 2275, 2271, 2260, 71, 71, 71, 71, 2276, 71, 71,
2005
2006 71, 2269, 2277, 2272, 71, 2630, 71, 71, 2278, 71,
2007 2630, 2266, 2274, 2282, 2267, 2281, 2268, 2275, 2271, 2285,
2008 2284, 71, 71, 2283, 2276, 2287, 2279, 2280, 2630, 2277,
2009 71, 2286, 71, 71, 2289, 2278, 71, 71, 2290, 71,
2010 2282, 2288, 2281, 2291, 71, 2292, 71, 2284, 2293, 71,
2011 2283, 2294, 2287, 2279, 2280, 2295, 2296, 71, 2286, 71,
2012 71, 2289, 71, 2297, 71, 2290, 2300, 2298, 2288, 71,
2013 2291, 71, 2292, 71, 71, 2293, 2301, 2299, 2294, 2302,
2014 2303, 71, 2295, 2296, 71, 2304, 2305, 2306, 71, 2308,
2015 2297, 2309, 2307, 71, 2298, 2630, 2312, 2310, 71, 2311,
2016
2017 71, 2315, 2630, 2301, 2299, 71, 2302, 71, 71, 71,
2018 71, 2316, 2304, 71, 2306, 71, 2308, 71, 71, 2307,
2019 71, 2317, 2313, 2312, 2310, 2318, 2311, 2314, 2315, 71,
2020 2319, 2320, 2321, 71, 2322, 2323, 2330, 2630, 2316, 71,
2021 2325, 71, 2324, 71, 2331, 71, 2327, 2326, 71, 71,
2022 2328, 2332, 2318, 2329, 71, 2630, 2630, 2319, 2320, 2321,
2023 2336, 2322, 2323, 71, 71, 71, 71, 2325, 71, 2324,
2024 2333, 71, 2334, 2327, 2326, 2335, 71, 2328, 71, 71,
2025 2329, 2337, 71, 71, 2338, 2339, 2630, 2336, 71, 2340,
2026 2342, 2341, 2343, 2345, 2344, 2347, 71, 2333, 2630, 2334,
2027
2028 71, 2348, 2335, 71, 2350, 2630, 71, 71, 2346, 71,
2029 71, 2338, 2339, 71, 71, 2349, 71, 2342, 2341, 2343,
2030 2351, 2344, 71, 2352, 2356, 71, 2353, 71, 2348, 2355,
2031 2354, 71, 71, 2357, 71, 2346, 2358, 71, 2359, 71,
2032 71, 2360, 2349, 2362, 2363, 2365, 2361, 2351, 71, 71,
2033 2352, 2356, 71, 2353, 71, 2364, 2355, 2354, 71, 2367,
2034 2357, 71, 2368, 2358, 2366, 2359, 2372, 2369, 71, 2371,
2035 71, 71, 71, 2361, 71, 71, 2370, 71, 2374, 2375,
2036 71, 71, 2364, 71, 2373, 2376, 2367, 2377, 2388, 71,
2037 2378, 2366, 71, 2372, 2369, 71, 2371, 71, 2381, 2383,
2038
2039 2379, 2380, 2389, 2370, 2385, 2374, 71, 71, 71, 71,
2040 2384, 2373, 71, 71, 2377, 2382, 2387, 2378, 2386, 2630,
2041 71, 2391, 71, 71, 2390, 2381, 71, 2379, 2380, 71,
2042 71, 2385, 2392, 71, 71, 2393, 2394, 2384, 2395, 2396,
2043 2399, 71, 2382, 2387, 2630, 2386, 71, 2400, 71, 2402,
2044 2403, 2390, 2401, 71, 2397, 2398, 2404, 71, 71, 2392,
2045 71, 2630, 2393, 2394, 71, 2395, 2406, 71, 2407, 2408,
2046 2409, 71, 2405, 2411, 71, 2630, 71, 71, 71, 2401,
2047 2410, 2397, 2398, 2404, 2412, 71, 2413, 2415, 71, 2414,
2048 2416, 71, 71, 2406, 2417, 71, 71, 71, 2419, 2405,
2049
2050 71, 71, 71, 71, 2418, 2420, 2421, 2410, 2423, 2424,
2051 2422, 2412, 2425, 2413, 71, 71, 2414, 2416, 2630, 2426,
2052 2630, 2417, 71, 71, 2630, 71, 2429, 71, 71, 2430,
2053 2431, 2418, 2420, 71, 2630, 2427, 2424, 2422, 2428, 71,
2054 71, 71, 71, 2443, 71, 71, 2426, 2432, 71, 2437,
2055 2433, 71, 2434, 2429, 2435, 2436, 2430, 2431, 71, 71,
2056 71, 71, 2427, 2441, 71, 2428, 71, 2440, 2438, 2439,
2057 71, 2444, 2446, 71, 2432, 2447, 2437, 2433, 71, 2434,
2058 2442, 2435, 2436, 2445, 2451, 71, 2450, 71, 2448, 2449,
2059 2441, 2452, 2453, 2454, 2440, 2438, 2439, 2459, 71, 71,
2060
2061 71, 2455, 71, 2456, 2457, 71, 71, 2442, 2460, 71,
2062 2445, 71, 2461, 2450, 2458, 71, 71, 71, 2452, 2453,
2063 71, 71, 2462, 71, 2459, 2463, 71, 2467, 2455, 2464,
2064 2456, 2457, 2468, 2469, 71, 2460, 2470, 71, 71, 71,
2065 2465, 2458, 2471, 2466, 2472, 2476, 2473, 2475, 2630, 71,
2066 71, 71, 2463, 2474, 71, 71, 2464, 2477, 71, 71,
2067 2478, 2479, 2480, 2470, 2481, 71, 2482, 2465, 71, 2471,
2068 2466, 2472, 71, 2473, 2475, 71, 2483, 2485, 2484, 2488,
2069 2474, 2486, 71, 2487, 71, 2489, 2495, 71, 71, 71,
2070 71, 2481, 71, 71, 71, 71, 2490, 2491, 71, 2492,
2071
2072 2493, 2496, 2630, 71, 2485, 2484, 71, 71, 2486, 71,
2073 2487, 2494, 2489, 2498, 71, 2497, 2503, 2501, 71, 2500,
2074 71, 71, 2499, 2490, 2491, 71, 2492, 2493, 2496, 2502,
2075 71, 71, 2506, 71, 2505, 71, 71, 71, 2494, 71,
2076 2498, 71, 2497, 2503, 2501, 2504, 2500, 71, 2507, 2499,
2077 2510, 2508, 71, 2512, 2509, 2513, 2502, 2511, 2517, 2506,
2078 2514, 2505, 71, 71, 71, 2515, 2516, 71, 71, 71,
2079 71, 2520, 2504, 71, 2522, 2507, 71, 2510, 2508, 71,
2080 2512, 2509, 2513, 71, 2511, 2517, 2519, 2514, 2518, 2521,
2081 2533, 2523, 2515, 2516, 2524, 71, 2525, 2526, 71, 71,
2082
2083 2630, 71, 2527, 2528, 2529, 71, 2530, 71, 2531, 71,
2084 71, 2535, 2534, 2519, 2539, 2518, 2521, 71, 2523, 2543,
2085 2532, 71, 71, 71, 2526, 71, 71, 71, 71, 2527,
2086 2528, 2529, 71, 2530, 2536, 2531, 2537, 2538, 71, 2534,
2087 2540, 71, 71, 2541, 2542, 2544, 71, 2532, 71, 2547,
2088 2630, 71, 71, 2548, 2630, 2545, 2549, 71, 2546, 2630,
2089 71, 2536, 71, 2537, 2538, 2550, 71, 2540, 71, 71,
2090 2541, 2542, 71, 2552, 2551, 2554, 2547, 71, 2553, 2555,
2091 2548, 71, 2545, 2549, 2561, 2546, 71, 2557, 71, 71,
2092 2556, 2558, 2550, 71, 2559, 71, 2560, 2562, 71, 2563,
2093
2094 2552, 2551, 2554, 71, 71, 2553, 2555, 2564, 2565, 71,
2095 2566, 71, 2568, 71, 2557, 2569, 2567, 2556, 2558, 71,
2096 71, 2559, 2570, 2560, 2562, 2571, 2574, 2572, 2573, 2577,
2097 71, 71, 71, 71, 2564, 2565, 71, 2566, 71, 2568,
2098 2575, 2630, 2580, 2567, 71, 2581, 71, 71, 71, 2570,
2099 71, 2576, 71, 2574, 2572, 2573, 2578, 2579, 2585, 71,
2100 2584, 71, 2582, 2587, 71, 2583, 71, 2575, 71, 2580,
2101 2588, 71, 71, 2586, 2590, 2630, 2589, 71, 2576, 2592,
2102 71, 71, 71, 2578, 2579, 2585, 2594, 2584, 71, 2582,
2103 2587, 2593, 2583, 2591, 71, 2595, 71, 2588, 71, 71,
2104
2105 2586, 2590, 2596, 2589, 2599, 71, 2592, 2597, 2598, 2630,
2106 2600, 2601, 71, 2594, 2602, 2608, 71, 2605, 2593, 2603,
2107 2591, 71, 2595, 2604, 71, 71, 2606, 71, 2630, 2596,
2108 2630, 71, 71, 2630, 2597, 2598, 71, 2600, 2601, 71,
2109 2610, 71, 71, 71, 2605, 2614, 2603, 2607, 71, 2609,
2110 2604, 2611, 2612, 2606, 2615, 71, 2613, 71, 2616, 2619,
2111 71, 2617, 71, 2618, 71, 2621, 71, 2610, 2630, 71,
2112 2622, 71, 2614, 71, 2607, 2620, 2609, 2624, 2611, 2612,
2113 2623, 71, 2628, 2613, 2625, 2616, 71, 2629, 2617, 71,
2114 2618, 2630, 71, 2626, 2630, 71, 2630, 71, 2630, 71,
2115
2116 71, 71, 2620, 2630, 2624, 2627, 71, 2623, 2630, 71,
2117 2630, 2625, 2630, 71, 71, 2630, 2630, 2630, 2630, 2630,
2118 2626, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2119 2630, 2630, 2627, 43, 43, 43, 43, 43, 43, 43,
2120 48, 48, 48, 48, 48, 48, 48, 53, 53, 53,
2121 53, 53, 53, 53, 59, 59, 59, 59, 59, 59,
2122 59, 64, 64, 64, 64, 64, 64, 64, 74, 74,
2123 2630, 74, 74, 74, 74, 140, 140, 2630, 2630, 2630,
2124 140, 140, 142, 142, 2630, 2630, 142, 2630, 142, 144,
2125 2630, 2630, 2630, 2630, 2630, 144, 147, 147, 2630, 2630,
2126
2127 2630, 147, 147, 149, 2630, 2630, 2630, 2630, 2630, 149,
2128 151, 151, 2630, 151, 151, 151, 151, 75, 75, 2630,
2129 75, 75, 75, 75, 13, 2630, 2630, 2630, 2630, 2630,
2130 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2131 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2132 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2133 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2134 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2135 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2136 2630
21172137
21182138 } ;
21192139
2120 static yyconst flex_int16_t yy_chk[7501] =
2140 static yyconst flex_int16_t yy_chk[7592] =
21212141 { 0,
21222142 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
21232143 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
21272147 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
21282148 1, 1, 1, 1, 1, 1, 3, 3, 3, 4,
21292149 4, 4, 5, 5, 6, 6, 5, 28, 6, 7,
2130 7, 7, 7, 2604, 7, 8, 8, 8, 8, 28,
2150 7, 7, 7, 2636, 7, 8, 8, 8, 8, 28,
21312151 8, 9, 9, 9, 10, 10, 10, 15, 21, 24,
21322152
2133 898, 15, 30, 3, 28, 149, 4, 47, 47, 5,
2153 906, 15, 30, 3, 28, 149, 4, 47, 47, 5,
21342154 19, 6, 19, 19, 30, 19, 72, 7, 147, 24,
21352155 72, 19, 24, 8, 21, 21, 24, 29, 9, 30,
21362156 25, 10, 11, 11, 11, 11, 11, 11, 12, 12,
22402260 296, 300, 303, 302, 306, 307, 309, 297, 300, 297,
22412261 297, 301, 302, 305, 308, 310, 304, 307, 305, 308,
22422262
2243 303, 309, 890, 310, 312, 300, 313, 311, 300, 303,
2263 303, 309, 898, 310, 312, 300, 313, 311, 300, 303,
22442264 306, 306, 307, 309, 311, 315, 312, 314, 316, 317,
22452265 320, 318, 310, 0, 314, 0, 0, 318, 319, 323,
2246 319, 312, 890, 320, 311, 0, 0, 315, 313, 0,
2266 319, 312, 898, 320, 311, 345, 345, 315, 313, 0,
22472267 321, 317, 315, 318, 314, 322, 317, 320, 318, 324,
22482268 316, 325, 319, 321, 318, 319, 321, 319, 321, 325,
2249 0, 323, 327, 322, 321, 325, 326, 321, 328, 327,
2250 346, 324, 322, 476, 328, 329, 324, 346, 325, 326,
2251 321, 330, 326, 321, 326, 321, 325, 329, 332, 327,
2252 326, 335, 333, 326, 330, 328, 336, 346, 341, 338,
2253
2254 476, 339, 329, 335, 332, 333, 326, 339, 330, 326,
2255 341, 326, 332, 349, 336, 332, 337, 349, 335, 333,
2256 338, 337, 0, 336, 0, 341, 338, 340, 339, 342,
2257 344, 332, 334, 334, 350, 340, 345, 345, 0, 347,
2258 349, 350, 334, 343, 334, 334, 334, 342, 337, 334,
2259 355, 343, 347, 353, 340, 348, 342, 334, 351, 334,
2260 334, 350, 344, 345, 348, 351, 347, 352, 357, 334,
2261 343, 334, 334, 334, 354, 353, 334, 356, 359, 352,
2262 353, 361, 355, 357, 356, 351, 354, 348, 360, 358,
2263 360, 348, 361, 364, 352, 357, 362, 363, 363, 0,
2264
2265 364, 354, 358, 365, 356, 0, 366, 368, 361, 367,
2266 359, 371, 369, 0, 365, 360, 358, 366, 362, 372,
2267 364, 0, 367, 362, 0, 370, 363, 377, 381, 0,
2268 365, 372, 368, 366, 368, 369, 367, 371, 371, 369,
2269 370, 374, 373, 375, 376, 377, 372, 380, 370, 379,
2270 374, 378, 370, 373, 377, 376, 375, 376, 382, 383,
2271 381, 385, 376, 388, 382, 380, 384, 370, 374, 373,
2272 375, 376, 379, 378, 380, 387, 379, 388, 378, 392,
2273 383, 389, 376, 385, 376, 382, 383, 386, 385, 384,
2274 388, 390, 393, 384, 386, 391, 0, 397, 394, 396,
2275
2276 398, 387, 387, 389, 394, 390, 395, 398, 389, 401,
2277 0, 392, 397, 402, 386, 393, 400, 396, 390, 393,
2278 399, 391, 391, 403, 397, 394, 396, 398, 395, 399,
2279 405, 400, 401, 395, 407, 404, 401, 410, 408, 402,
2280 402, 404, 411, 400, 408, 403, 415, 399, 409, 411,
2281 403, 412, 417, 415, 418, 410, 405, 405, 416, 419,
2282 407, 407, 404, 421, 410, 408, 412, 409, 414, 411,
2283 414, 416, 418, 415, 420, 409, 421, 414, 412, 422,
2284 423, 418, 422, 425, 417, 416, 424, 427, 426, 0,
2285 421, 419, 431, 424, 428, 414, 420, 414, 422, 429,
2286
2287 427, 420, 430, 432, 429, 433, 422, 425, 430, 422,
2288 425, 426, 423, 424, 427, 431, 428, 433, 434, 431,
2289 426, 428, 435, 436, 0, 432, 429, 438, 439, 430,
2290 432, 436, 433, 435, 438, 440, 439, 441, 426, 0,
2291 434, 442, 0, 0, 0, 434, 440, 0, 0, 435,
2292 436, 437, 443, 442, 438, 439, 437, 445, 437, 441,
2293 444, 446, 440, 465, 441, 449, 437, 445, 442, 437,
2294 437, 444, 446, 448, 443, 447, 437, 437, 437, 443,
2295 448, 451, 450, 437, 450, 437, 452, 444, 446, 445,
2296 453, 449, 449, 437, 445, 465, 437, 437, 452, 447,
2297
2298 448, 457, 447, 437, 454, 453, 455, 451, 451, 450,
2299 456, 458, 459, 452, 455, 456, 454, 453, 460, 461,
2300 459, 464, 467, 457, 463, 0, 466, 468, 457, 458,
2301 460, 454, 477, 455, 467, 468, 479, 456, 458, 459,
2302 461, 466, 463, 469, 464, 460, 461, 470, 464, 467,
2303 472, 463, 471, 466, 468, 473, 469, 475, 474, 470,
2304 478, 471, 481, 480, 477, 0, 483, 484, 479, 473,
2305 469, 491, 0, 472, 470, 478, 475, 472, 480, 471,
2306 482, 0, 473, 474, 475, 474, 481, 478, 483, 481,
2307 480, 484, 482, 483, 484, 485, 487, 486, 485, 488,
2308
2309 489, 487, 490, 491, 492, 493, 485, 482, 486, 494,
2310 495, 496, 497, 488, 0, 498, 495, 500, 503, 499,
2311 497, 500, 485, 508, 486, 485, 488, 489, 487, 490,
2312 502, 492, 493, 496, 498, 504, 505, 495, 496, 497,
2313 501, 494, 498, 499, 500, 505, 499, 506, 501, 507,
2314 503, 509, 510, 502, 513, 508, 507, 502, 504, 511,
2315 515, 512, 504, 505, 511, 510, 514, 501, 511, 506,
2316 512, 517, 516, 509, 506, 514, 507, 518, 509, 510,
2317 513, 513, 515, 511, 517, 519, 511, 515, 512, 518,
2318 0, 511, 520, 514, 516, 511, 521, 0, 517, 516,
2319
2320 523, 0, 522, 525, 518, 528, 524, 526, 529, 527,
2321 520, 533, 528, 0, 525, 0, 0, 519, 535, 520,
2322 521, 526, 523, 521, 522, 522, 530, 523, 524, 522,
2323 525, 527, 528, 524, 526, 529, 527, 531, 534, 532,
2324 537, 538, 535, 533, 530, 535, 536, 539, 531, 540,
2325 538, 522, 542, 530, 532, 541, 543, 549, 0, 534,
2326 539, 546, 537, 544, 531, 534, 532, 537, 538, 554,
2327 536, 545, 547, 536, 539, 546, 545, 541, 551, 550,
2328 543, 540, 541, 543, 542, 544, 547, 550, 546, 549,
2329 544, 552, 548, 548, 0, 555, 551, 553, 560, 547,
2330
2331 548, 554, 557, 545, 556, 551, 550, 557, 0, 558,
2332 555, 0, 553, 552, 559, 562, 559, 0, 552, 548,
2333 548, 553, 555, 560, 553, 560, 556, 0, 0, 561,
2334 0, 556, 569, 782, 557, 558, 558, 561, 563, 553,
2335 562, 559, 562, 564, 565, 568, 566, 563, 567, 570,
2336 569, 571, 564, 565, 566, 567, 561, 574, 572, 569,
2337 571, 570, 573, 575, 782, 563, 572, 0, 568, 574,
2338 564, 565, 568, 566, 576, 567, 570, 573, 571, 577,
2339 583, 578, 576, 579, 574, 572, 581, 577, 580, 573,
2340 578, 582, 579, 585, 581, 575, 584, 580, 589, 586,
2341
2342 587, 576, 591, 583, 584, 615, 577, 583, 578, 585,
2343 579, 587, 589, 581, 588, 580, 590, 582, 582, 592,
2344 585, 586, 588, 584, 591, 589, 586, 587, 593, 591,
2345 594, 595, 598, 596, 600, 0, 590, 615, 597, 592,
2346 595, 588, 601, 590, 599, 598, 592, 603, 602, 600,
2347 593, 606, 594, 596, 604, 593, 597, 594, 595, 598,
2348 596, 600, 599, 606, 601, 597, 605, 604, 609, 601,
2349 603, 599, 602, 607, 603, 602, 608, 611, 606, 610,
2350 612, 604, 608, 614, 605, 616, 607, 610, 617, 621,
2351 619, 614, 616, 605, 618, 609, 620, 648, 612, 619,
2352
2353 607, 0, 641, 608, 611, 610, 610, 612, 621, 618,
2354 614, 617, 616, 622, 610, 617, 621, 619, 623, 624,
2355 623, 618, 622, 627, 648, 633, 624, 0, 620, 630,
2356 0, 636, 634, 638, 641, 627, 637, 0, 992, 630,
2357 622, 0, 0, 633, 635, 623, 624, 625, 643, 638,
2358 627, 625, 633, 634, 625, 639, 630, 636, 636, 634,
2359 638, 625, 637, 637, 625, 640, 992, 635, 639, 625,
2360 643, 635, 640, 644, 625, 643, 645, 0, 625, 644,
2361 653, 625, 639, 2382, 2382, 645, 649, 646, 625, 646,
2362 650, 625, 640, 642, 642, 0, 642, 651, 647, 642,
2363
2364 644, 652, 653, 645, 642, 654, 649, 653, 655, 651,
2365 642, 642, 2382, 649, 646, 656, 650, 650, 657, 642,
2366 642, 642, 647, 642, 651, 647, 642, 652, 652, 654,
2367 655, 642, 654, 657, 659, 655, 658, 642, 642, 660,
2368 656, 661, 656, 662, 658, 657, 660, 663, 664, 661,
2369 666, 665, 667, 669, 668, 0, 673, 659, 674, 666,
2370 664, 659, 662, 658, 665, 675, 660, 667, 661, 672,
2371 662, 683, 676, 663, 663, 664, 668, 666, 665, 667,
2372 669, 668, 670, 677, 678, 679, 680, 670, 673, 675,
2373 674, 672, 675, 676, 679, 681, 672, 682, 683, 676,
2374
2375 684, 685, 677, 678, 686, 682, 693, 0, 680, 0,
2376 677, 678, 679, 680, 670, 681, 689, 687, 684, 690,
2377 685, 692, 681, 691, 682, 687, 0, 684, 685, 694,
2378 693, 697, 0, 693, 689, 701, 686, 690, 701, 692,
2379 695, 700, 698, 689, 687, 691, 690, 696, 692, 696,
2380 691, 694, 699, 695, 698, 704, 694, 697, 697, 700,
2381 699, 705, 701, 702, 706, 0, 709, 695, 700, 698,
2382 706, 702, 707, 709, 696, 708, 710, 713, 712, 699,
2383 704, 708, 704, 710, 711, 712, 714, 702, 705, 711,
2384 702, 706, 715, 709, 707, 713, 717, 718, 702, 707,
2385
2386 716, 715, 708, 710, 713, 712, 722, 719, 716, 714,
2387 721, 711, 718, 714, 717, 719, 720, 726, 723, 715,
2388 729, 724, 726, 717, 718, 723, 731, 716, 724, 720,
2389 732, 721, 725, 722, 719, 727, 728, 721, 733, 725,
2390 730, 738, 727, 720, 726, 723, 733, 730, 724, 728,
2391 735, 739, 729, 732, 736, 741, 734, 732, 731, 725,
2392 736, 737, 727, 728, 734, 733, 742, 730, 744, 741,
2393 740, 734, 735, 738, 746, 739, 747, 735, 739, 740,
2394 745, 736, 741, 734, 750, 743, 749, 737, 737, 745,
2395 748, 734, 743, 752, 751, 744, 746, 740, 742, 751,
2396
2397 752, 746, 748, 747, 753, 756, 754, 745, 756, 749,
2398 750, 750, 743, 749, 754, 757, 759, 748, 760, 0,
2399 752, 751, 764, 759, 760, 0, 753, 0, 757, 762,
2400 763, 753, 756, 754, 764, 765, 768, 765, 766, 767,
2401 0, 0, 757, 759, 0, 760, 761, 769, 761, 764,
2402 0, 767, 761, 763, 761, 762, 762, 763, 768, 761,
2403 769, 766, 765, 768, 761, 766, 767, 770, 773, 771,
2404 761, 772, 770, 761, 769, 761, 776, 777, 774, 761,
2405 773, 761, 771, 777, 775, 780, 761, 779, 774, 776,
2406 783, 761, 781, 784, 772, 773, 771, 778, 772, 770,
2407
2408 774, 784, 791, 776, 777, 774, 775, 785, 779, 788,
2409 778, 775, 787, 0, 779, 774, 785, 780, 790, 781,
2410 784, 792, 783, 0, 778, 789, 800, 787, 791, 791,
2411 793, 788, 0, 790, 785, 786, 788, 794, 789, 787,
2412 786, 797, 786, 792, 804, 790, 801, 795, 792, 793,
2413 794, 796, 789, 786, 786, 795, 798, 793, 800, 796,
2414 786, 786, 786, 802, 794, 810, 805, 786, 797, 786,
2415 801, 802, 803, 801, 795, 0, 804, 806, 796, 798,
2416 786, 786, 807, 798, 808, 806, 803, 786, 805, 811,
2417 802, 813, 809, 805, 814, 815, 817, 810, 812, 803,
2418
2419 807, 814, 808, 809, 806, 816, 812, 811, 815, 807,
2420 818, 808, 816, 813, 817, 819, 811, 823, 813, 809,
2421 832, 814, 815, 817, 821, 812, 824, 825, 818, 826,
2422 823, 830, 816, 827, 824, 821, 825, 818, 831, 828,
2423 829, 826, 0, 833, 823, 836, 0, 819, 835, 830,
2424 836, 821, 832, 824, 825, 827, 826, 833, 830, 835,
2425 827, 828, 829, 838, 831, 831, 828, 829, 837, 839,
2426 833, 837, 840, 843, 841, 835, 844, 836, 842, 840,
2427 846, 0, 839, 841, 845, 843, 847, 838, 0, 859,
2428 838, 845, 842, 849, 837, 837, 839, 848, 837, 840,
2429
2430 843, 841, 0, 848, 850, 842, 851, 852, 844, 0,
2431 847, 845, 846, 847, 853, 849, 857, 851, 856, 858,
2432 849, 859, 854, 860, 848, 0, 850, 857, 863, 852,
2433 861, 850, 868, 851, 852, 862, 853, 854, 864, 856,
2434 858, 853, 867, 857, 862, 856, 858, 864, 861, 854,
2435 860, 865, 863, 866, 869, 863, 867, 861, 0, 865,
2436 866, 870, 862, 871, 868, 864, 873, 874, 875, 867,
2437 877, 876, 0, 882, 883, 873, 878, 881, 865, 877,
2438 866, 886, 884, 870, 0, 871, 869, 880, 870, 876,
2439 871, 879, 881, 873, 884, 875, 880, 877, 876, 874,
2440
2441 878, 885, 887, 878, 881, 882, 883, 879, 886, 884,
2442 887, 888, 889, 891, 880, 892, 897, 893, 879, 894,
2443 0, 894, 891, 885, 888, 893, 896, 889, 885, 887,
2444 902, 903, 899, 892, 896, 900, 901, 904, 888, 889,
2445 891, 905, 892, 897, 893, 899, 894, 900, 905, 903,
2446 906, 901, 902, 896, 907, 0, 908, 902, 903, 899,
2447 909, 0, 900, 901, 904, 914, 910, 911, 905, 913,
2448 916, 912, 919, 915, 0, 0, 959, 914, 908, 938,
2449 911, 915, 906, 908, 912, 909, 907, 909, 910, 917,
2450 916, 913, 914, 910, 911, 918, 913, 916, 912, 919,
2451
2452 915, 917, 920, 918, 921, 922, 938, 923, 959, 926,
2453 929, 0, 0, 921, 923, 920, 917, 927, 928, 924,
2454 933, 0, 918, 929, 930, 932, 922, 0, 924, 920,
2455 924, 921, 922, 924, 923, 926, 926, 929, 928, 927,
2456 931, 924, 933, 932, 927, 928, 924, 933, 930, 931,
2457 934, 930, 932, 935, 936, 924, 939, 924, 934, 940,
2458 924, 942, 936, 941, 943, 945, 940, 931, 0, 0,
2459 0, 0, 0, 945, 946, 935, 948, 934, 939, 949,
2460 935, 936, 943, 939, 942, 941, 940, 944, 942, 946,
2461 941, 943, 945, 947, 949, 953, 948, 954, 951, 944,
2462
2463 950, 946, 952, 948, 951, 947, 949, 961, 950, 954,
2464 955, 952, 956, 957, 944, 960, 953, 955, 964, 956,
2465 947, 963, 953, 962, 954, 951, 961, 950, 960, 952,
2466 962, 957, 969, 964, 961, 968, 965, 955, 966, 956,
2467 957, 965, 960, 963, 967, 964, 966, 971, 963, 968,
2468 962, 972, 973, 986, 0, 974, 0, 967, 969, 969,
2469 0, 971, 968, 0, 0, 966, 975, 0, 965, 972,
2470 977, 967, 970, 976, 971, 970, 970, 982, 972, 978,
2471 970, 974, 974, 979, 973, 986, 970, 980, 975, 981,
2472 970, 976, 977, 975, 970, 982, 981, 977, 983, 970,
2473
2474 976, 978, 970, 970, 982, 984, 978, 970, 987, 979,
2475 979, 980, 985, 970, 980, 988, 981, 970, 984, 993,
2476 983, 985, 989, 0, 995, 983, 991, 997, 999, 996,
2477 0, 1014, 984, 999, 0, 993, 997, 988, 1000, 985,
2478 987, 996, 988, 1000, 998, 989, 993, 995, 1001, 989,
2479 990, 995, 991, 991, 997, 990, 996, 990, 1014, 990,
2480 999, 990, 998, 1002, 1004, 1000, 1005, 1003, 990, 0,
2481 1001, 998, 1004, 1006, 1005, 1001, 1002, 990, 1011, 1008,
2482 1010, 1013, 990, 1007, 990, 1003, 990, 1011, 990, 1009,
2483 1002, 1004, 1006, 1005, 1003, 1012, 1007, 1012, 1010, 1015,
2484
2485 1006, 1008, 1009, 1013, 1016, 1011, 1008, 1010, 1013, 1017,
2486 1007, 1015, 0, 1019, 1022, 1021, 1009, 1020, 1023, 1024,
2487 1028, 1025, 1012, 1021, 1026, 1023, 1015, 1027, 1029, 1033,
2488 1026, 1016, 1031, 1027, 1017, 1029, 1017, 1019, 1030, 1020,
2489 1019, 1022, 1021, 1025, 1020, 1023, 1024, 1028, 1025, 1034,
2490 1035, 1026, 1036, 1033, 1027, 1029, 1033, 1031, 1037, 1031,
2491 1030, 1038, 1040, 1039, 1041, 1030, 1044, 1042, 1045, 1035,
2492 1046, 1034, 1039, 1047, 1036, 1048, 1034, 1035, 1056, 1036,
2493 1037, 1042, 1051, 1040, 1041, 1037, 1057, 1038, 1038, 1040,
2494 1039, 1041, 1046, 1048, 1042, 1049, 1050, 1046, 1044, 1052,
2495
2496 1045, 1054, 1048, 1049, 1058, 1047, 1052, 1055, 1054, 1051,
2497 1056, 1055, 1050, 1060, 1061, 1063, 1064, 1062, 1057, 0,
2498 1061, 0, 1049, 1050, 1062, 1058, 1052, 1061, 1054, 1064,
2499 1063, 1058, 1066, 1067, 1055, 1070, 1068, 1065, 1068, 1069,
2500 1067, 1061, 1063, 1064, 1062, 1060, 1065, 1061, 1069, 1071,
2501 1072, 1073, 1078, 1075, 1072, 1079, 1077, 1070, 1066, 1066,
2502 1067, 1075, 1070, 1068, 1065, 1076, 1069, 1083, 1079, 1080,
2503 1076, 1078, 1081, 1073, 1077, 1081, 1071, 1072, 1073, 1078,
2504 1075, 1080, 1079, 1077, 1081, 1082, 1085, 1084, 1082, 1087,
2505 1086, 1117, 1083, 1088, 1083, 0, 1080, 1076, 0, 1081,
2506
2507 1084, 1088, 1081, 1089, 1089, 1087, 1091, 1082, 1095, 1118,
2508 1090, 1098, 1082, 1086, 1084, 1082, 1087, 1086, 1085, 1090,
2509 1088, 1095, 1092, 1117, 1097, 1093, 0, 1096, 1091, 1101,
2510 1089, 1092, 1093, 1091, 1098, 1095, 1096, 1090, 1098, 1099,
2511 1107, 1118, 0, 0, 1101, 1100, 1103, 1102, 1099, 1092,
2512 1097, 1097, 1093, 1100, 1096, 1102, 1101, 1104, 1105, 1103,
2513 1106, 1108, 1107, 1112, 1109, 1111, 1099, 1107, 1106, 1104,
2514 1105, 1110, 1100, 1103, 1102, 1114, 0, 1119, 1116, 1122,
2515 1110, 1108, 1113, 1111, 1104, 1105, 1109, 1106, 1108, 1112,
2516 1112, 1109, 1111, 1115, 1113, 1120, 1114, 0, 1110, 1115,
2517
2518 1116, 1123, 1114, 1119, 1119, 1116, 1122, 1124, 1125, 1113,
2519 1126, 1128, 0, 1129, 1127, 0, 0, 1125, 0, 0,
2520 1115, 1120, 1120, 1126, 1123, 1124, 1127, 1131, 1123, 1130,
2521 1132, 1128, 1133, 1142, 1124, 1125, 1130, 1126, 1128, 1129,
2522 1129, 1127, 1134, 1135, 1136, 1133, 1131, 1138, 1135, 1136,
2523 1134, 1137, 1132, 1139, 1131, 1138, 1130, 1132, 1137, 1133,
2524 1140, 1139, 1145, 1141, 1144, 1142, 1143, 1143, 1140, 1134,
2525 1141, 1146, 1144, 1147, 1138, 1135, 1136, 1148, 1137, 1154,
2526 1139, 1147, 1151, 1145, 1149, 1148, 1150, 1140, 1155, 1145,
2527 1141, 1144, 1149, 1143, 1150, 1151, 1152, 1157, 1153, 1156,
2528
2529 1147, 1161, 1152, 1146, 1148, 1154, 1154, 1158, 1159, 1151,
2530 1153, 1149, 1155, 1150, 1156, 1155, 1160, 1165, 1162, 1161,
2531 1167, 0, 0, 1152, 1157, 1153, 1156, 1167, 1161, 1158,
2532 1160, 1159, 1162, 1163, 1158, 1159, 1166, 1163, 1168, 1165,
2533 1169, 0, 1175, 1160, 1165, 1162, 1170, 1167, 1166, 1168,
2534 1163, 1175, 1171, 1172, 1174, 1173, 1177, 1178, 1163, 1176,
2535 1163, 1174, 1180, 1166, 1163, 1168, 1176, 1169, 1170, 1175,
2536 1183, 1180, 1184, 1170, 1171, 1185, 1172, 1163, 1173, 1171,
2537 1172, 1174, 1173, 1187, 1178, 1182, 1176, 1189, 1177, 1180,
2538 1190, 1182, 1183, 1191, 1193, 0, 1194, 1183, 1184, 1184,
2539
2540 1195, 1190, 1196, 1198, 1191, 1197, 1195, 1185, 1200, 1199,
2541 1187, 1199, 1182, 1201, 1189, 1198, 1202, 1190, 1193, 1204,
2542 1191, 1193, 1194, 1194, 1196, 1203, 1201, 1195, 1205, 1196,
2543 1198, 1197, 1197, 1207, 1200, 1200, 1199, 1203, 1202, 1208,
2544 1201, 1206, 1209, 1202, 1208, 1211, 1204, 1210, 1206, 1212,
2545 1214, 1205, 1203, 1211, 1215, 1205, 1217, 1217, 1209, 1207,
2546 1207, 1220, 1216, 1215, 1217, 1218, 1208, 1224, 1206, 1209,
2547 1210, 1212, 1211, 1221, 1210, 1216, 1212, 1214, 1218, 1222,
2548 1219, 1215, 1219, 1217, 1217, 1224, 1222, 1220, 1220, 1216,
2549 1223, 1225, 1218, 1228, 1224, 1221, 1226, 1223, 1229, 1227,
2550
2551 1221, 1230, 1231, 1226, 1234, 0, 1222, 1219, 1230, 1233,
2552 0, 1235, 1236, 1225, 1239, 1228, 1240, 1223, 1225, 1235,
2553 1228, 0, 1233, 1226, 1227, 1244, 1227, 1245, 1230, 1238,
2554 1229, 1234, 1238, 1236, 1231, 1241, 1233, 1242, 1235, 1236,
2555 1239, 1239, 1240, 1240, 1246, 1243, 1242, 1249, 1241, 1244,
2556 0, 1247, 1244, 1245, 1245, 1250, 1238, 1243, 1247, 1246,
2557 1248, 0, 1241, 1248, 1242, 1251, 1252, 1253, 0, 1253,
2558 0, 1246, 1243, 1254, 1255, 1248, 1258, 1250, 1247, 1249,
2559 0, 1256, 1250, 1251, 1248, 1257, 1260, 1248, 1252, 1263,
2560 1248, 1259, 1251, 1252, 1253, 1260, 1261, 1254, 1258, 1264,
2561
2562 1254, 1266, 1248, 1258, 1261, 1259, 1255, 1256, 1256, 1262,
2563 1265, 1257, 1257, 1260, 1269, 1267, 1262, 1268, 1259, 1267,
2564 1271, 1263, 0, 1261, 1270, 1274, 1277, 1272, 1273, 1271,
2565 1275, 1264, 1265, 1266, 1272, 1273, 1262, 1265, 1274, 1268,
2566 1277, 1269, 1267, 1275, 1268, 1276, 1270, 1271, 1278, 1279,
2567 1281, 1270, 1274, 1277, 1272, 1273, 1279, 1275, 1280, 1284,
2568 1276, 1282, 1285, 1281, 1291, 1280, 1287, 1282, 1286, 1285,
2569 1288, 1289, 1276, 1291, 0, 1290, 1279, 1281, 1290, 0,
2570 1278, 1292, 1288, 1294, 1289, 1280, 1284, 1301, 1282, 1285,
2571 1286, 1291, 1287, 1287, 1293, 1286, 1296, 1288, 1289, 1292,
2572
2573 1298, 1295, 1290, 1294, 1295, 1298, 1293, 1296, 1292, 1300,
2574 1294, 1300, 1298, 1302, 1301, 1303, 1304, 1305, 1307, 1295,
2575 1308, 1293, 1309, 1296, 1306, 1305, 1312, 1298, 1295, 1307,
2576 1309, 1295, 1298, 1313, 1310, 1311, 1300, 1310, 1308, 1303,
2577 1302, 1314, 1303, 1304, 1305, 1307, 1306, 1308, 1314, 1309,
2578 1316, 1306, 1310, 1311, 1317, 1315, 1319, 1322, 1312, 1316,
2579 1313, 1310, 1311, 1318, 1310, 1323, 1322, 1317, 1314, 1315,
2580 1321, 1319, 1321, 1326, 1318, 1324, 1325, 1316, 0, 1327,
2581 1329, 1317, 1315, 1319, 1322, 1335, 1324, 1338, 1337, 1329,
2582 1318, 1323, 1323, 1327, 1325, 1326, 1328, 1321, 1330, 1328,
2583
2584 1326, 1331, 1324, 1325, 1330, 1327, 1327, 1329, 1332, 1334,
2585 1331, 1339, 1336, 1332, 1328, 1337, 1340, 1335, 1345, 1338,
2586 1327, 1336, 1334, 1328, 1341, 1330, 1328, 1343, 1331, 1344,
2587 1346, 1347, 0, 1339, 1343, 1350, 1334, 1347, 1339, 1336,
2588 1332, 1351, 1344, 1350, 1346, 1341, 1352, 1353, 1340, 1351,
2589 1345, 1341, 1355, 1354, 1343, 1347, 1344, 1346, 1347, 1358,
2590 1357, 1353, 1350, 1356, 1347, 1352, 1354, 1358, 1351, 1357,
2591 1360, 1359, 1361, 1352, 1353, 0, 1364, 1356, 1366, 1362,
2592 1354, 1374, 1365, 1361, 1355, 1359, 1358, 1357, 1362, 1365,
2593 1356, 1367, 1368, 1369, 1370, 1373, 1371, 1385, 1359, 1361,
2594
2595 1371, 1366, 1360, 1364, 1378, 1366, 1362, 1373, 1374, 1365,
2596 1376, 1389, 1370, 1367, 1368, 1369, 1375, 1379, 1367, 1368,
2597 1369, 1370, 1373, 1371, 1375, 1376, 1377, 1380, 1383, 1385,
2598 1379, 1378, 1384, 1381, 1377, 1382, 1383, 1376, 1389, 1384,
2599 1387, 1386, 1388, 1375, 1379, 1391, 1390, 1380, 1381, 1387,
2600 1382, 1395, 1393, 1377, 1380, 1383, 1386, 1394, 1397, 1384,
2601 1381, 1396, 1382, 1388, 1399, 1398, 0, 1387, 1386, 1388,
2602 1390, 1399, 1391, 1390, 1393, 1394, 1396, 1400, 1395, 1393,
2603 1403, 1401, 1400, 1397, 1394, 1397, 1402, 1404, 1396, 1398,
2604 1401, 1399, 1398, 1407, 1405, 1402, 1409, 1411, 1406, 1408,
2605
2606 1412, 0, 1403, 1409, 1400, 1404, 1410, 1403, 1401, 1405,
2607 1406, 1414, 1408, 1402, 1404, 1407, 1413, 1408, 1410, 1414,
2608 1407, 1405, 1413, 1409, 1411, 1406, 1408, 1415, 1416, 1426,
2609 1417, 1418, 1412, 1410, 1415, 1419, 1421, 1420, 1414, 1408,
2610 1422, 1423, 1424, 1413, 1420, 1429, 1422, 1423, 1425, 1427,
2611 1431, 1430, 1434, 1416, 1415, 1416, 1417, 1417, 1418, 1433,
2612 1430, 1426, 1419, 1421, 1420, 1435, 1436, 1422, 1423, 1424,
2613 1432, 1425, 1432, 1427, 1438, 1425, 1427, 1429, 1430, 1434,
2614 1440, 1438, 1431, 1433, 1445, 1443, 1433, 1437, 1437, 1437,
2615 1443, 1435, 1435, 1439, 1437, 1444, 1441, 1432, 1436, 1448,
2616
2617 1439, 1438, 1437, 1441, 0, 1452, 1447, 1449, 1444, 1445,
2618 1446, 1445, 1440, 1451, 1437, 1437, 1437, 1443, 1447, 1451,
2619 1439, 1437, 1444, 1441, 1454, 1449, 1446, 1457, 1450, 1453,
2620 1453, 1448, 1452, 1447, 1449, 1450, 1455, 1446, 1458, 1456,
2621 1451, 1461, 1463, 1455, 1456, 1464, 1465, 1466, 1463, 1469,
2622 1454, 1454, 1467, 1457, 1457, 1450, 1453, 0, 1465, 1461,
2623 1468, 1468, 1473, 1455, 1474, 1458, 1456, 1466, 1461, 1463,
2624 1467, 1471, 1464, 1465, 1466, 1469, 1469, 1470, 1470, 1467,
2625 1476, 1475, 1471, 1477, 1473, 1478, 1479, 1468, 1475, 1473,
2626 0, 1481, 1480, 1486, 1482, 1483, 1474, 1484, 1471, 1485,
2627
2628 1476, 1482, 1486, 1483, 1470, 1487, 1487, 1476, 1475, 1481,
2629 1488, 1489, 1484, 1479, 1480, 1477, 0, 1478, 1481, 1480,
2630 1486, 1482, 1483, 1485, 1484, 1492, 1485, 1490, 1491, 0,
2631 1496, 1494, 1487, 1499, 1490, 1502, 1488, 1488, 1494, 1495,
2632 1491, 1492, 1496, 1489, 1500, 1498, 1501, 1495, 1492, 1505,
2633 1507, 1503, 1492, 1498, 1490, 1491, 1499, 1496, 1494, 1510,
2634 1499, 1506, 1502, 1507, 1501, 1500, 1495, 1506, 1492, 1511,
2635 1504, 1500, 1498, 1501, 1503, 1504, 1505, 1507, 1503, 1513,
2636 1508, 1512, 1509, 1514, 1513, 1515, 1504, 1508, 1506, 1509,
2637 1515, 1510, 1516, 1517, 0, 1513, 1511, 1504, 1520, 1518,
2638
2639 1518, 1519, 1504, 0, 1512, 1522, 1513, 1508, 1512, 1509,
2640 1514, 1513, 1523, 1525, 1524, 1525, 1519, 1515, 1526, 1528,
2641 1522, 1529, 1527, 0, 1516, 1517, 1518, 1527, 1519, 1524,
2642 1520, 1531, 1522, 1533, 1532, 1523, 1529, 1536, 1535, 1523,
2643 1525, 1524, 1532, 1537, 1538, 1539, 1531, 1540, 1529, 1527,
2644 1526, 1528, 1539, 1541, 1542, 1533, 1543, 1544, 1531, 0,
2645 1533, 1532, 1535, 1536, 1536, 1535, 1546, 1548, 1553, 1554,
2646 1537, 1538, 1539, 0, 1541, 1544, 1542, 1543, 0, 1540,
2647 1541, 1542, 1549, 1543, 1544, 1551, 1552, 1555, 1546, 1556,
2648 1553, 1548, 1558, 1546, 1548, 1553, 1554, 1549, 1557, 1559,
2649
2650 1551, 1552, 1562, 1560, 1563, 1555, 1559, 1565, 1561, 1549,
2651 1562, 1556, 1551, 1552, 1555, 1564, 1556, 1561, 1576, 1558,
2652 1557, 1560, 1568, 1566, 0, 1557, 1559, 1563, 1570, 1562,
2653 1560, 1563, 1569, 1568, 1571, 1561, 1566, 1564, 1572, 1565,
2654 1573, 1569, 1564, 1583, 1581, 1576, 1570, 1578, 1568, 1568,
2655 1566, 1579, 1571, 1572, 1573, 1570, 1581, 1582, 1578, 1569,
2656 1568, 1571, 1579, 1584, 1586, 1572, 1585, 1573, 1587, 1588,
2657 1582, 1581, 1591, 1584, 1578, 1583, 1592, 1590, 1579, 1591,
2658 1593, 1594, 0, 0, 1582, 1595, 1596, 1594, 1588, 1586,
2659 1584, 1586, 1585, 1585, 1597, 1587, 1588, 1590, 1593, 1591,
2660
2661 1595, 1596, 1592, 1592, 1590, 1598, 1598, 1593, 1594, 1597,
2662 1599, 1602, 1595, 1596, 1600, 1603, 1604, 1605, 1602, 1613,
2663 0, 1597, 1599, 1607, 1606, 1615, 1605, 1600, 1613, 1609,
2664 1603, 1606, 1598, 1608, 0, 1600, 1609, 1599, 1602, 1611,
2665 1612, 1600, 1603, 1604, 1605, 1615, 1613, 1607, 1614, 1618,
2666 1607, 1606, 1615, 1617, 1600, 1608, 1609, 1621, 1624, 1620,
2667 1608, 1611, 1622, 1622, 0, 1612, 1611, 1612, 1623, 1625,
2668 1614, 1617, 1620, 1627, 1618, 1614, 1618, 1626, 1629, 1630,
2669 1617, 1628, 1627, 1624, 1621, 1624, 1620, 1636, 1628, 1622,
2670 1623, 1625, 1632, 1631, 1634, 1623, 1625, 1637, 1644, 1626,
2671
2672 1627, 1630, 1634, 1635, 1626, 1638, 1630, 1631, 1628, 1640,
2673 1629, 1632, 1641, 1642, 1636, 1639, 1635, 1638, 1643, 1632,
2674 1631, 1634, 1639, 1637, 1637, 1644, 1643, 1650, 1645, 1648,
2675 1635, 1646, 1638, 1647, 1641, 1652, 1654, 1643, 1642, 1641,
2676 1642, 1640, 1639, 1645, 1651, 1643, 1649, 1648, 1653, 1649,
2677 1651, 1654, 1650, 1643, 1650, 1645, 1648, 1646, 1646, 1647,
2678 1647, 1657, 1652, 1654, 1649, 1656, 1653, 1658, 1660, 1662,
2679 1661, 1651, 1663, 1649, 1664, 1653, 1649, 1661, 1662, 0,
2680 1656, 1663, 1660, 1657, 1667, 1664, 1668, 1666, 1657, 1658,
2681 0, 1670, 1656, 1674, 1658, 1660, 1662, 1661, 1672, 1663,
2682
2683 0, 1664, 1666, 1673, 1670, 1674, 1667, 1673, 1668, 1676,
2684 1677, 1667, 1670, 1668, 1666, 1675, 1678, 1675, 1670, 1672,
2685 1674, 1679, 1681, 0, 1680, 1672, 1683, 1676, 1682, 1685,
2686 1673, 1670, 1680, 1684, 1678, 1686, 1676, 1677, 1684, 1687,
2687 1683, 1688, 1675, 1678, 1692, 1681, 1694, 1689, 1679, 1681,
2688 1682, 1680, 1695, 1683, 1689, 1682, 1693, 0, 1696, 1699,
2689 1688, 1685, 1697, 1687, 1694, 1684, 1687, 1686, 1688, 1698,
2690 1693, 1692, 1700, 1694, 1689, 1701, 1702, 1697, 1698, 1695,
2691 1703, 1693, 1693, 1693, 1696, 1696, 1705, 1707, 1706, 1697,
2692 1709, 1699, 1709, 0, 1700, 1706, 1698, 1693, 1702, 1700,
2693
2694 1710, 1711, 1701, 1702, 1712, 1711, 1716, 1713, 1693, 1705,
2695 1707, 1714, 1703, 1705, 1707, 1706, 1712, 1709, 1717, 1715,
2696 1714, 1719, 1710, 1718, 1720, 1720, 1723, 1710, 1711, 1713,
2697 1715, 1712, 1721, 1716, 1713, 1718, 1722, 0, 1714, 1725,
2698 1721, 1717, 1814, 1719, 1726, 1717, 1715, 1725, 1719, 1730,
2699 1718, 1720, 1726, 1723, 1728, 1730, 1727, 1728, 1722, 1721,
2700 1727, 1729, 1731, 1722, 1732, 1735, 1725, 1734, 1737, 1729,
2701 1732, 1726, 1736, 1738, 1814, 1740, 1730, 1731, 1741, 1734,
2702 1742, 1728, 1737, 1727, 1739, 1743, 1738, 1745, 1729, 1731,
2703 1744, 1732, 1735, 1747, 1734, 1737, 1736, 1743, 1739, 1736,
2704
2705 1738, 1740, 1740, 1746, 1744, 1741, 1746, 1742, 1751, 1748,
2706 1750, 1739, 1743, 1745, 1745, 1751, 1752, 1744, 1754, 1753,
2707 1747, 1746, 1755, 1752, 1757, 1759, 1760, 1761, 1765, 1758,
2708 1746, 1748, 1750, 1746, 1753, 1751, 1748, 1750, 1758, 1756,
2709 1761, 1764, 1762, 1752, 1767, 1754, 1753, 1756, 1770, 1755,
2710 1762, 1757, 1759, 1760, 1761, 1765, 1758, 1766, 1768, 1769,
2711 0, 1771, 1772, 1764, 0, 1766, 1756, 1768, 1764, 1762,
2712 1773, 1767, 1770, 1775, 1776, 1770, 1771, 1782, 1773, 1774,
2713 1769, 1775, 1780, 1778, 1766, 1768, 1769, 1771, 1771, 1772,
2714 1778, 1774, 1779, 1781, 1780, 1787, 1779, 1773, 1789, 1783,
2715
2716 1775, 1776, 1784, 1771, 1782, 1785, 1774, 1783, 1788, 1780,
2717 1778, 1790, 1791, 1791, 1784, 1788, 1781, 1785, 1789, 1779,
2718 1781, 1792, 1787, 1793, 1790, 1789, 1783, 1794, 1796, 1784,
2719 1800, 1797, 1785, 0, 1798, 1788, 0, 1802, 1790, 1791,
2720 1799, 1793, 1799, 1796, 1800, 1801, 1803, 1792, 1792, 1804,
2721 1793, 1801, 1794, 1797, 1794, 1796, 1798, 1800, 1797, 1802,
2722 1806, 1798, 1805, 1807, 1802, 1807, 1808, 1799, 1803, 0,
2723 1809, 1804, 1801, 1803, 1805, 1815, 1804, 1810, 1811, 1813,
2724 1808, 1812, 1806, 1819, 1817, 1821, 1820, 1806, 1809, 1805,
2725 1807, 1817, 1813, 1808, 0, 1810, 1811, 1809, 1815, 1812,
2726
2727 1827, 1819, 1815, 0, 1810, 1811, 1813, 1822, 1812, 1825,
2728 1819, 1817, 1820, 1820, 1823, 1822, 1823, 1821, 1826, 1828,
2729 1825, 1823, 1829, 1831, 1832, 1833, 1837, 1827, 0, 1826,
2730 1836, 1828, 1834, 1822, 1822, 1832, 1825, 1833, 1831, 1840,
2731 1829, 1823, 1822, 1823, 1845, 1826, 1828, 1834, 1837, 1829,
2732 1831, 1832, 1833, 1837, 1836, 1838, 1839, 1836, 1842, 1834,
2733 1843, 1846, 1838, 1847, 1844, 1848, 1840, 0, 1849, 1852,
2734 0, 1839, 1853, 1850, 1855, 0, 1845, 1852, 1848, 1856,
2735 1857, 1868, 1838, 1839, 1843, 1842, 1844, 1843, 1850, 1851,
2736 1847, 1844, 1848, 1846, 1849, 1849, 1852, 1855, 1853, 1853,
2737
2738 1850, 1855, 1851, 1856, 1858, 1859, 1856, 1857, 1862, 1864,
2739 1860, 1863, 1859, 1868, 1866, 1862, 1851, 1865, 1863, 1870,
2740 1867, 1866, 1864, 1872, 1869, 1874, 1858, 1873, 1870, 1875,
2741 1886, 1858, 1859, 1860, 1872, 1862, 1864, 1860, 1863, 1876,
2742 1865, 1866, 1867, 1880, 1865, 1869, 1870, 1867, 1875, 1873,
2743 1872, 1869, 1879, 1881, 1873, 1883, 1875, 1874, 1882, 1882,
2744 1885, 1887, 1886, 1888, 1876, 1879, 1876, 1892, 1889, 1880,
2745 1880, 1897, 1899, 1901, 1898, 1894, 1887, 1881, 1903, 1879,
2746 1881, 1883, 1883, 1885, 1894, 1882, 1889, 1885, 1887, 1904,
2747 1888, 1907, 1905, 1897, 1892, 1889, 1898, 1909, 1897, 1899,
2748
2749 1901, 1898, 1894, 1905, 1906, 1909, 1910, 1911, 1913, 1906,
2750 1903, 1914, 1918, 1907, 1915, 1904, 1904, 1916, 1907, 1905,
2751 1919, 1910, 1922, 1915, 1909, 1923, 1913, 1920, 1919, 1916,
2752 1926, 1906, 0, 1910, 1911, 1913, 1920, 1924, 1925, 1918,
2753 1927, 1915, 1930, 1914, 1916, 1928, 1929, 1919, 1922, 1922,
2754 1931, 1932, 1923, 1927, 1920, 1926, 1933, 1926, 1928, 1924,
2755 1925, 1934, 1935, 1999, 1924, 1925, 1936, 1927, 1929, 1930,
2756 1937, 1935, 1928, 1929, 1939, 1938, 1934, 1931, 1932, 1940,
2757 1941, 1946, 0, 1933, 1942, 1943, 1948, 0, 1934, 1935,
2758 1938, 1945, 1936, 1936, 1944, 1999, 1937, 1937, 1945, 1942,
2759
2760 0, 1939, 1938, 1946, 1949, 1943, 1940, 1941, 1946, 1944,
2761 1947, 1942, 1943, 1948, 1950, 1950, 1951, 1947, 1945, 1952,
2762 1957, 1944, 1949, 1951, 1953, 1954, 1956, 1953, 1955, 1961,
2763 1958, 1949, 1957, 1952, 1961, 1962, 1960, 1947, 1954, 1962,
2764 1963, 1950, 1958, 1951, 1956, 1960, 1952, 1957, 1964, 1965,
2765 1966, 1953, 1954, 1956, 1955, 1955, 1961, 1958, 1967, 1968,
2766 1973, 1964, 1962, 1960, 1963, 1969, 1974, 1963, 1972, 1973,
2767 1975, 1965, 1966, 1977, 1978, 1964, 1965, 1966, 1975, 1979,
2768 1977, 1980, 1974, 1978, 1979, 1967, 1968, 1973, 1980, 1981,
2769 1983, 1969, 1969, 1974, 1972, 1972, 1982, 1975, 1984, 1983,
2770
2771 1977, 1978, 1986, 1982, 1987, 1988, 1979, 1981, 1980, 1989,
2772 1990, 1993, 1994, 1991, 1992, 1997, 1981, 1983, 1989, 1990,
2773 1993, 1994, 1987, 1982, 1984, 1984, 1992, 1996, 1998, 1986,
2774 0, 1987, 1988, 1991, 1995, 1996, 1989, 1990, 1993, 1994,
2775 1991, 1992, 1997, 2000, 2001, 1995, 2003, 2006, 0, 2002,
2776 2007, 2004, 2000, 2005, 1996, 1998, 2001, 2002, 2004, 2008,
2777 2005, 1995, 2009, 2010, 2012, 2014, 0, 0, 2003, 2006,
2778 2000, 2001, 2012, 2003, 2006, 2007, 2002, 2007, 2004, 2020,
2779 2005, 2015, 2021, 2014, 2022, 2016, 2008, 2009, 2015, 2009,
2780 2010, 2012, 2014, 2016, 2019, 2023, 2022, 2024, 2027, 2029,
2781
2782 2025, 2019, 2030, 2020, 2023, 2028, 2020, 2032, 2015, 2021,
2783 2027, 2022, 2016, 2033, 2032, 2034, 2030, 2037, 2036, 2039,
2784 2033, 2019, 2023, 2025, 2024, 2027, 2029, 2025, 2028, 2030,
2785 2038, 2040, 2028, 2036, 2032, 2041, 0, 2046, 2038, 2055,
2786 2033, 2048, 2034, 2047, 2037, 2036, 2039, 2049, 2047, 2050,
2787 2054, 2056, 2055, 2040, 0, 2048, 2057, 2038, 2040, 2065,
2788 2062, 2049, 2041, 2046, 2046, 2059, 2055, 2050, 2048, 2061,
2789 2047, 2058, 2054, 2056, 2049, 2057, 2050, 2054, 2056, 2058,
2790 2063, 2061, 2062, 2057, 2059, 2064, 2065, 2062, 2066, 2067,
2791 2069, 2068, 2059, 2071, 2070, 0, 2061, 2064, 2058, 2069,
2792
2793 2072, 2075, 2063, 2070, 2073, 2076, 2077, 2063, 2074, 2067,
2794 2080, 2085, 2064, 2068, 2081, 2066, 2067, 2069, 2068, 2086,
2795 2074, 2070, 2072, 2075, 2080, 2071, 2083, 2072, 2075, 2082,
2796 2073, 2073, 2076, 2077, 2082, 2074, 2084, 2080, 2081, 2088,
2797 2087, 2081, 2086, 2085, 2089, 2090, 2086, 2091, 2083, 2094,
2798 2092, 0, 0, 2083, 0, 0, 2089, 2088, 2084, 2096,
2799 2097, 2082, 2087, 2084, 2090, 2092, 2088, 2087, 2102, 2091,
2800 2098, 2089, 2090, 2094, 2091, 2099, 2094, 2092, 2100, 2098,
2801 2101, 2096, 2097, 2103, 2106, 2109, 2096, 2097, 0, 2099,
2802 2111, 2108, 2106, 2107, 2102, 2102, 2100, 2098, 2101, 2108,
2803
2804 2107, 2103, 2099, 2112, 2113, 2100, 2110, 2101, 2111, 2119,
2805 2103, 2106, 2109, 2114, 2110, 2112, 2116, 2111, 2108, 2118,
2806 2107, 2114, 2120, 2121, 0, 2122, 2118, 0, 2116, 2123,
2807 2112, 2113, 2119, 2110, 2126, 2125, 2119, 2128, 0, 2132,
2808 2114, 2133, 2129, 2116, 2122, 2130, 2118, 2134, 2126, 2136,
2809 2121, 2123, 2122, 2125, 2120, 2129, 2123, 2130, 2138, 2144,
2810 2128, 2126, 2125, 2140, 2128, 2132, 2132, 2143, 2133, 2129,
2811 2140, 2142, 2130, 2145, 2134, 2146, 2136, 2147, 2142, 2148,
2812 2149, 2151, 2152, 2150, 2153, 2138, 2144, 2154, 2155, 2156,
2813 2140, 2152, 0, 2143, 2143, 2150, 2159, 2153, 2142, 2146,
2814
2815 2145, 2159, 2146, 2163, 2147, 2148, 2148, 2149, 2151, 2152,
2816 2150, 2153, 2156, 2160, 2161, 2155, 2156, 2160, 2162, 2154,
2817 2164, 2161, 2167, 2166, 2163, 2162, 2170, 2165, 2159, 2165,
2818 2163, 2172, 2171, 2174, 0, 2174, 0, 2175, 0, 0,
2819 2160, 2161, 2181, 2177, 0, 2162, 2166, 0, 2170, 2167,
2820 2166, 2171, 2164, 2170, 2165, 2172, 2176, 2176, 2172, 2171,
2821 2174, 2175, 2178, 2180, 2175, 2177, 2176, 2179, 2183, 2181,
2822 2177, 2178, 2182, 2184, 2179, 2185, 2180, 2186, 0, 2187,
2823 2182, 2184, 2188, 2176, 2176, 2189, 2191, 2183, 2190, 2178,
2824 2180, 2192, 2192, 2191, 2179, 2183, 2189, 0, 2193, 2182,
2825
2826 2184, 2185, 2185, 2186, 2186, 2187, 2187, 2194, 2188, 2188,
2827 2190, 2197, 2189, 2191, 2194, 2190, 2193, 2195, 2192, 2198,
2828 2199, 2201, 2202, 2203, 2195, 2193, 2207, 2205, 2208, 2199,
2829 2204, 2212, 0, 2209, 2194, 2207, 2212, 2219, 2197, 2211,
2830 2210, 0, 2202, 2198, 2195, 2205, 2198, 2199, 2201, 2202,
2831 2203, 2211, 2204, 2207, 2205, 2208, 2209, 2204, 2210, 2213,
2832 2209, 2214, 2220, 2212, 2219, 2230, 2211, 2210, 2221, 2224,
2833 2226, 2224, 2228, 2213, 2231, 2232, 2234, 2237, 2228, 2214,
2834 2220, 2235, 2238, 2221, 2235, 2226, 2213, 2230, 2214, 2220,
2835 2239, 2245, 2230, 2232, 2240, 2221, 2224, 2226, 2234, 2228,
2836
2837 2231, 2231, 2232, 2234, 2237, 2243, 2241, 2235, 2235, 2238,
2838 2242, 2235, 2240, 2241, 2246, 2248, 2247, 2239, 2242, 2249,
2839 2250, 2240, 2251, 2245, 2253, 2252, 2250, 2243, 2249, 0,
2840 2255, 2257, 2243, 2241, 2252, 2259, 2246, 2242, 2247, 2257,
2841 2260, 2246, 2248, 2247, 2251, 2261, 2249, 2250, 2254, 2251,
2842 2254, 2258, 2252, 2262, 2260, 2263, 2253, 2255, 2257, 2261,
2843 2264, 2265, 2259, 2258, 2266, 2268, 2268, 2260, 2267, 2265,
2844 2269, 2264, 2261, 2263, 2272, 2254, 2262, 2270, 2258, 2273,
2845 2262, 2277, 2263, 2266, 2281, 2270, 2284, 2264, 2265, 2278,
2846 2267, 2266, 2268, 2275, 2284, 2267, 2279, 2269, 2282, 2275,
2847
2848 2278, 2272, 2286, 2283, 2270, 2282, 2273, 2283, 2277, 2287,
2849 2289, 2281, 2290, 2284, 2291, 2289, 2278, 2292, 2279, 2293,
2850 2275, 2297, 2287, 2279, 2294, 2282, 2293, 2295, 2286, 2286,
2851 2283, 2296, 2294, 2298, 2303, 2292, 2287, 2289, 2296, 2290,
2852 2299, 2291, 2295, 2304, 2292, 2305, 2293, 2306, 2297, 2303,
2853 2304, 2294, 2307, 2308, 2295, 2309, 2311, 2298, 2296, 2312,
2854 2298, 2303, 2314, 2313, 2309, 2316, 2299, 2299, 2318, 2321,
2855 2304, 2313, 2319, 2322, 2306, 0, 2307, 2305, 2311, 2307,
2856 2319, 2312, 2309, 2311, 2323, 2308, 2312, 2315, 2315, 2324,
2857 2313, 2325, 2316, 2326, 2314, 2318, 2321, 2315, 2327, 2319,
2858
2859 2322, 2328, 2324, 2331, 2329, 2336, 2323, 2337, 2339, 2334,
2860 2336, 2323, 2341, 2325, 2315, 2315, 2324, 2334, 2325, 2341,
2861 2326, 2343, 2342, 2344, 2340, 2327, 2329, 2348, 2328, 2347,
2862 2331, 2329, 2336, 2337, 2337, 2339, 2334, 2340, 2349, 2341,
2863 2342, 2350, 2347, 2356, 2351, 2344, 2353, 2354, 2343, 2342,
2864 2344, 2340, 2364, 2353, 2354, 2355, 2347, 2349, 2356, 2348,
2865 2357, 2359, 2361, 2364, 2360, 2349, 2351, 2373, 2350, 2361,
2866 2356, 2351, 2360, 2353, 2354, 2363, 2362, 2355, 2367, 2364,
2867 2359, 2357, 2355, 2362, 2363, 2365, 2365, 2357, 2359, 2361,
2868 2366, 2360, 2370, 2374, 2373, 2365, 2366, 2379, 2375, 2370,
2869
2870 2367, 2381, 2363, 2362, 2383, 2367, 2385, 2386, 2389, 2387,
2871 2390, 0, 2365, 2365, 2392, 2391, 2386, 2366, 2396, 2370,
2872 2374, 2375, 2387, 2394, 2379, 2375, 2392, 2383, 2381, 2395,
2873 2390, 2383, 2394, 2385, 2386, 2389, 2387, 2390, 2391, 2397,
2874 2398, 2392, 2391, 2399, 2396, 2396, 2400, 2395, 2402, 2405,
2875 2394, 2401, 2403, 2402, 2401, 2399, 2395, 0, 2404, 2406,
2876 2404, 2405, 2410, 2413, 2416, 2406, 2397, 2398, 2400, 2401,
2877 2399, 2407, 2408, 2400, 2409, 2417, 2405, 2418, 2401, 2420,
2878 2402, 2401, 2409, 2421, 2403, 2404, 2406, 2423, 2424, 2410,
2879 2413, 2416, 2425, 2407, 2408, 2426, 2427, 2420, 2407, 2408,
2880
2881 2424, 2409, 2417, 2428, 2418, 2432, 2420, 2425, 2427, 2431,
2882 2421, 2433, 2433, 2434, 2423, 2424, 2435, 2437, 2431, 2425,
2883 2438, 2426, 2426, 2427, 2439, 2435, 2440, 2441, 0, 2432,
2884 2428, 2449, 2432, 2442, 2443, 2441, 2431, 2439, 2433, 2434,
2885 2434, 2437, 2442, 2435, 2437, 2443, 2452, 2453, 2440, 2454,
2886 2452, 2439, 2438, 2440, 2441, 2449, 2454, 2460, 2449, 2455,
2887 2442, 2443, 2457, 2458, 2463, 2459, 2457, 2462, 2461, 2464,
2888 2453, 0, 2455, 2452, 2453, 2471, 2454, 2464, 2463, 2458,
2889 2461, 2467, 2460, 2467, 2460, 2472, 2455, 2459, 2465, 2457,
2890 2458, 2463, 2459, 2462, 2462, 2461, 2464, 2465, 2466, 2468,
2891
2892 2469, 2470, 2471, 2472, 2473, 0, 2474, 2469, 2467, 2466,
2893 2475, 2468, 2472, 2476, 2470, 2465, 2477, 2479, 0, 2482,
2894 2480, 2482, 2478, 2481, 2477, 2466, 2468, 2469, 2470, 2478,
2895 2484, 2473, 2474, 2474, 2486, 0, 2483, 2475, 2485, 2498,
2896 2476, 2479, 2480, 2477, 2479, 2481, 2482, 2480, 2483, 2478,
2897 2481, 2485, 2487, 2494, 2489, 2491, 2499, 2495, 2496, 2497,
2898 2487, 2486, 2484, 2483, 2491, 2485, 2489, 2497, 2502, 2506,
2899 0, 2498, 2509, 0, 2500, 2501, 2502, 2496, 2505, 2487,
2900 2494, 2489, 2491, 2495, 2495, 2496, 2497, 2500, 2499, 2501,
2901 2504, 2505, 2506, 2508, 2509, 2502, 2506, 2504, 2510, 2509,
2902
2903 2508, 2500, 2501, 2513, 2511, 2505, 2510, 2512, 0, 2518,
2904 2514, 2513, 2521, 2515, 2516, 2520, 2517, 2504, 2511, 2525,
2905 2508, 2512, 2519, 2516, 2517, 2510, 2522, 2525, 2523, 2524,
2906 2513, 2511, 2514, 2526, 2512, 2515, 2518, 2514, 2521, 2521,
2907 2515, 2516, 2527, 2517, 2519, 2528, 2525, 2520, 2522, 2519,
2908 2523, 2524, 2530, 2522, 2531, 2523, 2524, 2532, 2533, 2534,
2909 2535, 2538, 2531, 2536, 2527, 2526, 2533, 2534, 2537, 2527,
2910 2540, 2536, 2528, 2541, 2542, 2530, 2541, 2532, 2546, 2530,
2911 0, 2531, 2537, 0, 2532, 2533, 2534, 2538, 2538, 2547,
2912 2536, 2541, 2535, 2545, 2543, 2537, 2542, 2540, 2544, 2548,
2913
2914 2541, 2542, 2543, 2541, 2546, 2546, 2544, 2545, 2550, 2550,
2915 2551, 2547, 2553, 2548, 2552, 2557, 2547, 2554, 2555, 2558,
2916 2545, 2543, 2552, 2557, 2560, 2544, 2548, 2556, 2559, 2561,
2917 0, 0, 2562, 2563, 2568, 2550, 2551, 2551, 2553, 2553,
2918 2555, 2552, 2557, 2554, 2554, 2555, 2558, 2556, 2565, 2560,
2919 2559, 2560, 2562, 2563, 2556, 2559, 2561, 2564, 2566, 2562,
2920 2563, 2568, 0, 2569, 2571, 2564, 2566, 2572, 2573, 2574,
2921 2565, 2569, 2575, 2577, 2578, 2565, 2573, 2574, 2580, 2579,
2922 2581, 2584, 2578, 2582, 2564, 2566, 2571, 2579, 2585, 2572,
2923 2569, 2571, 2586, 2594, 2572, 2573, 2574, 0, 2575, 2575,
2924
2925 2577, 2578, 2588, 2582, 2580, 2580, 2579, 2581, 2584, 2591,
2926 2582, 2595, 2586, 2592, 2593, 2585, 0, 0, 0, 2586,
2927 2594, 2592, 2593, 0, 2588, 0, 0, 0, 0, 2588,
2928 0, 2591, 0, 0, 0, 0, 2591, 0, 2595, 0,
2929 2592, 2593, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2600,
2930 2600, 2600, 2600, 2600, 2600, 2600, 2601, 2601, 2601, 2601,
2931 2601, 2601, 2601, 2602, 2602, 2602, 2602, 2602, 2602, 2602,
2932 2603, 2603, 2603, 2603, 2603, 2603, 2603, 2605, 2605, 0,
2933 2605, 2605, 2605, 2605, 2606, 2606, 0, 0, 0, 2606,
2934 2606, 2607, 2607, 0, 0, 2607, 0, 2607, 2608, 0,
2935
2936 0, 0, 0, 0, 2608, 2609, 2609, 0, 0, 0,
2937 2609, 2609, 2610, 0, 0, 0, 0, 0, 2610, 2611,
2938 2611, 0, 2611, 2611, 2611, 2611, 2612, 2612, 0, 2612,
2939 2612, 2612, 2612, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2940 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2941 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2942 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2943 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2944 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
2945 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598
2269 788, 323, 345, 322, 321, 325, 327, 321, 328, 329,
2270 335, 324, 322, 327, 328, 0, 324, 330, 325, 333,
2271 321, 329, 335, 321, 332, 321, 325, 326, 347, 326,
2272 330, 788, 333, 327, 336, 328, 329, 335, 337, 338,
2273
2274 332, 347, 326, 337, 330, 326, 333, 326, 332, 326,
2275 344, 332, 336, 326, 326, 347, 326, 339, 349, 341,
2276 338, 336, 349, 339, 0, 340, 338, 332, 346, 326,
2277 337, 341, 326, 340, 326, 346, 326, 334, 334, 342,
2278 343, 0, 344, 355, 339, 349, 341, 334, 343, 334,
2279 334, 334, 340, 350, 334, 346, 351, 342, 352, 348,
2280 350, 354, 334, 351, 334, 334, 342, 343, 348, 357,
2281 352, 353, 356, 354, 334, 355, 334, 334, 334, 356,
2282 350, 334, 362, 351, 357, 352, 359, 358, 354, 369,
2283 360, 348, 360, 353, 361, 348, 357, 365, 353, 356,
2284
2285 358, 363, 363, 0, 362, 361, 364, 367, 365, 362,
2286 368, 366, 369, 364, 358, 371, 369, 360, 359, 372,
2287 367, 361, 366, 374, 365, 370, 377, 381, 373, 0,
2288 363, 372, 374, 364, 367, 368, 375, 368, 366, 373,
2289 370, 371, 371, 376, 377, 379, 372, 378, 370, 375,
2290 374, 385, 370, 377, 376, 373, 376, 380, 382, 381,
2291 0, 376, 392, 375, 382, 383, 384, 370, 379, 378,
2292 376, 387, 379, 385, 378, 380, 388, 389, 385, 391,
2293 386, 376, 390, 376, 380, 382, 383, 386, 393, 384,
2294 388, 395, 383, 384, 392, 394, 390, 387, 387, 389,
2295
2296 402, 394, 396, 388, 389, 391, 391, 386, 397, 390,
2297 398, 393, 399, 395, 403, 393, 400, 398, 395, 401,
2298 396, 399, 394, 397, 404, 409, 402, 402, 405, 396,
2299 404, 400, 407, 412, 408, 397, 403, 398, 410, 399,
2300 408, 403, 401, 400, 409, 1000, 401, 417, 412, 418,
2301 411, 404, 409, 416, 405, 405, 410, 411, 407, 407,
2302 412, 408, 414, 415, 414, 410, 416, 418, 419, 421,
2303 415, 414, 420, 1000, 423, 427, 418, 411, 422, 417,
2304 416, 422, 421, 425, 0, 424, 426, 467, 427, 414,
2305 415, 414, 424, 428, 420, 430, 421, 422, 429, 420,
2306
2307 419, 430, 427, 429, 431, 422, 423, 425, 422, 426,
2308 425, 432, 424, 434, 433, 428, 436, 435, 426, 467,
2309 428, 439, 430, 0, 436, 429, 433, 431, 435, 439,
2310 438, 431, 441, 432, 442, 434, 426, 438, 432, 443,
2311 434, 433, 440, 436, 435, 437, 444, 445, 439, 446,
2312 437, 443, 437, 440, 448, 441, 442, 438, 445, 441,
2313 437, 442, 449, 437, 437, 448, 443, 446, 444, 440,
2314 437, 437, 437, 444, 445, 447, 446, 437, 451, 437,
2315 0, 448, 452, 455, 452, 447, 449, 437, 450, 449,
2316 437, 437, 453, 457, 454, 450, 456, 437, 455, 460,
2317
2318 459, 457, 462, 0, 451, 451, 454, 447, 456, 452,
2319 455, 458, 447, 463, 462, 450, 458, 460, 453, 453,
2320 457, 454, 459, 456, 461, 465, 460, 459, 470, 462,
2321 466, 468, 461, 469, 463, 471, 470, 472, 458, 478,
2322 463, 473, 474, 465, 477, 469, 468, 475, 471, 472,
2323 473, 461, 465, 466, 476, 470, 479, 466, 468, 481,
2324 469, 475, 471, 477, 472, 474, 478, 480, 473, 474,
2325 482, 477, 483, 485, 475, 484, 493, 486, 488, 476,
2326 496, 476, 480, 491, 492, 482, 494, 484, 479, 488,
2327 495, 481, 531, 489, 480, 485, 483, 482, 489, 483,
2328
2329 485, 486, 484, 487, 486, 488, 487, 490, 493, 497,
2330 491, 492, 496, 494, 487, 497, 498, 495, 499, 531,
2331 500, 490, 501, 502, 503, 489, 499, 502, 505, 504,
2332 487, 506, 503, 487, 490, 507, 497, 508, 498, 500,
2333 510, 509, 512, 498, 507, 499, 501, 500, 509, 501,
2334 502, 503, 504, 511, 506, 512, 504, 515, 506, 508,
2335 505, 513, 507, 522, 508, 514, 513, 516, 509, 512,
2336 513, 521, 510, 517, 514, 511, 516, 518, 519, 0,
2337 511, 522, 523, 515, 515, 513, 520, 528, 513, 524,
2338 522, 519, 514, 513, 516, 517, 525, 513, 520, 518,
2339
2340 517, 528, 526, 521, 518, 519, 523, 532, 527, 523,
2341 529, 524, 524, 520, 528, 530, 524, 533, 525, 527,
2342 535, 534, 530, 525, 526, 532, 536, 537, 533, 526,
2343 541, 538, 529, 542, 532, 527, 534, 529, 524, 539,
2344 540, 543, 530, 541, 533, 544, 545, 536, 534, 540,
2345 551, 537, 535, 536, 537, 538, 546, 541, 538, 547,
2346 548, 539, 549, 543, 547, 542, 539, 540, 543, 556,
2347 545, 550, 550, 545, 548, 553, 549, 544, 546, 550,
2348 552, 554, 551, 546, 558, 555, 0, 548, 552, 549,
2349 557, 547, 559, 553, 560, 0, 0, 559, 550, 550,
2350
2351 555, 556, 553, 554, 562, 557, 558, 552, 554, 555,
2352 563, 558, 555, 561, 564, 561, 565, 557, 563, 566,
2353 560, 560, 568, 567, 559, 565, 569, 555, 566, 562,
2354 568, 562, 567, 569, 570, 572, 571, 563, 577, 564,
2355 561, 564, 573, 565, 574, 575, 566, 572, 578, 568,
2356 567, 573, 574, 569, 571, 576, 578, 570, 579, 581,
2357 575, 570, 572, 571, 580, 582, 579, 576, 581, 573,
2358 577, 574, 575, 584, 582, 578, 585, 0, 586, 583,
2359 0, 584, 576, 589, 587, 579, 581, 580, 583, 585,
2360 588, 580, 582, 590, 592, 593, 594, 591, 588, 589,
2361
2362 584, 601, 592, 585, 586, 586, 583, 587, 591, 593,
2363 589, 587, 595, 596, 597, 590, 594, 588, 599, 601,
2364 590, 592, 593, 594, 591, 598, 600, 599, 601, 602,
2365 603, 606, 605, 596, 595, 604, 597, 607, 608, 595,
2366 596, 597, 602, 609, 613, 599, 600, 598, 603, 615,
2367 604, 608, 598, 600, 605, 606, 602, 603, 606, 605,
2368 607, 609, 604, 610, 607, 608, 611, 612, 619, 614,
2369 609, 613, 618, 612, 616, 610, 615, 614, 620, 611,
2370 618, 624, 622, 621, 625, 620, 0, 0, 0, 623,
2371 610, 645, 616, 611, 612, 614, 614, 622, 623, 618,
2372
2373 619, 616, 637, 625, 614, 620, 621, 631, 626, 622,
2374 621, 625, 627, 624, 627, 628, 623, 626, 634, 631,
2375 637, 639, 628, 645, 642, 638, 0, 640, 634, 637,
2376 0, 0, 641, 0, 631, 626, 643, 651, 0, 627,
2377 642, 652, 628, 629, 639, 634, 638, 629, 639, 643,
2378 629, 642, 638, 640, 640, 644, 647, 629, 641, 641,
2379 629, 651, 644, 643, 651, 629, 648, 0, 652, 0,
2380 629, 649, 648, 650, 629, 650, 653, 629, 647, 677,
2381 649, 654, 644, 647, 629, 655, 658, 629, 646, 646,
2382 0, 646, 0, 648, 646, 657, 653, 655, 649, 646,
2383
2384 650, 656, 659, 653, 661, 646, 646, 654, 654, 660,
2385 658, 677, 655, 658, 646, 646, 646, 657, 646, 661,
2386 663, 646, 657, 667, 659, 666, 646, 656, 656, 659,
2387 662, 661, 646, 646, 660, 664, 660, 665, 662, 668,
2388 669, 671, 664, 663, 666, 665, 670, 663, 672, 667,
2389 667, 668, 666, 669, 673, 670, 671, 662, 674, 678,
2390 676, 679, 664, 674, 665, 680, 668, 669, 671, 683,
2391 672, 686, 684, 670, 681, 672, 682, 685, 683, 686,
2392 687, 673, 676, 690, 688, 679, 680, 676, 679, 689,
2393 674, 678, 680, 681, 684, 682, 683, 685, 686, 684,
2394
2395 693, 681, 688, 682, 685, 691, 694, 687, 689, 695,
2396 696, 688, 698, 691, 697, 690, 689, 699, 693, 700,
2397 0, 700, 701, 702, 694, 0, 709, 693, 696, 704,
2398 699, 695, 691, 694, 698, 702, 695, 696, 697, 698,
2399 708, 697, 705, 703, 699, 705, 700, 704, 701, 701,
2400 702, 703, 706, 709, 0, 710, 704, 712, 711, 713,
2401 706, 710, 0, 712, 714, 708, 713, 708, 715, 705,
2402 703, 714, 717, 715, 716, 718, 706, 0, 722, 706,
2403 711, 716, 710, 719, 712, 711, 713, 706, 720, 721,
2404 717, 714, 719, 722, 726, 715, 720, 725, 718, 717,
2405
2406 723, 716, 718, 733, 724, 722, 727, 721, 723, 731,
2407 719, 728, 729, 727, 731, 720, 721, 724, 725, 729,
2408 738, 726, 735, 730, 725, 732, 737, 723, 734, 728,
2409 730, 724, 732, 727, 739, 733, 731, 736, 728, 729,
2410 741, 734, 739, 738, 736, 740, 745, 738, 743, 744,
2411 730, 742, 732, 740, 735, 734, 746, 742, 737, 748,
2412 740, 739, 741, 747, 736, 746, 750, 741, 753, 749,
2413 745, 755, 740, 745, 743, 743, 749, 747, 742, 751,
2414 740, 744, 752, 746, 756, 754, 759, 757, 751, 0,
2415 747, 748, 757, 750, 755, 753, 749, 754, 755, 762,
2416
2417 758, 785, 762, 763, 752, 768, 751, 758, 759, 752,
2418 756, 756, 754, 759, 757, 760, 763, 765, 769, 766,
2419 0, 770, 785, 760, 765, 766, 762, 758, 785, 772,
2420 763, 768, 768, 770, 771, 774, 771, 775, 776, 773,
2421 0, 769, 760, 776, 765, 769, 766, 767, 770, 767,
2422 775, 773, 772, 767, 777, 767, 772, 774, 0, 0,
2423 767, 771, 774, 778, 775, 767, 773, 777, 0, 780,
2424 776, 767, 779, 781, 767, 782, 767, 783, 786, 780,
2425 767, 777, 767, 783, 779, 784, 778, 767, 782, 787,
2426 778, 780, 767, 789, 791, 781, 780, 790, 784, 779,
2427
2428 781, 794, 782, 791, 783, 790, 780, 793, 0, 797,
2429 786, 806, 784, 0, 795, 796, 787, 0, 0, 799,
2430 0, 791, 793, 794, 790, 789, 792, 795, 794, 803,
2431 796, 792, 798, 792, 793, 797, 797, 800, 799, 801,
2432 802, 795, 796, 806, 792, 792, 799, 801, 802, 807,
2433 800, 792, 792, 792, 798, 808, 803, 804, 792, 798,
2434 792, 809, 810, 808, 800, 811, 801, 802, 813, 812,
2435 816, 792, 792, 807, 815, 809, 807, 812, 792, 814,
2436 804, 817, 808, 818, 804, 815, 813, 811, 809, 819,
2437 821, 818, 811, 820, 810, 813, 812, 814, 822, 817,
2438
2439 820, 815, 816, 821, 823, 822, 814, 825, 817, 824,
2440 818, 819, 838, 827, 831, 829, 819, 821, 830, 836,
2441 820, 832, 823, 831, 827, 822, 830, 824, 829, 833,
2442 834, 823, 835, 832, 837, 839, 824, 836, 842, 825,
2443 827, 831, 829, 842, 838, 830, 836, 841, 832, 839,
2444 843, 833, 834, 843, 835, 844, 833, 834, 841, 835,
2445 837, 837, 839, 847, 846, 845, 850, 848, 851, 852,
2446 842, 846, 847, 849, 841, 851, 843, 843, 845, 844,
2447 843, 848, 844, 853, 855, 849, 856, 854, 857, 860,
2448 847, 846, 845, 854, 848, 851, 858, 859, 850, 857,
2449
2450 849, 852, 865, 866, 860, 862, 855, 853, 856, 863,
2451 853, 855, 864, 856, 854, 857, 860, 867, 858, 859,
2452 863, 869, 868, 858, 859, 874, 862, 873, 870, 875,
2453 866, 868, 862, 864, 865, 867, 863, 870, 871, 864,
2454 872, 873, 876, 879, 867, 869, 871, 872, 869, 868,
2455 877, 880, 879, 881, 873, 870, 882, 874, 880, 884,
2456 885, 875, 883, 890, 876, 871, 886, 872, 884, 876,
2457 879, 891, 877, 888, 893, 887, 0, 877, 880, 889,
2458 883, 894, 888, 882, 885, 881, 884, 885, 0, 883,
2459 886, 887, 892, 886, 889, 890, 893, 895, 896, 897,
2460
2461 888, 893, 887, 891, 892, 895, 889, 899, 894, 900,
2462 901, 896, 904, 902, 897, 902, 899, 905, 901, 892,
2463 904, 908, 907, 909, 895, 896, 897, 900, 911, 910,
2464 912, 914, 915, 908, 899, 907, 900, 901, 909, 904,
2465 902, 917, 0, 916, 905, 913, 911, 918, 908, 907,
2466 909, 910, 913, 921, 919, 911, 910, 912, 920, 924,
2467 927, 922, 0, 914, 915, 916, 917, 919, 917, 918,
2468 916, 920, 913, 922, 918, 921, 923, 925, 928, 924,
2469 921, 919, 926, 929, 923, 920, 924, 927, 922, 925,
2470 926, 928, 929, 930, 931, 0, 934, 932, 936, 937,
2471
2472 967, 931, 0, 923, 925, 928, 932, 935, 932, 926,
2473 929, 932, 937, 938, 930, 0, 946, 941, 936, 932,
2474 930, 931, 934, 934, 932, 936, 937, 939, 940, 935,
2475 943, 947, 967, 932, 935, 932, 939, 938, 932, 941,
2476 938, 942, 944, 946, 941, 949, 940, 950, 951, 942,
2477 944, 0, 943, 947, 939, 940, 948, 943, 947, 952,
2478 956, 954, 0, 948, 957, 953, 951, 949, 942, 944,
2479 950, 952, 949, 953, 950, 951, 954, 955, 959, 957,
2480 956, 961, 958, 948, 959, 960, 952, 956, 954, 955,
2481 958, 957, 953, 963, 960, 962, 964, 965, 968, 969,
2482
2483 963, 972, 961, 964, 955, 959, 970, 962, 961, 958,
2484 971, 968, 960, 970, 973, 965, 972, 975, 969, 973,
2485 963, 974, 962, 964, 965, 968, 969, 976, 972, 974,
2486 975, 977, 971, 970, 981, 0, 994, 971, 979, 0,
2487 0, 976, 980, 984, 975, 982, 973, 995, 974, 0,
2488 0, 0, 979, 983, 976, 0, 985, 977, 977, 978,
2489 980, 984, 978, 978, 0, 979, 981, 978, 994, 980,
2490 984, 982, 982, 978, 986, 983, 987, 978, 985, 995,
2491 983, 978, 988, 985, 988, 989, 978, 990, 991, 978,
2492 978, 996, 989, 997, 978, 992, 986, 999, 993, 0,
2493
2494 978, 986, 987, 987, 978, 990, 988, 993, 992, 988,
2495 991, 988, 989, 996, 990, 991, 997, 0, 996, 1003,
2496 997, 1005, 992, 999, 999, 993, 998, 1001, 1004, 1006,
2497 1005, 998, 1011, 998, 1007, 998, 1008, 998, 1010, 1007,
2498 1004, 1008, 1003, 1001, 998, 1009, 1003, 1006, 1005, 1012,
2499 1011, 1010, 1014, 998, 1001, 1004, 1006, 1012, 998, 1011,
2500 998, 1013, 998, 1008, 998, 1010, 1007, 1009, 1015, 1013,
2501 1016, 1014, 1009, 1017, 1019, 1018, 1012, 1021, 1020, 1014,
2502 1020, 1015, 1022, 1019, 1023, 1024, 1017, 0, 1013, 1025,
2503 1030, 1027, 1016, 1018, 0, 1015, 1023, 1016, 1028, 1021,
2504
2505 1017, 1019, 1018, 1031, 1021, 1020, 1032, 1033, 1036, 1022,
2506 1031, 1023, 1024, 1029, 1025, 1027, 1025, 1030, 1027, 1038,
2507 1028, 1029, 1034, 1040, 1037, 1028, 1035, 1039, 1034, 1033,
2508 1031, 1037, 1035, 1032, 1033, 1036, 1042, 1043, 1045, 1044,
2509 1029, 1038, 0, 1054, 1048, 1039, 1038, 1046, 1040, 1034,
2510 1040, 1037, 1050, 1035, 1039, 1047, 1051, 1045, 1049, 1043,
2511 1042, 1044, 1055, 1042, 1043, 1045, 1044, 1049, 1056, 1046,
2512 1048, 1048, 1052, 1050, 1046, 1054, 1051, 1047, 1057, 1050,
2513 1058, 1059, 1047, 1051, 1060, 1049, 1052, 1061, 1065, 1059,
2514 1056, 1068, 1065, 1066, 1055, 1056, 1062, 1064, 1058, 1052,
2515
2516 1060, 1067, 1070, 1062, 1064, 1073, 0, 1058, 1059, 1072,
2517 1057, 1060, 1068, 1071, 1061, 1065, 1072, 1074, 1068, 1071,
2518 1073, 1076, 1075, 1062, 1064, 1066, 1071, 1078, 1077, 1078,
2519 1074, 1075, 1073, 1067, 1070, 1077, 1072, 1080, 1081, 1082,
2520 1071, 1079, 1088, 1082, 1074, 1083, 1071, 1076, 1076, 1075,
2521 1079, 1086, 1085, 1087, 1078, 1077, 1086, 1089, 0, 1080,
2522 1085, 1088, 1090, 1093, 1080, 1081, 1082, 1083, 1079, 1088,
2523 1089, 1087, 1083, 1091, 1090, 1092, 1091, 1095, 1092, 1085,
2524 1087, 1094, 0, 1086, 1089, 1091, 0, 1096, 1093, 1090,
2525 1093, 1097, 1127, 1098, 1094, 1099, 1099, 1092, 1105, 1101,
2526
2527 1091, 1098, 1092, 1091, 1100, 1092, 1102, 1097, 1094, 1095,
2528 1096, 1105, 1103, 1100, 1096, 1102, 1107, 1108, 1097, 1103,
2529 1098, 1101, 1099, 1106, 1127, 1105, 1101, 1109, 1113, 1110,
2530 1111, 1100, 1106, 1102, 0, 1114, 1109, 1110, 1112, 1103,
2531 1108, 1113, 1107, 1107, 1108, 1111, 1112, 1114, 1115, 1117,
2532 1106, 1116, 1118, 0, 1109, 1113, 1110, 1111, 1119, 1116,
2533 1115, 1120, 1114, 1121, 0, 1112, 1122, 1125, 1124, 1126,
2534 1120, 1117, 1118, 1125, 1123, 1115, 1117, 1128, 1116, 1118,
2535 1119, 1121, 0, 0, 1129, 1119, 1123, 1130, 1120, 1124,
2536 1121, 1126, 1122, 1122, 1125, 1124, 1126, 1132, 1133, 1134,
2537
2538 1138, 1123, 1136, 1135, 1137, 0, 1139, 0, 0, 1128,
2539 1129, 1129, 1135, 1130, 1130, 1136, 1137, 1134, 1141, 1142,
2540 1138, 1133, 0, 1143, 1132, 1133, 1134, 1138, 1140, 1136,
2541 1135, 1137, 1139, 1139, 1144, 1140, 1143, 1141, 1145, 1146,
2542 1147, 1142, 1144, 1145, 1146, 1141, 1142, 1147, 1148, 1149,
2543 1143, 1150, 1153, 1151, 1152, 1140, 1148, 1149, 1155, 1150,
2544 1151, 1144, 1156, 1152, 1154, 1154, 1155, 1147, 1157, 1158,
2545 1145, 1146, 1168, 0, 1159, 1148, 1149, 1158, 1150, 1160,
2546 1151, 1152, 1159, 1156, 1153, 1155, 1161, 1160, 1165, 1156,
2547 1162, 1154, 1163, 1164, 1161, 1167, 1158, 1166, 1163, 1168,
2548
2549 1157, 1159, 1170, 1162, 1169, 1164, 1160, 0, 0, 1171,
2550 1167, 0, 1172, 1161, 1165, 1165, 1176, 1162, 1173, 1163,
2551 1164, 1166, 1167, 1171, 1166, 1170, 1169, 1178, 1177, 1170,
2552 1172, 1169, 1173, 1174, 1178, 1179, 1171, 1174, 1176, 1172,
2553 1177, 1180, 0, 1176, 1181, 1173, 1179, 1182, 0, 1183,
2554 1174, 1189, 1184, 1188, 1178, 1177, 1185, 0, 1174, 1193,
2555 1174, 1186, 1179, 1185, 1174, 1193, 1181, 1194, 1180, 1182,
2556 1186, 1181, 1183, 1187, 1182, 1184, 1183, 1174, 1189, 1184,
2557 1187, 1191, 1196, 1185, 1195, 1188, 1193, 0, 1186, 1194,
2558 1191, 1198, 1200, 1201, 1194, 1202, 1207, 1204, 0, 1205,
2559
2560 1187, 1206, 1207, 1209, 1201, 1208, 1202, 1210, 1191, 1213,
2561 1195, 1195, 1217, 1206, 1196, 1212, 1210, 1212, 1198, 1200,
2562 1201, 1204, 1202, 1207, 1204, 1205, 1205, 1208, 1206, 1209,
2563 1209, 1211, 1208, 1214, 1210, 1213, 1213, 1215, 1216, 1217,
2564 1218, 1219, 1212, 1211, 1220, 1222, 1214, 1221, 1219, 0,
2565 1216, 1225, 1221, 1223, 1224, 1227, 1229, 1228, 1211, 1215,
2566 1214, 1222, 1224, 1218, 1215, 1216, 1228, 1218, 1219, 1229,
2567 1220, 1220, 1222, 1225, 1221, 1231, 1223, 1232, 1225, 1232,
2568 1223, 1224, 1227, 1229, 1228, 1230, 1230, 1234, 1231, 1233,
2569 1235, 1236, 1237, 1230, 0, 1240, 1239, 1235, 1236, 1238,
2570
2571 0, 1242, 1231, 1239, 1232, 1241, 1244, 1247, 1251, 1234,
2572 1237, 1251, 1230, 1230, 1234, 1233, 1233, 1235, 1236, 1237,
2573 1240, 1238, 1240, 1239, 1243, 1249, 1238, 1241, 1246, 1248,
2574 1254, 1243, 1241, 1242, 1247, 1251, 1252, 1248, 1244, 1253,
2575 1255, 1246, 1256, 1254, 1257, 1259, 1249, 1258, 1262, 1255,
2576 0, 1243, 1249, 0, 1256, 1246, 1248, 1254, 1268, 1263,
2577 1259, 1261, 1252, 1252, 1261, 1253, 1253, 1255, 1257, 1256,
2578 1260, 1257, 1259, 1258, 1258, 1264, 1261, 1260, 1265, 1271,
2579 1262, 1263, 1266, 1267, 1266, 1261, 1263, 1269, 1261, 1270,
2580 1268, 1261, 0, 1264, 1272, 1273, 1276, 1260, 1277, 1279,
2581
2582 1265, 1271, 1264, 1261, 1273, 1265, 1271, 1267, 1272, 1266,
2583 1267, 1274, 1278, 1269, 1269, 1270, 1270, 1275, 1281, 1274,
2584 1282, 1272, 1273, 1280, 1275, 1291, 1283, 1280, 1276, 1285,
2585 1277, 1279, 1284, 1287, 1278, 1286, 1285, 0, 1274, 1278,
2586 1281, 1284, 1286, 1289, 1275, 1281, 1287, 1282, 1283, 1290,
2587 1280, 1288, 1297, 1283, 1292, 1294, 1285, 1291, 1289, 1284,
2588 1287, 1292, 1286, 1290, 1288, 1293, 1299, 1295, 1294, 1300,
2589 1289, 1301, 1293, 1295, 1302, 0, 1290, 1298, 1288, 1297,
2590 1307, 1292, 1294, 1301, 1298, 1305, 1303, 1302, 1299, 1303,
2591 1304, 0, 1293, 1299, 1295, 1300, 1300, 1306, 1301, 1304,
2592
2593 1307, 1302, 1308, 1305, 1298, 1308, 1311, 1307, 1309, 1306,
2594 1314, 1311, 1305, 1303, 1313, 1315, 1313, 1304, 1311, 1309,
2595 1308, 1316, 1317, 1319, 1306, 1318, 1322, 1326, 1325, 1308,
2596 0, 1319, 1308, 1311, 1320, 1309, 1321, 1314, 1311, 1318,
2597 1327, 1313, 1315, 1323, 1322, 1316, 1325, 1321, 1316, 1317,
2598 1319, 1323, 1318, 1322, 1324, 1325, 1320, 1324, 1328, 1326,
2599 1329, 1320, 1330, 1321, 1331, 1328, 1336, 1327, 1332, 0,
2600 1323, 1330, 1324, 1333, 1329, 1336, 1335, 1331, 1335, 1332,
2601 1337, 1324, 1341, 1338, 1324, 1328, 1339, 1329, 1333, 1330,
2602 1340, 1331, 0, 1336, 1338, 1332, 1341, 0, 1342, 1344,
2603
2604 1333, 1342, 1343, 1335, 1339, 1344, 1337, 1337, 1341, 1341,
2605 1338, 1343, 1340, 1339, 1346, 1345, 1342, 1340, 1348, 1346,
2606 1349, 1350, 1351, 1341, 1345, 1342, 1344, 1352, 1342, 1343,
2607 1350, 1348, 1354, 1353, 1357, 1355, 1359, 0, 1358, 1360,
2608 1370, 1357, 1345, 0, 1376, 1348, 1346, 1372, 1350, 1351,
2609 1364, 1358, 1349, 1360, 1372, 1353, 1355, 1361, 1364, 1352,
2610 1353, 1357, 1355, 1361, 1354, 1358, 1360, 1365, 1359, 1366,
2611 1368, 1367, 1370, 1369, 1372, 1365, 1376, 1364, 1371, 1374,
2612 1373, 1361, 0, 1368, 1361, 1367, 1369, 1374, 1366, 1373,
2613 1361, 1377, 1371, 1380, 1365, 1375, 1366, 1368, 1367, 1378,
2614
2615 1369, 1382, 1377, 1381, 1389, 1371, 1374, 1373, 1378, 1375,
2616 1381, 1383, 1384, 1385, 1386, 1387, 1389, 1390, 1377, 1387,
2617 1380, 1391, 1375, 1394, 1382, 0, 1378, 1396, 1382, 1391,
2618 1381, 1389, 1386, 1383, 1384, 1385, 1392, 1393, 1383, 1384,
2619 1385, 1386, 1387, 1395, 1390, 1393, 1397, 1396, 1391, 1399,
2620 1394, 1392, 1398, 1400, 1396, 1401, 1395, 1399, 1405, 1402,
2621 1400, 1397, 1403, 1392, 1393, 0, 1407, 1398, 1406, 1404,
2622 1395, 1403, 1409, 1397, 1402, 1411, 1399, 1414, 1413, 1398,
2623 1400, 1415, 1410, 1412, 0, 1405, 1402, 1401, 1415, 1403,
2624 1404, 1419, 1406, 1407, 1409, 1406, 1404, 1420, 1412, 1409,
2625
2626 1410, 1414, 1411, 1413, 1414, 1413, 1416, 1417, 1415, 1410,
2627 1412, 1416, 1418, 1419, 1421, 1420, 1417, 1424, 1419, 1422,
2628 1423, 1418, 1427, 1428, 1420, 1425, 1426, 1434, 0, 1421,
2629 1424, 1422, 1425, 1416, 1417, 1424, 1432, 1429, 1426, 1418,
2630 1430, 1421, 1423, 1429, 1424, 1433, 1422, 1423, 1430, 1427,
2631 1435, 1431, 1425, 1426, 1434, 1428, 1437, 1424, 1431, 1436,
2632 1440, 1432, 1438, 1432, 1429, 1441, 1436, 1430, 1438, 1439,
2633 1442, 1433, 1433, 1443, 1445, 1439, 1446, 1435, 1431, 1447,
2634 1448, 1449, 1448, 1437, 1452, 1446, 1436, 1440, 1441, 1438,
2635 1450, 1454, 1441, 1451, 1456, 0, 1439, 1443, 1454, 0,
2636
2637 1443, 1464, 1442, 1446, 0, 1449, 1445, 1448, 1449, 1459,
2638 1461, 1447, 0, 0, 1459, 0, 1452, 1450, 1454, 1451,
2639 1451, 1453, 1453, 1453, 1455, 1457, 1456, 1460, 1453, 1462,
2640 1463, 1455, 1457, 1464, 0, 1461, 1453, 1461, 1467, 1466,
2641 1460, 1459, 1463, 1465, 1467, 1462, 1466, 1468, 1453, 1453,
2642 1453, 1455, 1457, 1470, 1460, 1453, 1462, 1463, 1469, 1469,
2643 1471, 1465, 1473, 1472, 1474, 1467, 1466, 1471, 1472, 1481,
2644 1465, 1480, 1482, 0, 1468, 1477, 1479, 1480, 0, 1470,
2645 1470, 1483, 1484, 1491, 1482, 1469, 1486, 1471, 1473, 1473,
2646 1472, 1474, 1490, 1477, 1479, 1494, 1481, 1493, 1480, 1482,
2647
2648 1484, 1483, 1477, 1479, 1485, 1485, 1487, 1487, 1483, 1484,
2649 1488, 1492, 1486, 1486, 1490, 1491, 1495, 1493, 1492, 1490,
2650 1496, 1488, 1497, 1498, 1493, 1499, 1500, 1494, 1501, 0,
2651 1502, 1485, 1499, 1487, 1500, 1505, 1503, 1488, 1492, 1504,
2652 1504, 1498, 1506, 1501, 1497, 1503, 1516, 1496, 1495, 1497,
2653 1498, 1507, 1499, 1500, 1502, 1501, 1508, 1502, 1507, 1509,
2654 1511, 1505, 1505, 1503, 1512, 1513, 1504, 1511, 1508, 1516,
2655 0, 1515, 1512, 1516, 1506, 1509, 1517, 1513, 1507, 1515,
2656 1519, 1518, 1509, 1508, 0, 1521, 1509, 1511, 1520, 1522,
2657 1521, 1512, 1513, 1524, 1523, 1527, 1528, 1517, 1515, 1518,
2658
2659 1523, 1521, 1509, 1517, 1529, 1530, 1524, 1519, 1518, 1532,
2660 1533, 1520, 1521, 0, 0, 1520, 1522, 1521, 1525, 1526,
2661 1524, 1523, 1535, 1528, 1531, 1525, 1526, 1527, 1530, 1531,
2662 1529, 1529, 1530, 1534, 1536, 1538, 1532, 1533, 1534, 1539,
2663 1531, 1537, 1537, 1541, 0, 1525, 1526, 1545, 1543, 1542,
2664 1538, 1531, 1547, 1544, 1535, 1544, 1531, 1559, 1541, 1546,
2665 1556, 0, 1538, 1543, 1546, 1534, 1536, 1548, 1537, 1551,
2666 1541, 1539, 1542, 1550, 1554, 1543, 1542, 1551, 1555, 1545,
2667 1544, 1552, 1548, 1557, 1547, 1558, 1546, 1556, 1550, 1559,
2668 1560, 1561, 1558, 1562, 1548, 1567, 1551, 1563, 1554, 1565,
2669
2670 1550, 1554, 1573, 1552, 1555, 1555, 1572, 0, 1552, 1574,
2671 1557, 1560, 1558, 1561, 1562, 1563, 1568, 1560, 1561, 1567,
2672 1562, 1565, 1567, 1570, 1563, 1571, 1565, 1574, 1572, 1573,
2673 1577, 1568, 1575, 1572, 1576, 1578, 1574, 1579, 1570, 1580,
2674 1571, 1581, 1578, 1568, 1582, 1584, 0, 1583, 1580, 1581,
2675 1570, 1595, 1571, 0, 1575, 1579, 1576, 1577, 0, 1575,
2676 1585, 1576, 1578, 1588, 1579, 1587, 1580, 1582, 1581, 1583,
2677 1589, 1582, 1588, 1585, 1583, 1590, 1587, 1584, 1595, 1591,
2678 1605, 1592, 0, 1602, 1604, 1597, 1600, 1585, 1589, 1598,
2679 1588, 1587, 1587, 1590, 1591, 1592, 1597, 1589, 1600, 1603,
2680
2681 1598, 1601, 1590, 1587, 1606, 1605, 1591, 1605, 1592, 1603,
2682 1604, 1604, 1597, 1600, 1601, 1602, 1598, 1607, 1609, 1612,
2683 1610, 0, 1611, 1613, 1614, 1615, 1603, 1610, 1601, 1613,
2684 1618, 1606, 1617, 1617, 0, 1623, 1607, 1612, 1609, 1614,
2685 1615, 1616, 1618, 1622, 1607, 1609, 1612, 1610, 1611, 1611,
2686 1613, 1614, 1615, 1619, 1621, 1624, 1616, 1618, 1622, 1617,
2687 1625, 1621, 1623, 1627, 1624, 1626, 1619, 1625, 1616, 1628,
2688 1622, 0, 1630, 1631, 1619, 1632, 1628, 1634, 1641, 1633,
2689 1619, 1621, 1624, 1638, 1632, 1627, 0, 1625, 1637, 1626,
2690 1627, 1636, 1626, 1619, 1630, 1643, 1628, 1634, 1631, 1630,
2691
2692 1631, 1633, 1632, 1637, 1634, 1641, 1633, 1640, 1638, 1636,
2693 1638, 1642, 1642, 1645, 1644, 1637, 0, 1643, 1636, 1647,
2694 1640, 1646, 1643, 1648, 1649, 1650, 1656, 0, 1647, 1660,
2695 1648, 1651, 1652, 0, 1640, 1645, 1654, 0, 1642, 1644,
2696 1645, 1644, 1655, 1646, 1654, 1651, 1647, 1650, 1646, 1657,
2697 1648, 1652, 1650, 1656, 1658, 1655, 1649, 1659, 1651, 1652,
2698 1661, 1660, 0, 1654, 1659, 1662, 1658, 1664, 1665, 1655,
2699 1663, 0, 1666, 0, 1667, 1657, 1657, 1670, 1663, 0,
2700 1671, 1658, 1661, 1665, 1659, 1668, 1671, 1661, 1669, 1663,
2701 1662, 1669, 1662, 1672, 1664, 1665, 1673, 1663, 1666, 1666,
2702
2703 1667, 1667, 1670, 1668, 1670, 1663, 1669, 1671, 1677, 1674,
2704 1676, 1678, 1668, 1680, 1673, 1669, 0, 1684, 1669, 1681,
2705 1672, 1688, 1682, 1673, 1674, 1676, 1681, 1680, 1684, 1689,
2706 1677, 1682, 1683, 1678, 1692, 1677, 1674, 1676, 1678, 1686,
2707 1680, 1683, 1687, 1688, 1684, 1699, 1681, 1692, 1688, 1682,
2708 1694, 1689, 1696, 1701, 1686, 1692, 1689, 1687, 1695, 1683,
2709 1698, 1692, 1695, 1697, 1696, 1697, 1686, 1702, 1700, 1687,
2710 1703, 1694, 1699, 1707, 1692, 1702, 1704, 1694, 1698, 1696,
2711 1701, 1708, 1705, 1706, 1709, 1695, 1700, 1698, 1706, 1714,
2712 1697, 1710, 1711, 1703, 1702, 1700, 1705, 1703, 1704, 1711,
2713
2714 1715, 1717, 1716, 1704, 1718, 1707, 1719, 1721, 1709, 1705,
2715 1710, 1709, 0, 1708, 1715, 1706, 1714, 0, 1710, 1711,
2716 1716, 1719, 1722, 1720, 1723, 1715, 1715, 1715, 1717, 1716,
2717 1718, 1718, 1720, 1719, 1724, 1725, 1727, 1729, 1728, 1721,
2718 0, 1715, 0, 1734, 1722, 1728, 1731, 1732, 1731, 1722,
2719 1720, 1723, 1715, 1733, 1735, 1734, 1724, 1733, 1738, 1727,
2720 1729, 1724, 1736, 1727, 1729, 1728, 1737, 1725, 1739, 1732,
2721 1734, 1736, 1740, 1731, 1732, 1741, 1735, 1737, 1742, 1742,
2722 1733, 1735, 1743, 1745, 1740, 1738, 1744, 0, 1747, 1736,
2723 1743, 1739, 1748, 1737, 1749, 1739, 1747, 1741, 1749, 1740,
2724
2725 1748, 1750, 1741, 1751, 1750, 1742, 1752, 1753, 1744, 1743,
2726 1745, 1751, 1752, 1744, 1754, 1747, 1757, 1756, 1758, 1748,
2727 1754, 1749, 1753, 1759, 1763, 1760, 1761, 1764, 1750, 1756,
2728 1751, 1762, 1766, 1752, 1753, 1765, 0, 1759, 1760, 1767,
2729 1761, 1754, 1758, 1757, 1756, 1758, 1766, 1765, 1769, 1770,
2730 1759, 1763, 1760, 1761, 1764, 1772, 1776, 1762, 1762, 1766,
2731 1768, 1773, 1765, 1768, 1775, 1767, 1767, 1774, 1773, 1777,
2732 1779, 1770, 1778, 1781, 1774, 1769, 1770, 1772, 1768, 1775,
2733 1778, 1782, 1772, 1776, 1780, 1783, 1788, 1768, 1773, 1784,
2734 1768, 1775, 1787, 1780, 1774, 1785, 1777, 1779, 1789, 1778,
2735
2736 1781, 1790, 1784, 1785, 0, 1792, 1789, 1793, 1782, 1791,
2737 1795, 1780, 1783, 1788, 1787, 1794, 1784, 1799, 1791, 1787,
2738 1801, 1796, 1785, 1797, 1805, 1789, 1792, 1801, 1790, 1796,
2739 1794, 1793, 1792, 1803, 1793, 1797, 1791, 1795, 1798, 1802,
2740 1804, 1794, 1794, 1802, 1799, 1803, 1798, 1801, 1796, 1810,
2741 1797, 1805, 1807, 1806, 1812, 1811, 1808, 1794, 1813, 1816,
2742 1803, 1806, 1811, 1804, 1807, 1798, 1802, 1804, 1808, 1814,
2743 1814, 1813, 1815, 0, 1812, 1817, 1810, 1816, 1819, 1807,
2744 1806, 1812, 1811, 1808, 1820, 1813, 1816, 1821, 1822, 1823,
2745 1822, 1824, 1829, 1819, 0, 1825, 1814, 1824, 1815, 1815,
2746
2747 1817, 1826, 1817, 1823, 1827, 1819, 1820, 1828, 1830, 1821,
2748 1831, 1820, 1831, 1832, 1821, 1822, 1823, 1825, 1824, 1828,
2749 1833, 1834, 1825, 1826, 1829, 1835, 1827, 1832, 1826, 1837,
2750 1830, 1827, 1836, 1838, 1828, 1830, 1843, 1831, 1833, 1834,
2751 1832, 1839, 1837, 1835, 1841, 1845, 1844, 1833, 1834, 1846,
2752 1836, 1841, 1835, 1847, 1843, 1847, 1837, 1846, 1849, 1836,
2753 1847, 1851, 1852, 1843, 1839, 1838, 1855, 1850, 1839, 1849,
2754 0, 1841, 1844, 1844, 1852, 1846, 1846, 1845, 1850, 1853,
2755 1847, 1855, 1847, 1857, 1846, 1849, 1858, 1856, 1851, 1852,
2756 1861, 1860, 1862, 1855, 1850, 1857, 1863, 1853, 1856, 1862,
2757
2758 1864, 1858, 1866, 1868, 1867, 1869, 1853, 1870, 1871, 1872,
2759 1857, 1863, 1861, 1858, 1856, 1860, 1873, 1861, 1860, 1862,
2760 1875, 1879, 1872, 1863, 1876, 1868, 1874, 1864, 1867, 1866,
2761 1868, 1867, 1876, 1875, 1877, 1871, 1872, 1869, 1880, 1870,
2762 1881, 1874, 1873, 1873, 1879, 1883, 1882, 1875, 1879, 1886,
2763 0, 1876, 1883, 1874, 1884, 1889, 1886, 1887, 1888, 1890,
2764 1877, 1877, 1880, 1892, 1887, 1880, 1890, 1881, 1882, 1891,
2765 1897, 1888, 1883, 1882, 1894, 1898, 1886, 1884, 1889, 1893,
2766 1910, 1884, 1889, 1894, 1887, 1888, 1890, 1896, 1900, 1899,
2767 1903, 1891, 1897, 1904, 1905, 1892, 1891, 1897, 1896, 1907,
2768
2769 1893, 1894, 1912, 1903, 1906, 1906, 1893, 1898, 1899, 1909,
2770 1928, 1916, 1910, 1900, 1896, 1900, 1899, 1903, 1905, 1904,
2771 1904, 1905, 1911, 1913, 1918, 1907, 1907, 1924, 1926, 1912,
2772 1922, 1906, 1909, 1918, 1923, 1930, 1909, 1911, 1916, 1929,
2773 1931, 1913, 1928, 1935, 1936, 1931, 1930, 1932, 1939, 1911,
2774 1913, 1918, 1922, 0, 1924, 1926, 1923, 1922, 1935, 1938,
2775 1934, 1923, 1930, 1940, 1941, 1929, 1929, 1931, 1934, 1932,
2776 1935, 1936, 1940, 1943, 1932, 1944, 1941, 1938, 1947, 1945,
2777 1939, 1948, 1952, 1944, 0, 1949, 1938, 1934, 1945, 1950,
2778 1940, 1941, 1951, 1954, 1955, 1952, 1956, 1953, 1957, 1958,
2779
2780 1943, 1961, 1944, 1959, 1947, 1947, 1945, 1949, 1948, 1952,
2781 1953, 1950, 1949, 1960, 1965, 1954, 1950, 1951, 1959, 1951,
2782 1954, 1955, 1960, 1956, 1953, 1957, 1958, 1961, 1961, 1962,
2783 1959, 1963, 1964, 1966, 1967, 1968, 1970, 1969, 1971, 0,
2784 1960, 1965, 1973, 1964, 1972, 1971, 1963, 1974, 0, 1973,
2785 1968, 1970, 1975, 1976, 1976, 1962, 1962, 1969, 1963, 1964,
2786 1966, 1967, 1968, 1970, 1969, 1971, 1972, 1978, 1977, 1973,
2787 1975, 1972, 1980, 1979, 1974, 1977, 1979, 1981, 1982, 1975,
2788 1976, 1978, 1986, 1987, 1989, 1980, 1983, 0, 1987, 1984,
2789 1991, 1986, 1992, 1988, 1978, 1977, 1982, 1988, 1983, 1980,
2790
2791 1979, 1984, 1990, 1981, 1981, 1982, 1993, 1994, 1989, 1986,
2792 1987, 1989, 1991, 1983, 1992, 1990, 1984, 1991, 1995, 1992,
2793 1988, 1998, 1999, 2000, 2001, 2005, 0, 2004, 2003, 1990,
2794 2005, 1999, 2001, 1993, 1994, 2003, 2004, 0, 2007, 2000,
2795 0, 0, 2010, 2012, 1995, 1995, 2006, 1998, 1998, 1999,
2796 2000, 2001, 2005, 2006, 2004, 2003, 2007, 2008, 2009, 2013,
2797 2014, 2017, 2015, 2016, 2008, 2007, 2018, 2009, 2010, 2010,
2798 2012, 2015, 2016, 2006, 2019, 0, 2025, 2013, 2018, 2023,
2799 2024, 2017, 2020, 2019, 2008, 2009, 2013, 2014, 2017, 2015,
2800 2016, 2020, 2021, 2018, 2022, 2026, 2029, 2028, 2027, 0,
2801
2802 2034, 2019, 2022, 2021, 2026, 2028, 2023, 2024, 2025, 2020,
2803 2027, 2033, 2032, 2030, 0, 2036, 2035, 2040, 2029, 2021,
2804 2030, 2022, 2026, 2029, 2028, 2027, 2031, 2034, 0, 2038,
2805 2047, 2050, 0, 2031, 2032, 2040, 2033, 2038, 2033, 2032,
2806 2030, 2035, 2036, 2035, 2040, 2041, 2042, 2046, 2045, 2048,
2807 2049, 2053, 2041, 2031, 2042, 2045, 2038, 2047, 2050, 2049,
2808 2051, 2048, 2054, 2053, 2055, 2056, 0, 2060, 2063, 2062,
2809 2065, 2046, 2041, 2042, 2046, 2045, 2048, 2049, 2053, 2056,
2810 2066, 2058, 2064, 2051, 2062, 2054, 2059, 2051, 2058, 2054,
2811 2064, 2055, 2056, 2059, 2060, 2063, 2062, 2065, 2067, 0,
2812
2813 2072, 2073, 2066, 2074, 2075, 2076, 2073, 2066, 2058, 2064,
2814 2077, 2081, 2083, 2059, 0, 0, 2082, 2074, 2075, 0,
2815 2089, 2084, 2077, 2076, 2090, 2067, 2072, 2072, 2073, 2082,
2816 2074, 2075, 2076, 2081, 2083, 2086, 2085, 2077, 2081, 2083,
2817 2084, 2088, 2089, 2082, 2085, 2091, 2090, 2089, 2084, 2092,
2818 2093, 2090, 2095, 2088, 2086, 2094, 2096, 2091, 2097, 2098,
2819 2100, 0, 2086, 2085, 0, 2096, 2099, 2097, 2088, 2101,
2820 2102, 2103, 2091, 2104, 2095, 2094, 2092, 2093, 2108, 2095,
2821 2107, 2101, 2094, 2096, 2109, 2097, 2100, 2100, 2099, 2109,
2822 2110, 2098, 2102, 2099, 2107, 2112, 2101, 2102, 2103, 2111,
2823
2824 2104, 2113, 2108, 2114, 2115, 2108, 2116, 2107, 0, 0,
2825 2117, 0, 2110, 2118, 2121, 0, 2109, 2110, 2116, 2119,
2826 2123, 2111, 2115, 2124, 2113, 2114, 2111, 2112, 2113, 2117,
2827 2114, 2115, 2129, 2116, 2119, 2118, 2127, 2117, 2121, 2125,
2828 2118, 2121, 2123, 2126, 2128, 2124, 2119, 2123, 2125, 2130,
2829 2124, 2136, 2133, 2140, 2127, 0, 2135, 2126, 2129, 2129,
2830 2133, 2134, 2128, 2127, 2135, 2137, 2125, 2130, 2134, 2138,
2831 2126, 2128, 2139, 2137, 2141, 2146, 2130, 2143, 2136, 2133,
2832 2140, 2148, 2141, 2135, 2139, 2147, 2145, 2138, 2134, 2143,
2833 0, 2149, 2137, 2145, 2150, 2153, 2138, 2152, 2146, 2139,
2834
2835 2155, 2141, 2146, 2159, 2143, 2160, 2156, 2161, 2148, 2153,
2836 2149, 2163, 2165, 2145, 2157, 2152, 2150, 2147, 2149, 2156,
2837 2170, 2150, 2153, 2155, 2152, 2171, 2157, 2155, 2167, 2159,
2838 2159, 2172, 2160, 2156, 2161, 2167, 2169, 2173, 2163, 2165,
2839 2174, 2157, 2175, 2169, 2176, 2177, 2170, 2170, 2178, 2174,
2840 2179, 2182, 2171, 2180, 2183, 2167, 0, 0, 2172, 2184,
2841 2178, 2173, 2180, 2169, 2173, 2181, 2192, 2174, 2187, 2175,
2842 2176, 2176, 2177, 2187, 2191, 2178, 2194, 2179, 2181, 2195,
2843 2180, 2183, 2184, 2182, 2188, 2198, 2184, 2189, 2188, 2190,
2844 2199, 2193, 2181, 2193, 2189, 2191, 2190, 2200, 2192, 2194,
2845
2846 2187, 2191, 2202, 2194, 2202, 0, 2195, 2198, 2203, 2199,
2847 0, 2188, 2198, 2206, 2189, 2205, 2190, 2199, 2193, 2209,
2848 2208, 2200, 2206, 2207, 2200, 2211, 2204, 2204, 0, 2202,
2849 2207, 2210, 2203, 2208, 2213, 2203, 2204, 2205, 2214, 2210,
2850 2206, 2212, 2205, 2215, 2211, 2216, 2209, 2208, 2217, 2212,
2851 2207, 2218, 2211, 2204, 2204, 2219, 2220, 2220, 2210, 2217,
2852 2213, 2213, 2219, 2221, 2214, 2214, 2225, 2222, 2212, 2215,
2853 2215, 2216, 2216, 2218, 2222, 2217, 2226, 2223, 2218, 2227,
2854 2229, 2221, 2219, 2220, 2223, 2230, 2231, 2232, 2227, 2235,
2855 2221, 2236, 2233, 2225, 2222, 0, 2239, 2237, 2235, 2238,
2856
2857 2226, 2241, 0, 2226, 2223, 2230, 2227, 2229, 2239, 2232,
2858 2233, 2242, 2230, 2231, 2232, 2241, 2235, 2238, 2236, 2233,
2859 2237, 2247, 2240, 2239, 2237, 2248, 2238, 2240, 2241, 2242,
2860 2249, 2252, 2253, 2252, 2255, 2257, 2266, 0, 2242, 2253,
2861 2260, 2257, 2259, 2248, 2267, 2249, 2263, 2261, 2247, 2255,
2862 2264, 2268, 2248, 2264, 2240, 0, 0, 2249, 2252, 2253,
2863 2272, 2255, 2257, 2266, 2259, 2261, 2260, 2260, 2263, 2259,
2864 2269, 2267, 2270, 2263, 2261, 2271, 2264, 2264, 2268, 2270,
2865 2264, 2274, 2272, 2271, 2275, 2276, 0, 2272, 2269, 2277,
2866 2279, 2278, 2280, 2282, 2281, 2284, 2279, 2269, 0, 2270,
2867
2868 2278, 2286, 2271, 2281, 2288, 0, 2275, 2276, 2283, 2286,
2869 2283, 2275, 2276, 2274, 2280, 2287, 2277, 2279, 2278, 2280,
2870 2289, 2281, 2284, 2290, 2294, 2282, 2291, 2287, 2286, 2293,
2871 2292, 2288, 2294, 2295, 2289, 2283, 2296, 2290, 2297, 2297,
2872 2293, 2298, 2287, 2301, 2302, 2306, 2299, 2289, 2292, 2291,
2873 2290, 2294, 2295, 2291, 2299, 2304, 2293, 2292, 2296, 2308,
2874 2295, 2304, 2310, 2296, 2307, 2297, 2315, 2311, 2298, 2313,
2875 2301, 2302, 2306, 2299, 2311, 2307, 2312, 2313, 2318, 2319,
2876 2312, 2308, 2304, 2318, 2316, 2320, 2308, 2321, 2335, 2310,
2877 2322, 2307, 2315, 2315, 2311, 2321, 2313, 2316, 2325, 2327,
2878
2879 2323, 2324, 2336, 2312, 2329, 2318, 2319, 2323, 2322, 2324,
2880 2328, 2316, 2320, 2325, 2321, 2326, 2334, 2322, 2333, 0,
2881 2335, 2338, 2326, 2334, 2337, 2325, 2327, 2323, 2324, 2336,
2882 2329, 2329, 2339, 2333, 2328, 2341, 2342, 2328, 2343, 2344,
2883 2346, 2339, 2326, 2334, 0, 2333, 2343, 2348, 2337, 2351,
2884 2352, 2337, 2349, 2338, 2345, 2345, 2353, 2341, 2342, 2339,
2885 2349, 0, 2341, 2342, 2345, 2343, 2355, 2346, 2356, 2357,
2886 2358, 2344, 2354, 2361, 2348, 0, 2351, 2352, 2353, 2349,
2887 2359, 2345, 2345, 2353, 2364, 2354, 2366, 2369, 2355, 2367,
2888 2370, 2366, 2364, 2355, 2371, 2356, 2357, 2358, 2373, 2354,
2889
2890 2361, 2371, 2359, 2370, 2372, 2374, 2377, 2359, 2379, 2380,
2891 2378, 2364, 2381, 2366, 2369, 2367, 2367, 2370, 0, 2382,
2892 0, 2371, 2372, 2378, 0, 2373, 2386, 2374, 2380, 2387,
2893 2388, 2372, 2374, 2377, 0, 2384, 2380, 2378, 2385, 2381,
2894 2379, 2382, 2384, 2404, 2387, 2385, 2382, 2390, 2386, 2395,
2895 2391, 2388, 2392, 2386, 2393, 2394, 2387, 2388, 2391, 2392,
2896 2395, 2393, 2384, 2398, 2394, 2385, 2390, 2397, 2396, 2396,
2897 2404, 2405, 2410, 2397, 2390, 2412, 2395, 2391, 2396, 2392,
2898 2401, 2393, 2394, 2406, 2416, 2398, 2414, 2401, 2413, 2413,
2899 2398, 2417, 2418, 2420, 2397, 2396, 2396, 2427, 2405, 2410,
2900
2901 2417, 2422, 2412, 2423, 2424, 2418, 2406, 2401, 2428, 2414,
2902 2406, 2416, 2429, 2414, 2426, 2427, 2424, 2413, 2417, 2418,
2903 2420, 2422, 2430, 2426, 2427, 2431, 2423, 2434, 2422, 2432,
2904 2423, 2424, 2434, 2435, 2428, 2428, 2436, 2431, 2436, 2429,
2905 2433, 2426, 2437, 2433, 2438, 2442, 2439, 2441, 0, 2430,
2906 2438, 2432, 2431, 2440, 2437, 2441, 2432, 2445, 2433, 2434,
2907 2448, 2449, 2450, 2436, 2452, 2435, 2453, 2433, 2439, 2437,
2908 2433, 2438, 2442, 2439, 2441, 2440, 2455, 2457, 2456, 2460,
2909 2440, 2458, 2452, 2459, 2445, 2463, 2470, 2448, 2449, 2450,
2910 2456, 2452, 2457, 2453, 2463, 2459, 2464, 2465, 2465, 2466,
2911
2912 2467, 2471, 0, 2455, 2457, 2456, 2460, 2458, 2458, 2467,
2913 2459, 2469, 2463, 2473, 2471, 2472, 2485, 2481, 2470, 2475,
2914 2464, 2473, 2474, 2464, 2465, 2466, 2466, 2467, 2471, 2484,
2915 2475, 2474, 2489, 2484, 2487, 2469, 2489, 2472, 2469, 2485,
2916 2473, 2481, 2472, 2485, 2481, 2486, 2475, 2487, 2490, 2474,
2917 2493, 2491, 2486, 2495, 2492, 2496, 2484, 2494, 2500, 2489,
2918 2497, 2487, 2493, 2496, 2490, 2498, 2499, 2495, 2499, 2497,
2919 2500, 2503, 2486, 2491, 2505, 2490, 2498, 2493, 2491, 2492,
2920 2495, 2492, 2496, 2494, 2494, 2500, 2502, 2497, 2501, 2504,
2921 2516, 2506, 2498, 2499, 2507, 2501, 2508, 2509, 2503, 2502,
2922
2923 0, 2505, 2510, 2511, 2512, 2509, 2513, 2504, 2514, 2510,
2924 2514, 2518, 2517, 2502, 2526, 2501, 2504, 2506, 2506, 2530,
2925 2515, 2507, 2516, 2508, 2509, 2517, 2512, 2511, 2513, 2510,
2926 2511, 2512, 2515, 2513, 2519, 2514, 2521, 2523, 2518, 2517,
2927 2527, 2526, 2519, 2528, 2529, 2531, 2523, 2515, 2521, 2534,
2928 0, 2530, 2529, 2536, 0, 2532, 2537, 2534, 2533, 0,
2929 2536, 2519, 2528, 2521, 2523, 2538, 2527, 2527, 2532, 2537,
2930 2528, 2529, 2533, 2541, 2540, 2543, 2534, 2531, 2542, 2544,
2931 2536, 2540, 2532, 2537, 2550, 2533, 2542, 2546, 2538, 2543,
2932 2545, 2547, 2538, 2544, 2548, 2541, 2549, 2551, 2545, 2552,
2933
2934 2541, 2540, 2543, 2548, 2549, 2542, 2544, 2553, 2554, 2546,
2935 2555, 2550, 2557, 2547, 2546, 2558, 2556, 2545, 2547, 2551,
2936 2557, 2548, 2559, 2549, 2551, 2560, 2564, 2562, 2563, 2567,
2937 2554, 2552, 2555, 2553, 2553, 2554, 2563, 2555, 2556, 2557,
2938 2565, 0, 2570, 2556, 2559, 2572, 2564, 2558, 2565, 2559,
2939 2562, 2566, 2560, 2564, 2562, 2563, 2568, 2569, 2575, 2566,
2940 2574, 2567, 2573, 2577, 2568, 2573, 2575, 2565, 2570, 2570,
2941 2578, 2569, 2572, 2576, 2580, 0, 2579, 2577, 2566, 2583,
2942 2573, 2576, 2574, 2568, 2569, 2575, 2585, 2574, 2580, 2573,
2943 2577, 2584, 2573, 2582, 2582, 2586, 2578, 2578, 2579, 2584,
2944
2945 2576, 2580, 2587, 2579, 2590, 2583, 2583, 2588, 2589, 0,
2946 2591, 2592, 2585, 2585, 2593, 2600, 2589, 2596, 2584, 2594,
2947 2582, 2586, 2586, 2595, 2587, 2596, 2597, 2588, 0, 2587,
2948 0, 2590, 2591, 0, 2588, 2589, 2592, 2591, 2592, 2594,
2949 2603, 2593, 2600, 2595, 2596, 2607, 2594, 2598, 2597, 2601,
2950 2595, 2604, 2605, 2597, 2609, 2598, 2606, 2601, 2610, 2613,
2951 2605, 2611, 2603, 2612, 2606, 2616, 2610, 2603, 0, 2611,
2952 2617, 2607, 2607, 2604, 2598, 2614, 2601, 2620, 2604, 2605,
2953 2618, 2609, 2626, 2606, 2623, 2610, 2613, 2627, 2611, 2612,
2954 2612, 0, 2616, 2624, 0, 2614, 0, 2617, 0, 2620,
2955
2956 2618, 2624, 2614, 0, 2620, 2625, 2623, 2618, 0, 2626,
2957 0, 2623, 0, 2625, 2627, 0, 0, 0, 0, 0,
2958 2624, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 2625, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
2960 2632, 2632, 2632, 2632, 2632, 2632, 2632, 2633, 2633, 2633,
2961 2633, 2633, 2633, 2633, 2634, 2634, 2634, 2634, 2634, 2634,
2962 2634, 2635, 2635, 2635, 2635, 2635, 2635, 2635, 2637, 2637,
2963 0, 2637, 2637, 2637, 2637, 2638, 2638, 0, 0, 0,
2964 2638, 2638, 2639, 2639, 0, 0, 2639, 0, 2639, 2640,
2965 0, 0, 0, 0, 0, 2640, 2641, 2641, 0, 0,
2966
2967 0, 2641, 2641, 2642, 0, 0, 0, 0, 0, 2642,
2968 2643, 2643, 0, 2643, 2643, 2643, 2643, 2644, 2644, 0,
2969 2644, 2644, 2644, 2644, 2630, 2630, 2630, 2630, 2630, 2630,
2970 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2971 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2972 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2973 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2974 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2975 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
2976 2630
29462977
29472978 } ;
29482979
31533184 #define YY_NO_INPUT 1
31543185 #endif
31553186
3156 #line 3156 "<stdout>"
3187 #line 3187 "<stdout>"
31573188
31583189 #define INITIAL 0
31593190 #define quotedstring 1
33763407 {
33773408 #line 206 "util/configlexer.lex"
33783409
3379 #line 3379 "<stdout>"
3410 #line 3410 "<stdout>"
33803411
33813412 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
33823413 {
34093440 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
34103441 {
34113442 yy_current_state = (int) yy_def[yy_current_state];
3412 if ( yy_current_state >= 2599 )
3443 if ( yy_current_state >= 2631 )
34133444 yy_c = yy_meta[(unsigned int) yy_c];
34143445 }
34153446 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
34163447 ++yy_cp;
34173448 }
3418 while ( yy_base[yy_current_state] != 7434 );
3449 while ( yy_base[yy_current_state] != 7525 );
34193450
34203451 yy_find_action:
34213452 yy_act = yy_accept[yy_current_state];
36003631 case 32:
36013632 YY_RULE_SETUP
36023633 #line 241 "util/configlexer.lex"
3603 { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
3634 { YDVAR(1, VAR_TLS_WIN_CERT) }
36043635 YY_BREAK
36053636 case 33:
36063637 YY_RULE_SETUP
36073638 #line 242 "util/configlexer.lex"
3608 { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
3639 { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
36093640 YY_BREAK
36103641 case 34:
36113642 YY_RULE_SETUP
36123643 #line 243 "util/configlexer.lex"
3644 { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
3645 YY_BREAK
3646 case 35:
3647 YY_RULE_SETUP
3648 #line 244 "util/configlexer.lex"
3649 { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
3650 YY_BREAK
3651 case 36:
3652 YY_RULE_SETUP
3653 #line 245 "util/configlexer.lex"
36133654 { YDVAR(1, VAR_USE_SYSTEMD) }
36143655 YY_BREAK
3615 case 35:
3616 YY_RULE_SETUP
3617 #line 244 "util/configlexer.lex"
3656 case 37:
3657 YY_RULE_SETUP
3658 #line 246 "util/configlexer.lex"
36183659 { YDVAR(1, VAR_DO_DAEMONIZE) }
36193660 YY_BREAK
3620 case 36:
3621 YY_RULE_SETUP
3622 #line 245 "util/configlexer.lex"
3661 case 38:
3662 YY_RULE_SETUP
3663 #line 247 "util/configlexer.lex"
36233664 { YDVAR(1, VAR_INTERFACE) }
36243665 YY_BREAK
3625 case 37:
3626 YY_RULE_SETUP
3627 #line 246 "util/configlexer.lex"
3666 case 39:
3667 YY_RULE_SETUP
3668 #line 248 "util/configlexer.lex"
36283669 { YDVAR(1, VAR_INTERFACE) }
36293670 YY_BREAK
3630 case 38:
3631 YY_RULE_SETUP
3632 #line 247 "util/configlexer.lex"
3671 case 40:
3672 YY_RULE_SETUP
3673 #line 249 "util/configlexer.lex"
36333674 { YDVAR(1, VAR_OUTGOING_INTERFACE) }
36343675 YY_BREAK
3635 case 39:
3636 YY_RULE_SETUP
3637 #line 248 "util/configlexer.lex"
3676 case 41:
3677 YY_RULE_SETUP
3678 #line 250 "util/configlexer.lex"
36383679 { YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
36393680 YY_BREAK
3640 case 40:
3641 YY_RULE_SETUP
3642 #line 249 "util/configlexer.lex"
3681 case 42:
3682 YY_RULE_SETUP
3683 #line 251 "util/configlexer.lex"
36433684 { YDVAR(1, VAR_SO_RCVBUF) }
36443685 YY_BREAK
3645 case 41:
3646 YY_RULE_SETUP
3647 #line 250 "util/configlexer.lex"
3686 case 43:
3687 YY_RULE_SETUP
3688 #line 252 "util/configlexer.lex"
36483689 { YDVAR(1, VAR_SO_SNDBUF) }
36493690 YY_BREAK
3650 case 42:
3651 YY_RULE_SETUP
3652 #line 251 "util/configlexer.lex"
3691 case 44:
3692 YY_RULE_SETUP
3693 #line 253 "util/configlexer.lex"
36533694 { YDVAR(1, VAR_SO_REUSEPORT) }
36543695 YY_BREAK
3655 case 43:
3656 YY_RULE_SETUP
3657 #line 252 "util/configlexer.lex"
3696 case 45:
3697 YY_RULE_SETUP
3698 #line 254 "util/configlexer.lex"
36583699 { YDVAR(1, VAR_IP_TRANSPARENT) }
36593700 YY_BREAK
3660 case 44:
3661 YY_RULE_SETUP
3662 #line 253 "util/configlexer.lex"
3701 case 46:
3702 YY_RULE_SETUP
3703 #line 255 "util/configlexer.lex"
36633704 { YDVAR(1, VAR_IP_FREEBIND) }
36643705 YY_BREAK
3665 case 45:
3666 YY_RULE_SETUP
3667 #line 254 "util/configlexer.lex"
3706 case 47:
3707 YY_RULE_SETUP
3708 #line 256 "util/configlexer.lex"
36683709 { YDVAR(1, VAR_CHROOT) }
36693710 YY_BREAK
3670 case 46:
3671 YY_RULE_SETUP
3672 #line 255 "util/configlexer.lex"
3711 case 48:
3712 YY_RULE_SETUP
3713 #line 257 "util/configlexer.lex"
36733714 { YDVAR(1, VAR_USERNAME) }
36743715 YY_BREAK
3675 case 47:
3676 YY_RULE_SETUP
3677 #line 256 "util/configlexer.lex"
3716 case 49:
3717 YY_RULE_SETUP
3718 #line 258 "util/configlexer.lex"
36783719 { YDVAR(1, VAR_DIRECTORY) }
36793720 YY_BREAK
3680 case 48:
3681 YY_RULE_SETUP
3682 #line 257 "util/configlexer.lex"
3721 case 50:
3722 YY_RULE_SETUP
3723 #line 259 "util/configlexer.lex"
36833724 { YDVAR(1, VAR_LOGFILE) }
36843725 YY_BREAK
3685 case 49:
3686 YY_RULE_SETUP
3687 #line 258 "util/configlexer.lex"
3726 case 51:
3727 YY_RULE_SETUP
3728 #line 260 "util/configlexer.lex"
36883729 { YDVAR(1, VAR_PIDFILE) }
36893730 YY_BREAK
3690 case 50:
3691 YY_RULE_SETUP
3692 #line 259 "util/configlexer.lex"
3731 case 52:
3732 YY_RULE_SETUP
3733 #line 261 "util/configlexer.lex"
36933734 { YDVAR(1, VAR_ROOT_HINTS) }
36943735 YY_BREAK
3695 case 51:
3696 YY_RULE_SETUP
3697 #line 260 "util/configlexer.lex"
3736 case 53:
3737 YY_RULE_SETUP
3738 #line 262 "util/configlexer.lex"
36983739 { YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
36993740 YY_BREAK
3700 case 52:
3701 YY_RULE_SETUP
3702 #line 261 "util/configlexer.lex"
3741 case 54:
3742 YY_RULE_SETUP
3743 #line 263 "util/configlexer.lex"
37033744 { YDVAR(1, VAR_MSG_BUFFER_SIZE) }
37043745 YY_BREAK
3705 case 53:
3706 YY_RULE_SETUP
3707 #line 262 "util/configlexer.lex"
3746 case 55:
3747 YY_RULE_SETUP
3748 #line 264 "util/configlexer.lex"
37083749 { YDVAR(1, VAR_MSG_CACHE_SIZE) }
37093750 YY_BREAK
3710 case 54:
3711 YY_RULE_SETUP
3712 #line 263 "util/configlexer.lex"
3751 case 56:
3752 YY_RULE_SETUP
3753 #line 265 "util/configlexer.lex"
37133754 { YDVAR(1, VAR_MSG_CACHE_SLABS) }
37143755 YY_BREAK
3715 case 55:
3716 YY_RULE_SETUP
3717 #line 264 "util/configlexer.lex"
3756 case 57:
3757 YY_RULE_SETUP
3758 #line 266 "util/configlexer.lex"
37183759 { YDVAR(1, VAR_RRSET_CACHE_SIZE) }
37193760 YY_BREAK
3720 case 56:
3721 YY_RULE_SETUP
3722 #line 265 "util/configlexer.lex"
3761 case 58:
3762 YY_RULE_SETUP
3763 #line 267 "util/configlexer.lex"
37233764 { YDVAR(1, VAR_RRSET_CACHE_SLABS) }
37243765 YY_BREAK
3725 case 57:
3726 YY_RULE_SETUP
3727 #line 266 "util/configlexer.lex"
3766 case 59:
3767 YY_RULE_SETUP
3768 #line 268 "util/configlexer.lex"
37283769 { YDVAR(1, VAR_CACHE_MAX_TTL) }
37293770 YY_BREAK
3730 case 58:
3731 YY_RULE_SETUP
3732 #line 267 "util/configlexer.lex"
3771 case 60:
3772 YY_RULE_SETUP
3773 #line 269 "util/configlexer.lex"
37333774 { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
37343775 YY_BREAK
3735 case 59:
3736 YY_RULE_SETUP
3737 #line 268 "util/configlexer.lex"
3776 case 61:
3777 YY_RULE_SETUP
3778 #line 270 "util/configlexer.lex"
37383779 { YDVAR(1, VAR_CACHE_MIN_TTL) }
37393780 YY_BREAK
3740 case 60:
3741 YY_RULE_SETUP
3742 #line 269 "util/configlexer.lex"
3781 case 62:
3782 YY_RULE_SETUP
3783 #line 271 "util/configlexer.lex"
37433784 { YDVAR(1, VAR_INFRA_HOST_TTL) }
37443785 YY_BREAK
3745 case 61:
3746 YY_RULE_SETUP
3747 #line 270 "util/configlexer.lex"
3786 case 63:
3787 YY_RULE_SETUP
3788 #line 272 "util/configlexer.lex"
37483789 { YDVAR(1, VAR_INFRA_LAME_TTL) }
37493790 YY_BREAK
3750 case 62:
3751 YY_RULE_SETUP
3752 #line 271 "util/configlexer.lex"
3791 case 64:
3792 YY_RULE_SETUP
3793 #line 273 "util/configlexer.lex"
37533794 { YDVAR(1, VAR_INFRA_CACHE_SLABS) }
37543795 YY_BREAK
3755 case 63:
3756 YY_RULE_SETUP
3757 #line 272 "util/configlexer.lex"
3796 case 65:
3797 YY_RULE_SETUP
3798 #line 274 "util/configlexer.lex"
37583799 { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
37593800 YY_BREAK
3760 case 64:
3761 YY_RULE_SETUP
3762 #line 273 "util/configlexer.lex"
3801 case 66:
3802 YY_RULE_SETUP
3803 #line 275 "util/configlexer.lex"
37633804 { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
37643805 YY_BREAK
3765 case 65:
3766 YY_RULE_SETUP
3767 #line 274 "util/configlexer.lex"
3806 case 67:
3807 YY_RULE_SETUP
3808 #line 276 "util/configlexer.lex"
37683809 { YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
37693810 YY_BREAK
3770 case 66:
3771 YY_RULE_SETUP
3772 #line 275 "util/configlexer.lex"
3811 case 68:
3812 YY_RULE_SETUP
3813 #line 277 "util/configlexer.lex"
37733814 { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
37743815 YY_BREAK
3775 case 67:
3776 YY_RULE_SETUP
3777 #line 276 "util/configlexer.lex"
3816 case 69:
3817 YY_RULE_SETUP
3818 #line 278 "util/configlexer.lex"
37783819 { YDVAR(1, VAR_JOSTLE_TIMEOUT) }
37793820 YY_BREAK
3780 case 68:
3781 YY_RULE_SETUP
3782 #line 277 "util/configlexer.lex"
3821 case 70:
3822 YY_RULE_SETUP
3823 #line 279 "util/configlexer.lex"
37833824 { YDVAR(1, VAR_DELAY_CLOSE) }
37843825 YY_BREAK
3785 case 69:
3786 YY_RULE_SETUP
3787 #line 278 "util/configlexer.lex"
3826 case 71:
3827 YY_RULE_SETUP
3828 #line 280 "util/configlexer.lex"
37883829 { YDVAR(1, VAR_TARGET_FETCH_POLICY) }
37893830 YY_BREAK
3790 case 70:
3791 YY_RULE_SETUP
3792 #line 279 "util/configlexer.lex"
3831 case 72:
3832 YY_RULE_SETUP
3833 #line 281 "util/configlexer.lex"
37933834 { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
37943835 YY_BREAK
3795 case 71:
3796 YY_RULE_SETUP
3797 #line 280 "util/configlexer.lex"
3836 case 73:
3837 YY_RULE_SETUP
3838 #line 282 "util/configlexer.lex"
37983839 { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
37993840 YY_BREAK
3800 case 72:
3801 YY_RULE_SETUP
3802 #line 281 "util/configlexer.lex"
3841 case 74:
3842 YY_RULE_SETUP
3843 #line 283 "util/configlexer.lex"
38033844 { YDVAR(1, VAR_HARDEN_GLUE) }
38043845 YY_BREAK
3805 case 73:
3806 YY_RULE_SETUP
3807 #line 282 "util/configlexer.lex"
3846 case 75:
3847 YY_RULE_SETUP
3848 #line 284 "util/configlexer.lex"
38083849 { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
38093850 YY_BREAK
3810 case 74:
3811 YY_RULE_SETUP
3812 #line 283 "util/configlexer.lex"
3851 case 76:
3852 YY_RULE_SETUP
3853 #line 285 "util/configlexer.lex"
38133854 { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
38143855 YY_BREAK
3815 case 75:
3816 YY_RULE_SETUP
3817 #line 284 "util/configlexer.lex"
3856 case 77:
3857 YY_RULE_SETUP
3858 #line 286 "util/configlexer.lex"
38183859 { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
38193860 YY_BREAK
3820 case 76:
3821 YY_RULE_SETUP
3822 #line 285 "util/configlexer.lex"
3861 case 78:
3862 YY_RULE_SETUP
3863 #line 287 "util/configlexer.lex"
38233864 { YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
38243865 YY_BREAK
3825 case 77:
3826 YY_RULE_SETUP
3827 #line 286 "util/configlexer.lex"
3866 case 79:
3867 YY_RULE_SETUP
3868 #line 288 "util/configlexer.lex"
38283869 { YDVAR(1, VAR_USE_CAPS_FOR_ID) }
38293870 YY_BREAK
3830 case 78:
3831 YY_RULE_SETUP
3832 #line 287 "util/configlexer.lex"
3871 case 80:
3872 YY_RULE_SETUP
3873 #line 289 "util/configlexer.lex"
38333874 { YDVAR(1, VAR_CAPS_WHITELIST) }
38343875 YY_BREAK
3835 case 79:
3836 YY_RULE_SETUP
3837 #line 288 "util/configlexer.lex"
3876 case 81:
3877 YY_RULE_SETUP
3878 #line 290 "util/configlexer.lex"
38383879 { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
38393880 YY_BREAK
3840 case 80:
3841 YY_RULE_SETUP
3842 #line 289 "util/configlexer.lex"
3881 case 82:
3882 YY_RULE_SETUP
3883 #line 291 "util/configlexer.lex"
38433884 { YDVAR(1, VAR_PRIVATE_ADDRESS) }
38443885 YY_BREAK
3845 case 81:
3846 YY_RULE_SETUP
3847 #line 290 "util/configlexer.lex"
3886 case 83:
3887 YY_RULE_SETUP
3888 #line 292 "util/configlexer.lex"
38483889 { YDVAR(1, VAR_PRIVATE_DOMAIN) }
38493890 YY_BREAK
3850 case 82:
3851 YY_RULE_SETUP
3852 #line 291 "util/configlexer.lex"
3891 case 84:
3892 YY_RULE_SETUP
3893 #line 293 "util/configlexer.lex"
38533894 { YDVAR(1, VAR_PREFETCH_KEY) }
38543895 YY_BREAK
3855 case 83:
3856 YY_RULE_SETUP
3857 #line 292 "util/configlexer.lex"
3896 case 85:
3897 YY_RULE_SETUP
3898 #line 294 "util/configlexer.lex"
38583899 { YDVAR(1, VAR_PREFETCH) }
38593900 YY_BREAK
3860 case 84:
3861 YY_RULE_SETUP
3862 #line 293 "util/configlexer.lex"
3901 case 86:
3902 YY_RULE_SETUP
3903 #line 295 "util/configlexer.lex"
38633904 { YDVAR(0, VAR_STUB_ZONE) }
38643905 YY_BREAK
3865 case 85:
3866 YY_RULE_SETUP
3867 #line 294 "util/configlexer.lex"
3906 case 87:
3907 YY_RULE_SETUP
3908 #line 296 "util/configlexer.lex"
38683909 { YDVAR(1, VAR_NAME) }
38693910 YY_BREAK
3870 case 86:
3871 YY_RULE_SETUP
3872 #line 295 "util/configlexer.lex"
3911 case 88:
3912 YY_RULE_SETUP
3913 #line 297 "util/configlexer.lex"
38733914 { YDVAR(1, VAR_STUB_ADDR) }
38743915 YY_BREAK
3875 case 87:
3876 YY_RULE_SETUP
3877 #line 296 "util/configlexer.lex"
3916 case 89:
3917 YY_RULE_SETUP
3918 #line 298 "util/configlexer.lex"
38783919 { YDVAR(1, VAR_STUB_HOST) }
38793920 YY_BREAK
3880 case 88:
3881 YY_RULE_SETUP
3882 #line 297 "util/configlexer.lex"
3921 case 90:
3922 YY_RULE_SETUP
3923 #line 299 "util/configlexer.lex"
38833924 { YDVAR(1, VAR_STUB_PRIME) }
38843925 YY_BREAK
3885 case 89:
3886 YY_RULE_SETUP
3887 #line 298 "util/configlexer.lex"
3926 case 91:
3927 YY_RULE_SETUP
3928 #line 300 "util/configlexer.lex"
38883929 { YDVAR(1, VAR_STUB_FIRST) }
38893930 YY_BREAK
3890 case 90:
3891 YY_RULE_SETUP
3892 #line 299 "util/configlexer.lex"
3931 case 92:
3932 YY_RULE_SETUP
3933 #line 301 "util/configlexer.lex"
38933934 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
38943935 YY_BREAK
3895 case 91:
3896 YY_RULE_SETUP
3897 #line 300 "util/configlexer.lex"
3936 case 93:
3937 YY_RULE_SETUP
3938 #line 302 "util/configlexer.lex"
38983939 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
38993940 YY_BREAK
3900 case 92:
3901 YY_RULE_SETUP
3902 #line 301 "util/configlexer.lex"
3941 case 94:
3942 YY_RULE_SETUP
3943 #line 303 "util/configlexer.lex"
39033944 { YDVAR(0, VAR_FORWARD_ZONE) }
39043945 YY_BREAK
3905 case 93:
3906 YY_RULE_SETUP
3907 #line 302 "util/configlexer.lex"
3946 case 95:
3947 YY_RULE_SETUP
3948 #line 304 "util/configlexer.lex"
39083949 { YDVAR(1, VAR_FORWARD_ADDR) }
39093950 YY_BREAK
3910 case 94:
3911 YY_RULE_SETUP
3912 #line 303 "util/configlexer.lex"
3951 case 96:
3952 YY_RULE_SETUP
3953 #line 305 "util/configlexer.lex"
39133954 { YDVAR(1, VAR_FORWARD_HOST) }
39143955 YY_BREAK
3915 case 95:
3916 YY_RULE_SETUP
3917 #line 304 "util/configlexer.lex"
3956 case 97:
3957 YY_RULE_SETUP
3958 #line 306 "util/configlexer.lex"
39183959 { YDVAR(1, VAR_FORWARD_FIRST) }
39193960 YY_BREAK
3920 case 96:
3921 YY_RULE_SETUP
3922 #line 305 "util/configlexer.lex"
3961 case 98:
3962 YY_RULE_SETUP
3963 #line 307 "util/configlexer.lex"
39233964 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
39243965 YY_BREAK
3925 case 97:
3926 YY_RULE_SETUP
3927 #line 306 "util/configlexer.lex"
3966 case 99:
3967 YY_RULE_SETUP
3968 #line 308 "util/configlexer.lex"
39283969 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
39293970 YY_BREAK
3930 case 98:
3931 YY_RULE_SETUP
3932 #line 307 "util/configlexer.lex"
3971 case 100:
3972 YY_RULE_SETUP
3973 #line 309 "util/configlexer.lex"
39333974 { YDVAR(0, VAR_AUTH_ZONE) }
39343975 YY_BREAK
3935 case 99:
3936 YY_RULE_SETUP
3937 #line 308 "util/configlexer.lex"
3976 case 101:
3977 YY_RULE_SETUP
3978 #line 310 "util/configlexer.lex"
39383979 { YDVAR(1, VAR_ZONEFILE) }
39393980 YY_BREAK
3940 case 100:
3941 YY_RULE_SETUP
3942 #line 309 "util/configlexer.lex"
3981 case 102:
3982 YY_RULE_SETUP
3983 #line 311 "util/configlexer.lex"
39433984 { YDVAR(1, VAR_MASTER) }
39443985 YY_BREAK
3945 case 101:
3946 YY_RULE_SETUP
3947 #line 310 "util/configlexer.lex"
3986 case 103:
3987 YY_RULE_SETUP
3988 #line 312 "util/configlexer.lex"
39483989 { YDVAR(1, VAR_URL) }
39493990 YY_BREAK
3950 case 102:
3951 YY_RULE_SETUP
3952 #line 311 "util/configlexer.lex"
3991 case 104:
3992 YY_RULE_SETUP
3993 #line 313 "util/configlexer.lex"
39533994 { YDVAR(1, VAR_ALLOW_NOTIFY) }
39543995 YY_BREAK
3955 case 103:
3956 YY_RULE_SETUP
3957 #line 312 "util/configlexer.lex"
3996 case 105:
3997 YY_RULE_SETUP
3998 #line 314 "util/configlexer.lex"
39583999 { YDVAR(1, VAR_FOR_DOWNSTREAM) }
39594000 YY_BREAK
3960 case 104:
3961 YY_RULE_SETUP
3962 #line 313 "util/configlexer.lex"
4001 case 106:
4002 YY_RULE_SETUP
4003 #line 315 "util/configlexer.lex"
39634004 { YDVAR(1, VAR_FOR_UPSTREAM) }
39644005 YY_BREAK
3965 case 105:
3966 YY_RULE_SETUP
3967 #line 314 "util/configlexer.lex"
4006 case 107:
4007 YY_RULE_SETUP
4008 #line 316 "util/configlexer.lex"
39684009 { YDVAR(1, VAR_FALLBACK_ENABLED) }
39694010 YY_BREAK
3970 case 106:
3971 YY_RULE_SETUP
3972 #line 315 "util/configlexer.lex"
4011 case 108:
4012 YY_RULE_SETUP
4013 #line 317 "util/configlexer.lex"
39734014 { YDVAR(0, VAR_VIEW) }
39744015 YY_BREAK
3975 case 107:
3976 YY_RULE_SETUP
3977 #line 316 "util/configlexer.lex"
4016 case 109:
4017 YY_RULE_SETUP
4018 #line 318 "util/configlexer.lex"
39784019 { YDVAR(1, VAR_VIEW_FIRST) }
39794020 YY_BREAK
3980 case 108:
3981 YY_RULE_SETUP
3982 #line 317 "util/configlexer.lex"
4021 case 110:
4022 YY_RULE_SETUP
4023 #line 319 "util/configlexer.lex"
39834024 { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
39844025 YY_BREAK
3985 case 109:
3986 YY_RULE_SETUP
3987 #line 318 "util/configlexer.lex"
4026 case 111:
4027 YY_RULE_SETUP
4028 #line 320 "util/configlexer.lex"
39884029 { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
39894030 YY_BREAK
3990 case 110:
3991 YY_RULE_SETUP
3992 #line 319 "util/configlexer.lex"
4031 case 112:
4032 YY_RULE_SETUP
4033 #line 321 "util/configlexer.lex"
39934034 { YDVAR(2, VAR_ACCESS_CONTROL) }
39944035 YY_BREAK
3995 case 111:
3996 YY_RULE_SETUP
3997 #line 320 "util/configlexer.lex"
4036 case 113:
4037 YY_RULE_SETUP
4038 #line 322 "util/configlexer.lex"
39984039 { YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
39994040 YY_BREAK
4000 case 112:
4001 YY_RULE_SETUP
4002 #line 321 "util/configlexer.lex"
4041 case 114:
4042 YY_RULE_SETUP
4043 #line 323 "util/configlexer.lex"
40034044 { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
40044045 YY_BREAK
4005 case 113:
4006 YY_RULE_SETUP
4007 #line 322 "util/configlexer.lex"
4046 case 115:
4047 YY_RULE_SETUP
4048 #line 324 "util/configlexer.lex"
40084049 { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
40094050 YY_BREAK
4010 case 114:
4011 YY_RULE_SETUP
4012 #line 323 "util/configlexer.lex"
4051 case 116:
4052 YY_RULE_SETUP
4053 #line 325 "util/configlexer.lex"
40134054 { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
40144055 YY_BREAK
4015 case 115:
4016 YY_RULE_SETUP
4017 #line 324 "util/configlexer.lex"
4056 case 117:
4057 YY_RULE_SETUP
4058 #line 326 "util/configlexer.lex"
40184059 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
40194060 YY_BREAK
4020 case 116:
4021 YY_RULE_SETUP
4022 #line 325 "util/configlexer.lex"
4061 case 118:
4062 YY_RULE_SETUP
4063 #line 327 "util/configlexer.lex"
40234064 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
40244065 YY_BREAK
4025 case 117:
4026 YY_RULE_SETUP
4027 #line 326 "util/configlexer.lex"
4066 case 119:
4067 YY_RULE_SETUP
4068 #line 328 "util/configlexer.lex"
40284069 { YDVAR(1, VAR_HIDE_IDENTITY) }
40294070 YY_BREAK
4030 case 118:
4031 YY_RULE_SETUP
4032 #line 327 "util/configlexer.lex"
4071 case 120:
4072 YY_RULE_SETUP
4073 #line 329 "util/configlexer.lex"
40334074 { YDVAR(1, VAR_HIDE_VERSION) }
40344075 YY_BREAK
4035 case 119:
4036 YY_RULE_SETUP
4037 #line 328 "util/configlexer.lex"
4076 case 121:
4077 YY_RULE_SETUP
4078 #line 330 "util/configlexer.lex"
40384079 { YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
40394080 YY_BREAK
4040 case 120:
4041 YY_RULE_SETUP
4042 #line 329 "util/configlexer.lex"
4081 case 122:
4082 YY_RULE_SETUP
4083 #line 331 "util/configlexer.lex"
40434084 { YDVAR(1, VAR_IDENTITY) }
40444085 YY_BREAK
4045 case 121:
4046 YY_RULE_SETUP
4047 #line 330 "util/configlexer.lex"
4086 case 123:
4087 YY_RULE_SETUP
4088 #line 332 "util/configlexer.lex"
40484089 { YDVAR(1, VAR_VERSION) }
40494090 YY_BREAK
4050 case 122:
4051 YY_RULE_SETUP
4052 #line 331 "util/configlexer.lex"
4091 case 124:
4092 YY_RULE_SETUP
4093 #line 333 "util/configlexer.lex"
40534094 { YDVAR(1, VAR_MODULE_CONF) }
40544095 YY_BREAK
4055 case 123:
4056 YY_RULE_SETUP
4057 #line 332 "util/configlexer.lex"
4096 case 125:
4097 YY_RULE_SETUP
4098 #line 334 "util/configlexer.lex"
40584099 { YDVAR(1, VAR_DLV_ANCHOR) }
40594100 YY_BREAK
4060 case 124:
4061 YY_RULE_SETUP
4062 #line 333 "util/configlexer.lex"
4101 case 126:
4102 YY_RULE_SETUP
4103 #line 335 "util/configlexer.lex"
40634104 { YDVAR(1, VAR_DLV_ANCHOR_FILE) }
40644105 YY_BREAK
4065 case 125:
4066 YY_RULE_SETUP
4067 #line 334 "util/configlexer.lex"
4106 case 127:
4107 YY_RULE_SETUP
4108 #line 336 "util/configlexer.lex"
40684109 { YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
40694110 YY_BREAK
4070 case 126:
4071 YY_RULE_SETUP
4072 #line 335 "util/configlexer.lex"
4111 case 128:
4112 YY_RULE_SETUP
4113 #line 337 "util/configlexer.lex"
40734114 { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
40744115 YY_BREAK
4075 case 127:
4076 YY_RULE_SETUP
4077 #line 336 "util/configlexer.lex"
4116 case 129:
4117 YY_RULE_SETUP
4118 #line 338 "util/configlexer.lex"
40784119 { YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
40794120 YY_BREAK
4080 case 128:
4081 YY_RULE_SETUP
4082 #line 337 "util/configlexer.lex"
4121 case 130:
4122 YY_RULE_SETUP
4123 #line 339 "util/configlexer.lex"
40834124 { YDVAR(1, VAR_TRUST_ANCHOR) }
40844125 YY_BREAK
4085 case 129:
4086 YY_RULE_SETUP
4087 #line 338 "util/configlexer.lex"
4126 case 131:
4127 YY_RULE_SETUP
4128 #line 340 "util/configlexer.lex"
40884129 { YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
40894130 YY_BREAK
4090 case 130:
4091 YY_RULE_SETUP
4092 #line 339 "util/configlexer.lex"
4131 case 132:
4132 YY_RULE_SETUP
4133 #line 341 "util/configlexer.lex"
40934134 { YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
40944135 YY_BREAK
4095 case 131:
4096 YY_RULE_SETUP
4097 #line 340 "util/configlexer.lex"
4136 case 133:
4137 YY_RULE_SETUP
4138 #line 342 "util/configlexer.lex"
40984139 { YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
40994140 YY_BREAK
4100 case 132:
4101 YY_RULE_SETUP
4102 #line 341 "util/configlexer.lex"
4141 case 134:
4142 YY_RULE_SETUP
4143 #line 343 "util/configlexer.lex"
41034144 { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
41044145 YY_BREAK
4105 case 133:
4106 YY_RULE_SETUP
4107 #line 342 "util/configlexer.lex"
4146 case 135:
4147 YY_RULE_SETUP
4148 #line 344 "util/configlexer.lex"
41084149 { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
41094150 YY_BREAK
4110 case 134:
4111 YY_RULE_SETUP
4112 #line 343 "util/configlexer.lex"
4151 case 136:
4152 YY_RULE_SETUP
4153 #line 345 "util/configlexer.lex"
41134154 { YDVAR(1, VAR_BOGUS_TTL) }
41144155 YY_BREAK
4115 case 135:
4116 YY_RULE_SETUP
4117 #line 344 "util/configlexer.lex"
4156 case 137:
4157 YY_RULE_SETUP
4158 #line 346 "util/configlexer.lex"
41184159 { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
41194160 YY_BREAK
4120 case 136:
4121 YY_RULE_SETUP
4122 #line 345 "util/configlexer.lex"
4161 case 138:
4162 YY_RULE_SETUP
4163 #line 347 "util/configlexer.lex"
41234164 { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
41244165 YY_BREAK
4125 case 137:
4126 YY_RULE_SETUP
4127 #line 346 "util/configlexer.lex"
4166 case 139:
4167 YY_RULE_SETUP
4168 #line 348 "util/configlexer.lex"
41284169 { YDVAR(1, VAR_AGGRESSIVE_NSEC) }
41294170 YY_BREAK
4130 case 138:
4131 YY_RULE_SETUP
4132 #line 347 "util/configlexer.lex"
4171 case 140:
4172 YY_RULE_SETUP
4173 #line 349 "util/configlexer.lex"
41334174 { YDVAR(1, VAR_IGNORE_CD_FLAG) }
41344175 YY_BREAK
4135 case 139:
4136 YY_RULE_SETUP
4137 #line 348 "util/configlexer.lex"
4176 case 141:
4177 YY_RULE_SETUP
4178 #line 350 "util/configlexer.lex"
41384179 { YDVAR(1, VAR_SERVE_EXPIRED) }
41394180 YY_BREAK
4140 case 140:
4141 YY_RULE_SETUP
4142 #line 349 "util/configlexer.lex"
4181 case 142:
4182 YY_RULE_SETUP
4183 #line 351 "util/configlexer.lex"
41434184 { YDVAR(1, VAR_FAKE_DSA) }
41444185 YY_BREAK
4145 case 141:
4146 YY_RULE_SETUP
4147 #line 350 "util/configlexer.lex"
4186 case 143:
4187 YY_RULE_SETUP
4188 #line 352 "util/configlexer.lex"
41484189 { YDVAR(1, VAR_FAKE_SHA1) }
41494190 YY_BREAK
4150 case 142:
4151 YY_RULE_SETUP
4152 #line 351 "util/configlexer.lex"
4191 case 144:
4192 YY_RULE_SETUP
4193 #line 353 "util/configlexer.lex"
41534194 { YDVAR(1, VAR_VAL_LOG_LEVEL) }
41544195 YY_BREAK
4155 case 143:
4156 YY_RULE_SETUP
4157 #line 352 "util/configlexer.lex"
4196 case 145:
4197 YY_RULE_SETUP
4198 #line 354 "util/configlexer.lex"
41584199 { YDVAR(1, VAR_KEY_CACHE_SIZE) }
41594200 YY_BREAK
4160 case 144:
4161 YY_RULE_SETUP
4162 #line 353 "util/configlexer.lex"
4201 case 146:
4202 YY_RULE_SETUP
4203 #line 355 "util/configlexer.lex"
41634204 { YDVAR(1, VAR_KEY_CACHE_SLABS) }
41644205 YY_BREAK
4165 case 145:
4166 YY_RULE_SETUP
4167 #line 354 "util/configlexer.lex"
4206 case 147:
4207 YY_RULE_SETUP
4208 #line 356 "util/configlexer.lex"
41684209 { YDVAR(1, VAR_NEG_CACHE_SIZE) }
41694210 YY_BREAK
4170 case 146:
4171 YY_RULE_SETUP
4172 #line 355 "util/configlexer.lex"
4211 case 148:
4212 YY_RULE_SETUP
4213 #line 357 "util/configlexer.lex"
41734214 {
41744215 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
41754216 YY_BREAK
4176 case 147:
4177 YY_RULE_SETUP
4178 #line 357 "util/configlexer.lex"
4217 case 149:
4218 YY_RULE_SETUP
4219 #line 359 "util/configlexer.lex"
41794220 { YDVAR(1, VAR_ADD_HOLDDOWN) }
41804221 YY_BREAK
4181 case 148:
4182 YY_RULE_SETUP
4183 #line 358 "util/configlexer.lex"
4222 case 150:
4223 YY_RULE_SETUP
4224 #line 360 "util/configlexer.lex"
41844225 { YDVAR(1, VAR_DEL_HOLDDOWN) }
41854226 YY_BREAK
4186 case 149:
4187 YY_RULE_SETUP
4188 #line 359 "util/configlexer.lex"
4227 case 151:
4228 YY_RULE_SETUP
4229 #line 361 "util/configlexer.lex"
41894230 { YDVAR(1, VAR_KEEP_MISSING) }
41904231 YY_BREAK
4191 case 150:
4192 YY_RULE_SETUP
4193 #line 360 "util/configlexer.lex"
4232 case 152:
4233 YY_RULE_SETUP
4234 #line 362 "util/configlexer.lex"
41944235 { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
41954236 YY_BREAK
4196 case 151:
4197 YY_RULE_SETUP
4198 #line 361 "util/configlexer.lex"
4237 case 153:
4238 YY_RULE_SETUP
4239 #line 363 "util/configlexer.lex"
41994240 { YDVAR(1, VAR_USE_SYSLOG) }
42004241 YY_BREAK
4201 case 152:
4202 YY_RULE_SETUP
4203 #line 362 "util/configlexer.lex"
4242 case 154:
4243 YY_RULE_SETUP
4244 #line 364 "util/configlexer.lex"
42044245 { YDVAR(1, VAR_LOG_IDENTITY) }
42054246 YY_BREAK
4206 case 153:
4207 YY_RULE_SETUP
4208 #line 363 "util/configlexer.lex"
4247 case 155:
4248 YY_RULE_SETUP
4249 #line 365 "util/configlexer.lex"
42094250 { YDVAR(1, VAR_LOG_TIME_ASCII) }
42104251 YY_BREAK
4211 case 154:
4212 YY_RULE_SETUP
4213 #line 364 "util/configlexer.lex"
4252 case 156:
4253 YY_RULE_SETUP
4254 #line 366 "util/configlexer.lex"
42144255 { YDVAR(1, VAR_LOG_QUERIES) }
42154256 YY_BREAK
4216 case 155:
4217 YY_RULE_SETUP
4218 #line 365 "util/configlexer.lex"
4257 case 157:
4258 YY_RULE_SETUP
4259 #line 367 "util/configlexer.lex"
42194260 { YDVAR(1, VAR_LOG_REPLIES) }
42204261 YY_BREAK
4221 case 156:
4222 YY_RULE_SETUP
4223 #line 366 "util/configlexer.lex"
4262 case 158:
4263 YY_RULE_SETUP
4264 #line 368 "util/configlexer.lex"
42244265 { YDVAR(2, VAR_LOCAL_ZONE) }
42254266 YY_BREAK
4226 case 157:
4227 YY_RULE_SETUP
4228 #line 367 "util/configlexer.lex"
4267 case 159:
4268 YY_RULE_SETUP
4269 #line 369 "util/configlexer.lex"
42294270 { YDVAR(1, VAR_LOCAL_DATA) }
42304271 YY_BREAK
4231 case 158:
4232 YY_RULE_SETUP
4233 #line 368 "util/configlexer.lex"
4272 case 160:
4273 YY_RULE_SETUP
4274 #line 370 "util/configlexer.lex"
42344275 { YDVAR(1, VAR_LOCAL_DATA_PTR) }
42354276 YY_BREAK
4236 case 159:
4237 YY_RULE_SETUP
4238 #line 369 "util/configlexer.lex"
4277 case 161:
4278 YY_RULE_SETUP
4279 #line 371 "util/configlexer.lex"
42394280 { YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
42404281 YY_BREAK
4241 case 160:
4242 YY_RULE_SETUP
4243 #line 370 "util/configlexer.lex"
4282 case 162:
4283 YY_RULE_SETUP
4284 #line 372 "util/configlexer.lex"
42444285 { YDVAR(1, VAR_INSECURE_LAN_ZONES) }
42454286 YY_BREAK
4246 case 161:
4247 YY_RULE_SETUP
4248 #line 371 "util/configlexer.lex"
4287 case 163:
4288 YY_RULE_SETUP
4289 #line 373 "util/configlexer.lex"
42494290 { YDVAR(1, VAR_STATISTICS_INTERVAL) }
42504291 YY_BREAK
4251 case 162:
4252 YY_RULE_SETUP
4253 #line 372 "util/configlexer.lex"
4292 case 164:
4293 YY_RULE_SETUP
4294 #line 374 "util/configlexer.lex"
42544295 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
42554296 YY_BREAK
4256 case 163:
4257 YY_RULE_SETUP
4258 #line 373 "util/configlexer.lex"
4297 case 165:
4298 YY_RULE_SETUP
4299 #line 375 "util/configlexer.lex"
42594300 { YDVAR(1, VAR_EXTENDED_STATISTICS) }
42604301 YY_BREAK
4261 case 164:
4262 YY_RULE_SETUP
4263 #line 374 "util/configlexer.lex"
4302 case 166:
4303 YY_RULE_SETUP
4304 #line 376 "util/configlexer.lex"
42644305 { YDVAR(1, VAR_SHM_ENABLE) }
42654306 YY_BREAK
4266 case 165:
4267 YY_RULE_SETUP
4268 #line 375 "util/configlexer.lex"
4307 case 167:
4308 YY_RULE_SETUP
4309 #line 377 "util/configlexer.lex"
42694310 { YDVAR(1, VAR_SHM_KEY) }
42704311 YY_BREAK
4271 case 166:
4272 YY_RULE_SETUP
4273 #line 376 "util/configlexer.lex"
4312 case 168:
4313 YY_RULE_SETUP
4314 #line 378 "util/configlexer.lex"
42744315 { YDVAR(0, VAR_REMOTE_CONTROL) }
42754316 YY_BREAK
4276 case 167:
4277 YY_RULE_SETUP
4278 #line 377 "util/configlexer.lex"
4317 case 169:
4318 YY_RULE_SETUP
4319 #line 379 "util/configlexer.lex"
42794320 { YDVAR(1, VAR_CONTROL_ENABLE) }
42804321 YY_BREAK
4281 case 168:
4282 YY_RULE_SETUP
4283 #line 378 "util/configlexer.lex"
4322 case 170:
4323 YY_RULE_SETUP
4324 #line 380 "util/configlexer.lex"
42844325 { YDVAR(1, VAR_CONTROL_INTERFACE) }
42854326 YY_BREAK
4286 case 169:
4287 YY_RULE_SETUP
4288 #line 379 "util/configlexer.lex"
4327 case 171:
4328 YY_RULE_SETUP
4329 #line 381 "util/configlexer.lex"
42894330 { YDVAR(1, VAR_CONTROL_PORT) }
42904331 YY_BREAK
4291 case 170:
4292 YY_RULE_SETUP
4293 #line 380 "util/configlexer.lex"
4332 case 172:
4333 YY_RULE_SETUP
4334 #line 382 "util/configlexer.lex"
42944335 { YDVAR(1, VAR_CONTROL_USE_CERT) }
42954336 YY_BREAK
4296 case 171:
4297 YY_RULE_SETUP
4298 #line 381 "util/configlexer.lex"
4337 case 173:
4338 YY_RULE_SETUP
4339 #line 383 "util/configlexer.lex"
42994340 { YDVAR(1, VAR_SERVER_KEY_FILE) }
43004341 YY_BREAK
4301 case 172:
4302 YY_RULE_SETUP
4303 #line 382 "util/configlexer.lex"
4342 case 174:
4343 YY_RULE_SETUP
4344 #line 384 "util/configlexer.lex"
43044345 { YDVAR(1, VAR_SERVER_CERT_FILE) }
43054346 YY_BREAK
4306 case 173:
4307 YY_RULE_SETUP
4308 #line 383 "util/configlexer.lex"
4347 case 175:
4348 YY_RULE_SETUP
4349 #line 385 "util/configlexer.lex"
43094350 { YDVAR(1, VAR_CONTROL_KEY_FILE) }
43104351 YY_BREAK
4311 case 174:
4312 YY_RULE_SETUP
4313 #line 384 "util/configlexer.lex"
4352 case 176:
4353 YY_RULE_SETUP
4354 #line 386 "util/configlexer.lex"
43144355 { YDVAR(1, VAR_CONTROL_CERT_FILE) }
43154356 YY_BREAK
4316 case 175:
4317 YY_RULE_SETUP
4318 #line 385 "util/configlexer.lex"
4357 case 177:
4358 YY_RULE_SETUP
4359 #line 387 "util/configlexer.lex"
43194360 { YDVAR(1, VAR_PYTHON_SCRIPT) }
43204361 YY_BREAK
4321 case 176:
4322 YY_RULE_SETUP
4323 #line 386 "util/configlexer.lex"
4362 case 178:
4363 YY_RULE_SETUP
4364 #line 388 "util/configlexer.lex"
43244365 { YDVAR(0, VAR_PYTHON) }
43254366 YY_BREAK
4326 case 177:
4327 YY_RULE_SETUP
4328 #line 387 "util/configlexer.lex"
4367 case 179:
4368 YY_RULE_SETUP
4369 #line 389 "util/configlexer.lex"
43294370 { YDVAR(1, VAR_DOMAIN_INSECURE) }
43304371 YY_BREAK
4331 case 178:
4332 YY_RULE_SETUP
4333 #line 388 "util/configlexer.lex"
4372 case 180:
4373 YY_RULE_SETUP
4374 #line 390 "util/configlexer.lex"
43344375 { YDVAR(1, VAR_MINIMAL_RESPONSES) }
43354376 YY_BREAK
4336 case 179:
4337 YY_RULE_SETUP
4338 #line 389 "util/configlexer.lex"
4377 case 181:
4378 YY_RULE_SETUP
4379 #line 391 "util/configlexer.lex"
43394380 { YDVAR(1, VAR_RRSET_ROUNDROBIN) }
43404381 YY_BREAK
4341 case 180:
4342 YY_RULE_SETUP
4343 #line 390 "util/configlexer.lex"
4382 case 182:
4383 YY_RULE_SETUP
4384 #line 392 "util/configlexer.lex"
43444385 { YDVAR(1, VAR_MAX_UDP_SIZE) }
43454386 YY_BREAK
4346 case 181:
4347 YY_RULE_SETUP
4348 #line 391 "util/configlexer.lex"
4387 case 183:
4388 YY_RULE_SETUP
4389 #line 393 "util/configlexer.lex"
43494390 { YDVAR(1, VAR_DNS64_PREFIX) }
43504391 YY_BREAK
4351 case 182:
4352 YY_RULE_SETUP
4353 #line 392 "util/configlexer.lex"
4392 case 184:
4393 YY_RULE_SETUP
4394 #line 394 "util/configlexer.lex"
43544395 { YDVAR(1, VAR_DNS64_SYNTHALL) }
43554396 YY_BREAK
4356 case 183:
4357 YY_RULE_SETUP
4358 #line 393 "util/configlexer.lex"
4397 case 185:
4398 YY_RULE_SETUP
4399 #line 395 "util/configlexer.lex"
43594400 { YDVAR(1, VAR_DEFINE_TAG) }
43604401 YY_BREAK
4361 case 184:
4362 YY_RULE_SETUP
4363 #line 394 "util/configlexer.lex"
4402 case 186:
4403 YY_RULE_SETUP
4404 #line 396 "util/configlexer.lex"
43644405 { YDVAR(2, VAR_LOCAL_ZONE_TAG) }
43654406 YY_BREAK
4366 case 185:
4367 YY_RULE_SETUP
4368 #line 395 "util/configlexer.lex"
4407 case 187:
4408 YY_RULE_SETUP
4409 #line 397 "util/configlexer.lex"
43694410 { YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
43704411 YY_BREAK
4371 case 186:
4372 YY_RULE_SETUP
4373 #line 396 "util/configlexer.lex"
4412 case 188:
4413 YY_RULE_SETUP
4414 #line 398 "util/configlexer.lex"
43744415 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
43754416 YY_BREAK
4376 case 187:
4377 YY_RULE_SETUP
4378 #line 397 "util/configlexer.lex"
4417 case 189:
4418 YY_RULE_SETUP
4419 #line 399 "util/configlexer.lex"
43794420 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
43804421 YY_BREAK
4381 case 188:
4382 YY_RULE_SETUP
4383 #line 398 "util/configlexer.lex"
4422 case 190:
4423 YY_RULE_SETUP
4424 #line 400 "util/configlexer.lex"
43844425 { YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
43854426 YY_BREAK
4386 case 189:
4387 YY_RULE_SETUP
4388 #line 399 "util/configlexer.lex"
4427 case 191:
4428 YY_RULE_SETUP
4429 #line 401 "util/configlexer.lex"
43894430 { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
43904431 YY_BREAK
4391 case 190:
4392 YY_RULE_SETUP
4393 #line 400 "util/configlexer.lex"
4432 case 192:
4433 YY_RULE_SETUP
4434 #line 402 "util/configlexer.lex"
43944435 { YDVAR(0, VAR_DNSTAP) }
43954436 YY_BREAK
4396 case 191:
4397 YY_RULE_SETUP
4398 #line 401 "util/configlexer.lex"
4437 case 193:
4438 YY_RULE_SETUP
4439 #line 403 "util/configlexer.lex"
43994440 { YDVAR(1, VAR_DNSTAP_ENABLE) }
44004441 YY_BREAK
4401 case 192:
4402 YY_RULE_SETUP
4403 #line 402 "util/configlexer.lex"
4442 case 194:
4443 YY_RULE_SETUP
4444 #line 404 "util/configlexer.lex"
44044445 { YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
44054446 YY_BREAK
4406 case 193:
4407 YY_RULE_SETUP
4408 #line 403 "util/configlexer.lex"
4447 case 195:
4448 YY_RULE_SETUP
4449 #line 405 "util/configlexer.lex"
44094450 { YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
44104451 YY_BREAK
4411 case 194:
4412 YY_RULE_SETUP
4413 #line 404 "util/configlexer.lex"
4452 case 196:
4453 YY_RULE_SETUP
4454 #line 406 "util/configlexer.lex"
44144455 { YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
44154456 YY_BREAK
4416 case 195:
4417 YY_RULE_SETUP
4418 #line 405 "util/configlexer.lex"
4457 case 197:
4458 YY_RULE_SETUP
4459 #line 407 "util/configlexer.lex"
44194460 { YDVAR(1, VAR_DNSTAP_IDENTITY) }
44204461 YY_BREAK
4421 case 196:
4422 YY_RULE_SETUP
4423 #line 406 "util/configlexer.lex"
4462 case 198:
4463 YY_RULE_SETUP
4464 #line 408 "util/configlexer.lex"
44244465 { YDVAR(1, VAR_DNSTAP_VERSION) }
44254466 YY_BREAK
4426 case 197:
4427 YY_RULE_SETUP
4428 #line 407 "util/configlexer.lex"
4467 case 199:
4468 YY_RULE_SETUP
4469 #line 409 "util/configlexer.lex"
44294470 {
44304471 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
44314472 YY_BREAK
4432 case 198:
4433 YY_RULE_SETUP
4434 #line 409 "util/configlexer.lex"
4473 case 200:
4474 YY_RULE_SETUP
4475 #line 411 "util/configlexer.lex"
44354476 {
44364477 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
44374478 YY_BREAK
4438 case 199:
4439 YY_RULE_SETUP
4440 #line 411 "util/configlexer.lex"
4479 case 201:
4480 YY_RULE_SETUP
4481 #line 413 "util/configlexer.lex"
44414482 {
44424483 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
44434484 YY_BREAK
4444 case 200:
4445 YY_RULE_SETUP
4446 #line 413 "util/configlexer.lex"
4485 case 202:
4486 YY_RULE_SETUP
4487 #line 415 "util/configlexer.lex"
44474488 {
44484489 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
44494490 YY_BREAK
4450 case 201:
4451 YY_RULE_SETUP
4452 #line 415 "util/configlexer.lex"
4491 case 203:
4492 YY_RULE_SETUP
4493 #line 417 "util/configlexer.lex"
44534494 {
44544495 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
44554496 YY_BREAK
4456 case 202:
4457 YY_RULE_SETUP
4458 #line 417 "util/configlexer.lex"
4497 case 204:
4498 YY_RULE_SETUP
4499 #line 419 "util/configlexer.lex"
44594500 {
44604501 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
44614502 YY_BREAK
4462 case 203:
4463 YY_RULE_SETUP
4464 #line 419 "util/configlexer.lex"
4503 case 205:
4504 YY_RULE_SETUP
4505 #line 421 "util/configlexer.lex"
44654506 { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
44664507 YY_BREAK
4467 case 204:
4468 YY_RULE_SETUP
4469 #line 420 "util/configlexer.lex"
4508 case 206:
4509 YY_RULE_SETUP
4510 #line 422 "util/configlexer.lex"
44704511 { YDVAR(1, VAR_IP_RATELIMIT) }
44714512 YY_BREAK
4472 case 205:
4473 YY_RULE_SETUP
4474 #line 421 "util/configlexer.lex"
4513 case 207:
4514 YY_RULE_SETUP
4515 #line 423 "util/configlexer.lex"
44754516 { YDVAR(1, VAR_RATELIMIT) }
44764517 YY_BREAK
4477 case 206:
4478 YY_RULE_SETUP
4479 #line 422 "util/configlexer.lex"
4518 case 208:
4519 YY_RULE_SETUP
4520 #line 424 "util/configlexer.lex"
44804521 { YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
44814522 YY_BREAK
4482 case 207:
4483 YY_RULE_SETUP
4484 #line 423 "util/configlexer.lex"
4523 case 209:
4524 YY_RULE_SETUP
4525 #line 425 "util/configlexer.lex"
44854526 { YDVAR(1, VAR_RATELIMIT_SLABS) }
44864527 YY_BREAK
4487 case 208:
4488 YY_RULE_SETUP
4489 #line 424 "util/configlexer.lex"
4528 case 210:
4529 YY_RULE_SETUP
4530 #line 426 "util/configlexer.lex"
44904531 { YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
44914532 YY_BREAK
4492 case 209:
4493 YY_RULE_SETUP
4494 #line 425 "util/configlexer.lex"
4533 case 211:
4534 YY_RULE_SETUP
4535 #line 427 "util/configlexer.lex"
44954536 { YDVAR(1, VAR_RATELIMIT_SIZE) }
44964537 YY_BREAK
4497 case 210:
4498 YY_RULE_SETUP
4499 #line 426 "util/configlexer.lex"
4538 case 212:
4539 YY_RULE_SETUP
4540 #line 428 "util/configlexer.lex"
45004541 { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
45014542 YY_BREAK
4502 case 211:
4503 YY_RULE_SETUP
4504 #line 427 "util/configlexer.lex"
4543 case 213:
4544 YY_RULE_SETUP
4545 #line 429 "util/configlexer.lex"
45054546 { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
45064547 YY_BREAK
4507 case 212:
4508 YY_RULE_SETUP
4509 #line 428 "util/configlexer.lex"
4548 case 214:
4549 YY_RULE_SETUP
4550 #line 430 "util/configlexer.lex"
45104551 { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
45114552 YY_BREAK
4512 case 213:
4513 YY_RULE_SETUP
4514 #line 429 "util/configlexer.lex"
4553 case 215:
4554 YY_RULE_SETUP
4555 #line 431 "util/configlexer.lex"
45154556 { YDVAR(1, VAR_RATELIMIT_FACTOR) }
45164557 YY_BREAK
4517 case 214:
4518 YY_RULE_SETUP
4519 #line 430 "util/configlexer.lex"
4558 case 216:
4559 YY_RULE_SETUP
4560 #line 432 "util/configlexer.lex"
45204561 { YDVAR(1, VAR_LOW_RTT) }
45214562 YY_BREAK
4522 case 215:
4523 YY_RULE_SETUP
4524 #line 431 "util/configlexer.lex"
4525 { YDVAR(1, VAR_LOW_RTT_PCT) }
4526 YY_BREAK
4527 case 216:
4528 YY_RULE_SETUP
4529 #line 432 "util/configlexer.lex"
4563 case 217:
4564 YY_RULE_SETUP
4565 #line 433 "util/configlexer.lex"
4566 { YDVAR(1, VAR_LOW_RTT_PERMIL) }
4567 YY_BREAK
4568 case 218:
4569 YY_RULE_SETUP
4570 #line 434 "util/configlexer.lex"
4571 { YDVAR(1, VAR_LOW_RTT_PERMIL) }
4572 YY_BREAK
4573 case 219:
4574 YY_RULE_SETUP
4575 #line 435 "util/configlexer.lex"
45304576 { YDVAR(2, VAR_RESPONSE_IP_TAG) }
45314577 YY_BREAK
4532 case 217:
4533 YY_RULE_SETUP
4534 #line 433 "util/configlexer.lex"
4578 case 220:
4579 YY_RULE_SETUP
4580 #line 436 "util/configlexer.lex"
45354581 { YDVAR(2, VAR_RESPONSE_IP) }
45364582 YY_BREAK
4537 case 218:
4538 YY_RULE_SETUP
4539 #line 434 "util/configlexer.lex"
4583 case 221:
4584 YY_RULE_SETUP
4585 #line 437 "util/configlexer.lex"
45404586 { YDVAR(2, VAR_RESPONSE_IP_DATA) }
45414587 YY_BREAK
4542 case 219:
4543 YY_RULE_SETUP
4544 #line 435 "util/configlexer.lex"
4588 case 222:
4589 YY_RULE_SETUP
4590 #line 438 "util/configlexer.lex"
45454591 { YDVAR(0, VAR_DNSCRYPT) }
45464592 YY_BREAK
4547 case 220:
4548 YY_RULE_SETUP
4549 #line 436 "util/configlexer.lex"
4593 case 223:
4594 YY_RULE_SETUP
4595 #line 439 "util/configlexer.lex"
45504596 { YDVAR(1, VAR_DNSCRYPT_ENABLE) }
45514597 YY_BREAK
4552 case 221:
4553 YY_RULE_SETUP
4554 #line 437 "util/configlexer.lex"
4598 case 224:
4599 YY_RULE_SETUP
4600 #line 440 "util/configlexer.lex"
45554601 { YDVAR(1, VAR_DNSCRYPT_PORT) }
45564602 YY_BREAK
4557 case 222:
4558 YY_RULE_SETUP
4559 #line 438 "util/configlexer.lex"
4603 case 225:
4604 YY_RULE_SETUP
4605 #line 441 "util/configlexer.lex"
45604606 { YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
45614607 YY_BREAK
4562 case 223:
4563 YY_RULE_SETUP
4564 #line 439 "util/configlexer.lex"
4608 case 226:
4609 YY_RULE_SETUP
4610 #line 442 "util/configlexer.lex"
45654611 { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
45664612 YY_BREAK
4567 case 224:
4568 YY_RULE_SETUP
4569 #line 440 "util/configlexer.lex"
4613 case 227:
4614 YY_RULE_SETUP
4615 #line 443 "util/configlexer.lex"
45704616 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
45714617 YY_BREAK
4572 case 225:
4573 YY_RULE_SETUP
4574 #line 441 "util/configlexer.lex"
4618 case 228:
4619 YY_RULE_SETUP
4620 #line 444 "util/configlexer.lex"
45754621 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
45764622 YY_BREAK
4577 case 226:
4578 YY_RULE_SETUP
4579 #line 442 "util/configlexer.lex"
4623 case 229:
4624 YY_RULE_SETUP
4625 #line 445 "util/configlexer.lex"
45804626 {
45814627 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
45824628 YY_BREAK
4583 case 227:
4584 YY_RULE_SETUP
4585 #line 444 "util/configlexer.lex"
4629 case 230:
4630 YY_RULE_SETUP
4631 #line 447 "util/configlexer.lex"
45864632 {
45874633 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
45884634 YY_BREAK
4589 case 228:
4590 YY_RULE_SETUP
4591 #line 446 "util/configlexer.lex"
4635 case 231:
4636 YY_RULE_SETUP
4637 #line 449 "util/configlexer.lex"
45924638 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
45934639 YY_BREAK
4594 case 229:
4595 YY_RULE_SETUP
4596 #line 447 "util/configlexer.lex"
4640 case 232:
4641 YY_RULE_SETUP
4642 #line 450 "util/configlexer.lex"
45974643 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
45984644 YY_BREAK
4599 case 230:
4600 YY_RULE_SETUP
4601 #line 448 "util/configlexer.lex"
4645 case 233:
4646 YY_RULE_SETUP
4647 #line 451 "util/configlexer.lex"
46024648 { YDVAR(1, VAR_IPSECMOD_ENABLED) }
46034649 YY_BREAK
4604 case 231:
4605 YY_RULE_SETUP
4606 #line 449 "util/configlexer.lex"
4650 case 234:
4651 YY_RULE_SETUP
4652 #line 452 "util/configlexer.lex"
46074653 { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
46084654 YY_BREAK
4609 case 232:
4610 YY_RULE_SETUP
4611 #line 450 "util/configlexer.lex"
4655 case 235:
4656 YY_RULE_SETUP
4657 #line 453 "util/configlexer.lex"
46124658 { YDVAR(1, VAR_IPSECMOD_HOOK) }
46134659 YY_BREAK
4614 case 233:
4615 YY_RULE_SETUP
4616 #line 451 "util/configlexer.lex"
4660 case 236:
4661 YY_RULE_SETUP
4662 #line 454 "util/configlexer.lex"
46174663 { YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
46184664 YY_BREAK
4619 case 234:
4620 YY_RULE_SETUP
4621 #line 452 "util/configlexer.lex"
4665 case 237:
4666 YY_RULE_SETUP
4667 #line 455 "util/configlexer.lex"
46224668 { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
46234669 YY_BREAK
4624 case 235:
4625 YY_RULE_SETUP
4626 #line 453 "util/configlexer.lex"
4670 case 238:
4671 YY_RULE_SETUP
4672 #line 456 "util/configlexer.lex"
46274673 { YDVAR(1, VAR_IPSECMOD_STRICT) }
46284674 YY_BREAK
4629 case 236:
4630 YY_RULE_SETUP
4631 #line 454 "util/configlexer.lex"
4675 case 239:
4676 YY_RULE_SETUP
4677 #line 457 "util/configlexer.lex"
46324678 { YDVAR(0, VAR_CACHEDB) }
46334679 YY_BREAK
4634 case 237:
4635 YY_RULE_SETUP
4636 #line 455 "util/configlexer.lex"
4680 case 240:
4681 YY_RULE_SETUP
4682 #line 458 "util/configlexer.lex"
46374683 { YDVAR(1, VAR_CACHEDB_BACKEND) }
46384684 YY_BREAK
4639 case 238:
4640 YY_RULE_SETUP
4641 #line 456 "util/configlexer.lex"
4685 case 241:
4686 YY_RULE_SETUP
4687 #line 459 "util/configlexer.lex"
46424688 { YDVAR(1, VAR_CACHEDB_SECRETSEED) }
46434689 YY_BREAK
4644 case 239:
4645 YY_RULE_SETUP
4646 #line 457 "util/configlexer.lex"
4690 case 242:
4691 YY_RULE_SETUP
4692 #line 460 "util/configlexer.lex"
46474693 { YDVAR(1, VAR_CACHEDB_REDISHOST) }
46484694 YY_BREAK
4649 case 240:
4650 YY_RULE_SETUP
4651 #line 458 "util/configlexer.lex"
4695 case 243:
4696 YY_RULE_SETUP
4697 #line 461 "util/configlexer.lex"
46524698 { YDVAR(1, VAR_CACHEDB_REDISPORT) }
46534699 YY_BREAK
4654 case 241:
4655 YY_RULE_SETUP
4656 #line 459 "util/configlexer.lex"
4700 case 244:
4701 YY_RULE_SETUP
4702 #line 462 "util/configlexer.lex"
46574703 { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
46584704 YY_BREAK
4659 case 242:
4660 YY_RULE_SETUP
4661 #line 460 "util/configlexer.lex"
4705 case 245:
4706 YY_RULE_SETUP
4707 #line 463 "util/configlexer.lex"
46624708 { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
46634709 YY_BREAK
4664 case 243:
4665 /* rule 243 can match eol */
4666 YY_RULE_SETUP
4667 #line 461 "util/configlexer.lex"
4710 case 246:
4711 /* rule 246 can match eol */
4712 YY_RULE_SETUP
4713 #line 464 "util/configlexer.lex"
46684714 { LEXOUT(("NL\n")); cfg_parser->line++; }
46694715 YY_BREAK
46704716 /* Quoted strings. Strip leading and ending quotes */
4671 case 244:
4672 YY_RULE_SETUP
4673 #line 464 "util/configlexer.lex"
4717 case 247:
4718 YY_RULE_SETUP
4719 #line 467 "util/configlexer.lex"
46744720 { BEGIN(quotedstring); LEXOUT(("QS ")); }
46754721 YY_BREAK
46764722 case YY_STATE_EOF(quotedstring):
4677 #line 465 "util/configlexer.lex"
4723 #line 468 "util/configlexer.lex"
46784724 {
46794725 yyerror("EOF inside quoted string");
46804726 if(--num_args == 0) { BEGIN(INITIAL); }
46814727 else { BEGIN(val); }
46824728 }
46834729 YY_BREAK
4684 case 245:
4685 YY_RULE_SETUP
4686 #line 470 "util/configlexer.lex"
4730 case 248:
4731 YY_RULE_SETUP
4732 #line 473 "util/configlexer.lex"
46874733 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
46884734 YY_BREAK
4689 case 246:
4690 /* rule 246 can match eol */
4691 YY_RULE_SETUP
4692 #line 471 "util/configlexer.lex"
4735 case 249:
4736 /* rule 249 can match eol */
4737 YY_RULE_SETUP
4738 #line 474 "util/configlexer.lex"
46934739 { yyerror("newline inside quoted string, no end \"");
46944740 cfg_parser->line++; BEGIN(INITIAL); }
46954741 YY_BREAK
4696 case 247:
4697 YY_RULE_SETUP
4698 #line 473 "util/configlexer.lex"
4742 case 250:
4743 YY_RULE_SETUP
4744 #line 476 "util/configlexer.lex"
46994745 {
47004746 LEXOUT(("QE "));
47014747 if(--num_args == 0) { BEGIN(INITIAL); }
47084754 }
47094755 YY_BREAK
47104756 /* Single Quoted strings. Strip leading and ending quotes */
4711 case 248:
4712 YY_RULE_SETUP
4713 #line 485 "util/configlexer.lex"
4757 case 251:
4758 YY_RULE_SETUP
4759 #line 488 "util/configlexer.lex"
47144760 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
47154761 YY_BREAK
47164762 case YY_STATE_EOF(singlequotedstr):
4717 #line 486 "util/configlexer.lex"
4763 #line 489 "util/configlexer.lex"
47184764 {
47194765 yyerror("EOF inside quoted string");
47204766 if(--num_args == 0) { BEGIN(INITIAL); }
47214767 else { BEGIN(val); }
47224768 }
47234769 YY_BREAK
4724 case 249:
4725 YY_RULE_SETUP
4726 #line 491 "util/configlexer.lex"
4770 case 252:
4771 YY_RULE_SETUP
4772 #line 494 "util/configlexer.lex"
47274773 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
47284774 YY_BREAK
4729 case 250:
4730 /* rule 250 can match eol */
4731 YY_RULE_SETUP
4732 #line 492 "util/configlexer.lex"
4775 case 253:
4776 /* rule 253 can match eol */
4777 YY_RULE_SETUP
4778 #line 495 "util/configlexer.lex"
47334779 { yyerror("newline inside quoted string, no end '");
47344780 cfg_parser->line++; BEGIN(INITIAL); }
47354781 YY_BREAK
4736 case 251:
4737 YY_RULE_SETUP
4738 #line 494 "util/configlexer.lex"
4782 case 254:
4783 YY_RULE_SETUP
4784 #line 497 "util/configlexer.lex"
47394785 {
47404786 LEXOUT(("SQE "));
47414787 if(--num_args == 0) { BEGIN(INITIAL); }
47484794 }
47494795 YY_BREAK
47504796 /* include: directive */
4751 case 252:
4752 YY_RULE_SETUP
4753 #line 506 "util/configlexer.lex"
4797 case 255:
4798 YY_RULE_SETUP
4799 #line 509 "util/configlexer.lex"
47544800 {
47554801 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
47564802 YY_BREAK
47574803 case YY_STATE_EOF(include):
4758 #line 508 "util/configlexer.lex"
4804 #line 511 "util/configlexer.lex"
47594805 {
47604806 yyerror("EOF inside include directive");
47614807 BEGIN(inc_prev);
47624808 }
47634809 YY_BREAK
4764 case 253:
4765 YY_RULE_SETUP
4766 #line 512 "util/configlexer.lex"
4810 case 256:
4811 YY_RULE_SETUP
4812 #line 515 "util/configlexer.lex"
47674813 { LEXOUT(("ISP ")); /* ignore */ }
47684814 YY_BREAK
4769 case 254:
4770 /* rule 254 can match eol */
4771 YY_RULE_SETUP
4772 #line 513 "util/configlexer.lex"
4815 case 257:
4816 /* rule 257 can match eol */
4817 YY_RULE_SETUP
4818 #line 516 "util/configlexer.lex"
47734819 { LEXOUT(("NL\n")); cfg_parser->line++;}
47744820 YY_BREAK
4775 case 255:
4776 YY_RULE_SETUP
4777 #line 514 "util/configlexer.lex"
4821 case 258:
4822 YY_RULE_SETUP
4823 #line 517 "util/configlexer.lex"
47784824 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
47794825 YY_BREAK
4780 case 256:
4781 YY_RULE_SETUP
4782 #line 515 "util/configlexer.lex"
4826 case 259:
4827 YY_RULE_SETUP
4828 #line 518 "util/configlexer.lex"
47834829 {
47844830 LEXOUT(("Iunquotedstr(%s) ", yytext));
47854831 config_start_include_glob(yytext);
47874833 }
47884834 YY_BREAK
47894835 case YY_STATE_EOF(include_quoted):
4790 #line 520 "util/configlexer.lex"
4836 #line 523 "util/configlexer.lex"
47914837 {
47924838 yyerror("EOF inside quoted string");
47934839 BEGIN(inc_prev);
47944840 }
47954841 YY_BREAK
4796 case 257:
4797 YY_RULE_SETUP
4798 #line 524 "util/configlexer.lex"
4842 case 260:
4843 YY_RULE_SETUP
4844 #line 527 "util/configlexer.lex"
47994845 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
48004846 YY_BREAK
4801 case 258:
4802 /* rule 258 can match eol */
4803 YY_RULE_SETUP
4804 #line 525 "util/configlexer.lex"
4847 case 261:
4848 /* rule 261 can match eol */
4849 YY_RULE_SETUP
4850 #line 528 "util/configlexer.lex"
48054851 { yyerror("newline before \" in include name");
48064852 cfg_parser->line++; BEGIN(inc_prev); }
48074853 YY_BREAK
4808 case 259:
4809 YY_RULE_SETUP
4810 #line 527 "util/configlexer.lex"
4854 case 262:
4855 YY_RULE_SETUP
4856 #line 530 "util/configlexer.lex"
48114857 {
48124858 LEXOUT(("IQE "));
48134859 yytext[yyleng - 1] = '\0';
48174863 YY_BREAK
48184864 case YY_STATE_EOF(INITIAL):
48194865 case YY_STATE_EOF(val):
4820 #line 533 "util/configlexer.lex"
4866 #line 536 "util/configlexer.lex"
48214867 {
48224868 LEXOUT(("LEXEOF "));
48234869 yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
48294875 }
48304876 }
48314877 YY_BREAK
4832 case 260:
4833 YY_RULE_SETUP
4834 #line 544 "util/configlexer.lex"
4878 case 263:
4879 YY_RULE_SETUP
4880 #line 547 "util/configlexer.lex"
48354881 { LEXOUT(("unquotedstr(%s) ", yytext));
48364882 if(--num_args == 0) { BEGIN(INITIAL); }
48374883 yylval.str = strdup(yytext); return STRING_ARG; }
48384884 YY_BREAK
4839 case 261:
4840 YY_RULE_SETUP
4841 #line 548 "util/configlexer.lex"
4885 case 264:
4886 YY_RULE_SETUP
4887 #line 551 "util/configlexer.lex"
48424888 {
48434889 ub_c_error_msg("unknown keyword '%s'", yytext);
48444890 }
48454891 YY_BREAK
4846 case 262:
4847 YY_RULE_SETUP
4848 #line 552 "util/configlexer.lex"
4892 case 265:
4893 YY_RULE_SETUP
4894 #line 555 "util/configlexer.lex"
48494895 {
48504896 ub_c_error_msg("stray '%s'", yytext);
48514897 }
48524898 YY_BREAK
4853 case 263:
4854 YY_RULE_SETUP
4855 #line 556 "util/configlexer.lex"
4899 case 266:
4900 YY_RULE_SETUP
4901 #line 559 "util/configlexer.lex"
48564902 ECHO;
48574903 YY_BREAK
4858 #line 4858 "<stdout>"
4904 #line 4904 "<stdout>"
48594905
48604906 case YY_END_OF_BUFFER:
48614907 {
51465192 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
51475193 {
51485194 yy_current_state = (int) yy_def[yy_current_state];
5149 if ( yy_current_state >= 2599 )
5195 if ( yy_current_state >= 2631 )
51505196 yy_c = yy_meta[(unsigned int) yy_c];
51515197 }
51525198 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
51745220 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
51755221 {
51765222 yy_current_state = (int) yy_def[yy_current_state];
5177 if ( yy_current_state >= 2599 )
5223 if ( yy_current_state >= 2631 )
51785224 yy_c = yy_meta[(unsigned int) yy_c];
51795225 }
51805226 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
5181 yy_is_jam = (yy_current_state == 2598);
5227 yy_is_jam = (yy_current_state == 2630);
51825228
51835229 return yy_is_jam ? 0 : yy_current_state;
51845230 }
58175863
58185864 #define YYTABLES_NAME "yytables"
58195865
5820 #line 556 "util/configlexer.lex"
5821
5822
5823
5866 #line 559 "util/configlexer.lex"
5867
5868
5869
237237 tls-port{COLON} { YDVAR(1, VAR_SSL_PORT) }
238238 ssl-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
239239 tls-cert-bundle{COLON} { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
240 additional-ssl-port{COLON} { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
241 additional-tls-port{COLON} { YDVAR(1, VAR_ADDITIONAL_TLS_PORT) }
240 tls-win-cert{COLON} { YDVAR(1, VAR_TLS_WIN_CERT) }
241 additional-ssl-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
242 additional-tls-port{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
243 tls-additional-ports{COLON} { YDVAR(1, VAR_TLS_ADDITIONAL_PORTS) }
242244 use-systemd{COLON} { YDVAR(1, VAR_USE_SYSTEMD) }
243245 do-daemonize{COLON} { YDVAR(1, VAR_DO_DAEMONIZE) }
244246 interface{COLON} { YDVAR(1, VAR_INTERFACE) }
427429 ip-ratelimit-factor{COLON} { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
428430 ratelimit-factor{COLON} { YDVAR(1, VAR_RATELIMIT_FACTOR) }
429431 low-rtt{COLON} { YDVAR(1, VAR_LOW_RTT) }
430 low-rtt-pct{COLON} { YDVAR(1, VAR_LOW_RTT_PCT) }
432 low-rtt-pct{COLON} { YDVAR(1, VAR_LOW_RTT_PERMIL) }
433 low-rtt-permil{COLON} { YDVAR(1, VAR_LOW_RTT_PERMIL) }
431434 response-ip-tag{COLON} { YDVAR(2, VAR_RESPONSE_IP_TAG) }
432435 response-ip{COLON} { YDVAR(2, VAR_RESPONSE_IP) }
433436 response-ip-data{COLON} { YDVAR(2, VAR_RESPONSE_IP_DATA) }
360360 VAR_URL = 490,
361361 VAR_FOR_DOWNSTREAM = 491,
362362 VAR_FALLBACK_ENABLED = 492,
363 VAR_ADDITIONAL_TLS_PORT = 493,
363 VAR_TLS_ADDITIONAL_PORTS = 493,
364364 VAR_LOW_RTT = 494,
365 VAR_LOW_RTT_PCT = 495,
366 VAR_ALLOW_NOTIFY = 496
365 VAR_LOW_RTT_PERMIL = 495,
366 VAR_ALLOW_NOTIFY = 496,
367 VAR_TLS_WIN_CERT = 497
367368 };
368369 #endif
369370 /* Tokens. */
602603 #define VAR_URL 490
603604 #define VAR_FOR_DOWNSTREAM 491
604605 #define VAR_FALLBACK_ENABLED 492
605 #define VAR_ADDITIONAL_TLS_PORT 493
606 #define VAR_TLS_ADDITIONAL_PORTS 493
606607 #define VAR_LOW_RTT 494
607 #define VAR_LOW_RTT_PCT 495
608 #define VAR_LOW_RTT_PERMIL 495
608609 #define VAR_ALLOW_NOTIFY 496
610 #define VAR_TLS_WIN_CERT 497
609611
610612 /* Value type. */
611613 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
616618
617619 char* str;
618620
619 #line 621 "util/configparser.c" /* yacc.c:355 */
621 #line 623 "util/configparser.c" /* yacc.c:355 */
620622 };
621623
622624 typedef union YYSTYPE YYSTYPE;
633635
634636 /* Copy the second part of user declarations. */
635637
636 #line 638 "util/configparser.c" /* yacc.c:358 */
638 #line 640 "util/configparser.c" /* yacc.c:358 */
637639
638640 #ifdef short
639641 # undef short
875877 /* YYFINAL -- State number of the termination state. */
876878 #define YYFINAL 2
877879 /* YYLAST -- Last index in YYTABLE. */
878 #define YYLAST 489
880 #define YYLAST 491
879881
880882 /* YYNTOKENS -- Number of terminals. */
881 #define YYNTOKENS 242
883 #define YYNTOKENS 243
882884 /* YYNNTS -- Number of nonterminals. */
883 #define YYNNTS 262
885 #define YYNNTS 263
884886 /* YYNRULES -- Number of rules. */
885 #define YYNRULES 501
887 #define YYNRULES 503
886888 /* YYNSTATES -- Number of states. */
887 #define YYNSTATES 750
889 #define YYNSTATES 753
888890
889891 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
890892 by yylex, with out-of-bounds checking. */
891893 #define YYUNDEFTOK 2
892 #define YYMAXUTOK 496
894 #define YYMAXUTOK 497
893895
894896 #define YYTRANSLATE(YYX) \
895897 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
947949 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
948950 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
949951 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
950 235, 236, 237, 238, 239, 240, 241
952 235, 236, 237, 238, 239, 240, 241, 242
951953 };
952954
953955 #if YYDEBUG
972974 237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
973975 242, 242, 242, 243, 243, 243, 244, 244, 244, 245,
974976 245, 246, 247, 247, 248, 248, 249, 249, 250, 250,
975 251, 251, 251, 252, 254, 266, 267, 268, 268, 268,
976 268, 268, 269, 271, 283, 284, 285, 285, 285, 285,
977 286, 288, 302, 303, 304, 304, 304, 304, 305, 305,
978 305, 307, 323, 324, 325, 325, 325, 325, 326, 326,
979 326, 327, 329, 338, 347, 358, 367, 376, 385, 396,
980 405, 416, 429, 444, 455, 472, 489, 502, 517, 526,
981 535, 544, 553, 562, 571, 580, 589, 598, 607, 616,
982 625, 634, 643, 652, 661, 668, 675, 684, 691, 699,
983 708, 717, 731, 740, 749, 758, 765, 772, 798, 806,
984 813, 820, 827, 834, 842, 850, 858, 865, 876, 887,
985 894, 903, 912, 921, 928, 935, 943, 951, 961, 971,
986 981, 994, 1005, 1013, 1026, 1035, 1044, 1053, 1063, 1073,
987 1081, 1094, 1103, 1111, 1120, 1128, 1141, 1150, 1157, 1167,
988 1177, 1187, 1197, 1207, 1217, 1227, 1237, 1244, 1251, 1258,
989 1267, 1276, 1285, 1292, 1302, 1319, 1326, 1344, 1357, 1370,
990 1379, 1388, 1397, 1406, 1416, 1426, 1437, 1446, 1455, 1468,
991 1481, 1490, 1497, 1506, 1515, 1524, 1533, 1541, 1554, 1562,
992 1591, 1598, 1613, 1623, 1633, 1640, 1647, 1656, 1670, 1689,
993 1708, 1720, 1732, 1744, 1755, 1774, 1784, 1793, 1801, 1809,
994 1822, 1835, 1848, 1861, 1870, 1879, 1888, 1897, 1907, 1917,
995 1930, 1943, 1954, 1967, 1978, 1991, 2001, 2008, 2015, 2024,
996 2034, 2044, 2054, 2061, 2068, 2077, 2087, 2097, 2104, 2111,
997 2118, 2126, 2136, 2146, 2156, 2166, 2196, 2206, 2214, 2223,
998 2238, 2247, 2252, 2253, 2254, 2254, 2254, 2255, 2255, 2255,
999 2256, 2256, 2258, 2268, 2277, 2284, 2294, 2301, 2308, 2315,
1000 2322, 2327, 2328, 2329, 2329, 2330, 2330, 2331, 2331, 2332,
1001 2333, 2334, 2335, 2336, 2337, 2339, 2347, 2354, 2362, 2370,
1002 2377, 2384, 2393, 2402, 2411, 2420, 2429, 2438, 2443, 2444,
1003 2445, 2447, 2453, 2463, 2470, 2479, 2487, 2493, 2494, 2496,
1004 2496, 2496, 2497, 2497, 2498, 2499, 2500, 2501, 2502, 2504,
1005 2514, 2524, 2531, 2540, 2547, 2556, 2564, 2577, 2585, 2598,
1006 2603, 2604, 2605, 2605, 2606, 2606, 2606, 2608, 2622, 2637,
1007 2649, 2664
977 251, 251, 251, 252, 252, 254, 266, 267, 268, 268,
978 268, 268, 268, 269, 271, 283, 284, 285, 285, 285,
979 285, 286, 288, 302, 303, 304, 304, 304, 304, 305,
980 305, 305, 307, 323, 324, 325, 325, 325, 325, 326,
981 326, 326, 327, 329, 338, 347, 358, 367, 376, 385,
982 396, 405, 416, 429, 444, 455, 472, 489, 502, 517,
983 526, 535, 544, 553, 562, 571, 580, 589, 598, 607,
984 616, 625, 634, 643, 652, 661, 668, 675, 684, 691,
985 700, 708, 717, 726, 740, 749, 758, 767, 774, 781,
986 807, 815, 822, 829, 836, 843, 851, 859, 867, 874,
987 885, 896, 903, 912, 921, 930, 937, 944, 952, 960,
988 970, 980, 990, 1003, 1014, 1022, 1035, 1044, 1053, 1062,
989 1072, 1082, 1090, 1103, 1112, 1120, 1129, 1137, 1150, 1159,
990 1166, 1176, 1186, 1196, 1206, 1216, 1226, 1236, 1246, 1253,
991 1260, 1267, 1276, 1285, 1294, 1301, 1311, 1329, 1336, 1354,
992 1367, 1380, 1389, 1398, 1407, 1416, 1426, 1436, 1447, 1456,
993 1465, 1478, 1491, 1500, 1507, 1516, 1525, 1534, 1543, 1551,
994 1564, 1572, 1601, 1608, 1623, 1633, 1643, 1650, 1657, 1666,
995 1680, 1699, 1718, 1730, 1742, 1754, 1765, 1784, 1794, 1803,
996 1811, 1819, 1832, 1845, 1858, 1871, 1880, 1889, 1898, 1907,
997 1917, 1927, 1940, 1953, 1964, 1977, 1988, 2001, 2011, 2018,
998 2025, 2034, 2044, 2054, 2064, 2071, 2078, 2087, 2097, 2107,
999 2114, 2121, 2128, 2136, 2146, 2156, 2166, 2176, 2206, 2216,
1000 2224, 2233, 2248, 2257, 2262, 2263, 2264, 2264, 2264, 2265,
1001 2265, 2265, 2266, 2266, 2268, 2278, 2287, 2294, 2304, 2311,
1002 2318, 2325, 2332, 2337, 2338, 2339, 2339, 2340, 2340, 2341,
1003 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2349, 2357, 2364,
1004 2372, 2380, 2387, 2394, 2403, 2412, 2421, 2430, 2439, 2448,
1005 2453, 2454, 2455, 2457, 2463, 2473, 2480, 2489, 2497, 2503,
1006 2504, 2506, 2506, 2506, 2507, 2507, 2508, 2509, 2510, 2511,
1007 2512, 2514, 2524, 2534, 2541, 2550, 2557, 2566, 2574, 2587,
1008 2595, 2608, 2613, 2614, 2615, 2615, 2616, 2616, 2616, 2618,
1009 2632, 2647, 2659, 2674
10081010 };
10091011 #endif
10101012
11001102 "VAR_CACHEDB_REDISTIMEOUT", "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM",
11011103 "VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER",
11021104 "VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED",
1103 "VAR_ADDITIONAL_TLS_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PCT",
1104 "VAR_ALLOW_NOTIFY", "$accept", "toplevelvars", "toplevelvar",
1105 "serverstart", "contents_server", "content_server", "stubstart",
1106 "contents_stub", "content_stub", "forwardstart", "contents_forward",
1107 "content_forward", "viewstart", "contents_view", "content_view",
1108 "authstart", "contents_auth", "content_auth", "server_num_threads",
1109 "server_verbosity", "server_statistics_interval",
1105 "VAR_TLS_ADDITIONAL_PORTS", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL",
1106 "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", "$accept", "toplevelvars",
1107 "toplevelvar", "serverstart", "contents_server", "content_server",
1108 "stubstart", "contents_stub", "content_stub", "forwardstart",
1109 "contents_forward", "content_forward", "viewstart", "contents_view",
1110 "content_view", "authstart", "contents_auth", "content_auth",
1111 "server_num_threads", "server_verbosity", "server_statistics_interval",
11101112 "server_statistics_cumulative", "server_extended_statistics",
11111113 "server_shm_enable", "server_shm_key", "server_port",
11121114 "server_send_client_subnet", "server_client_subnet_zone",
11201122 "server_outgoing_tcp_mss", "server_tcp_upstream",
11211123 "server_udp_upstream_without_downstream", "server_ssl_upstream",
11221124 "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port",
1123 "server_tls_cert_bundle", "server_additional_tls_port",
1124 "server_use_systemd", "server_do_daemonize", "server_use_syslog",
1125 "server_log_time_ascii", "server_log_queries", "server_log_replies",
1126 "server_chroot", "server_username", "server_directory", "server_logfile",
1125 "server_tls_cert_bundle", "server_tls_win_cert",
1126 "server_tls_additional_ports", "server_use_systemd",
1127 "server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
1128 "server_log_queries", "server_log_replies", "server_chroot",
1129 "server_username", "server_directory", "server_logfile",
11271130 "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
11281131 "server_dlv_anchor", "server_auto_trust_anchor_file",
11291132 "server_trust_anchor_file", "server_trusted_keys_file",
11711174 "server_ratelimit_size", "server_ip_ratelimit_slabs",
11721175 "server_ratelimit_slabs", "server_ratelimit_for_domain",
11731176 "server_ratelimit_below_domain", "server_ip_ratelimit_factor",
1174 "server_ratelimit_factor", "server_low_rtt", "server_low_rtt_pct",
1177 "server_ratelimit_factor", "server_low_rtt", "server_low_rtt_permil",
11751178 "server_qname_minimisation", "server_qname_minimisation_strict",
11761179 "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus",
11771180 "server_ipsecmod_hook", "server_ipsecmod_max_ttl",
12391242 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
12401243 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
12411244 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1242 495, 496
1245 495, 496, 497
12431246 };
12441247 # endif
12451248
12771280 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
12781281 208, 209, 210, 211, 212, 213, 215, 216, 217, 218,
12791282 219, 220, 251, 252, 253, 254, 258, 259, 260, 302,
1280 303, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1281 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1282 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1283 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1284 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1285 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1286 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1287 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1288 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1289 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1290 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1291 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1292 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1293 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1294 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1295 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1296 -184, -184, -184, -184, -184, -184, -184, -184, -184, 304,
1297 305, 306, 307, 308, 309, -184, -184, -184, -184, -184,
1298 -184, -184, 310, 314, 318, 319, 343, -184, -184, -184,
1299 -184, -184, -184, 344, 345, 347, 357, 358, 359, 360,
1300 -184, -184, -184, -184, -184, -184, -184, -184, 361, 362,
1301 363, 364, 365, 366, 367, 368, -184, -184, -184, -184,
1302 -184, -184, -184, -184, -184, 369, 404, 406, 418, 419,
1303 420, 421, 422, -184, -184, -184, -184, -184, -184, -184,
1304 -184, -184, 423, 424, 425, 426, 427, 428, 435, 436,
1305 437, 438, 439, 440, -184, -184, -184, -184, -184, -184,
1306 -184, -184, -184, -184, -184, -184, -184, 442, -184, -184,
1307 443, 444, 445, 446, 447, 448, 452, 453, 454, 455,
1308 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1309 -184, 456, 457, 458, 459, 460, -184, -184, -184, -184,
1310 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1311 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1312 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1313 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1314 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1315 -184, -184, -184, -184, -184, -184, -184, -184, 461, 462,
1316 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1317 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1318 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1319 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1320 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1321 -184, -184, -184, 463, 464, 465, -184, -184, -184, -184,
1322 -184, -184, -184, -184, -184, 466, 467, -184, -184, -184,
1323 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1324 -184, -184, 468, 469, 470, 471, 472, 473, -184, -184,
1325 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1326 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1327 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1328 -184, 474, -184, -184, 475, 476, -184, -184, -184, -184,
1329 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1330 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1331 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1332 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1333 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1334 477, 478, 479, -184, -184, -184, -184, -184, -184, -184
1283 303, 304, -184, -184, -184, -184, -184, -184, -184, -184,
1284 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1285 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1286 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1287 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1288 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1289 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1290 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1291 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1292 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1293 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1294 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1295 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1296 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1297 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1298 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1299 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1300 -184, 305, 306, 307, 308, 309, 310, -184, -184, -184,
1301 -184, -184, -184, -184, 314, 318, 319, 343, 344, -184,
1302 -184, -184, -184, -184, -184, 345, 347, 357, 358, 359,
1303 360, 361, -184, -184, -184, -184, -184, -184, -184, -184,
1304 362, 363, 364, 365, 366, 367, 368, 369, -184, -184,
1305 -184, -184, -184, -184, -184, -184, -184, 404, 406, 418,
1306 419, 420, 421, 422, 423, -184, -184, -184, -184, -184,
1307 -184, -184, -184, -184, 424, 425, 426, 427, 428, 435,
1308 436, 437, 438, 439, 440, 442, -184, -184, -184, -184,
1309 -184, -184, -184, -184, -184, -184, -184, -184, -184, 443,
1310 -184, -184, 444, 445, 446, 447, 448, 452, 454, 455,
1311 456, 457, -184, -184, -184, -184, -184, -184, -184, -184,
1312 -184, -184, -184, 458, 459, 460, 461, 462, -184, -184,
1313 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1314 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1315 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1316 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1317 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1318 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1319 463, 464, -184, -184, -184, -184, -184, -184, -184, -184,
1320 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1321 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1322 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1323 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1324 -184, -184, -184, -184, -184, 465, 466, 467, -184, -184,
1325 -184, -184, -184, -184, -184, -184, -184, 468, 469, -184,
1326 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1327 -184, -184, -184, -184, 470, 471, 472, 473, 474, 475,
1328 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1329 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1330 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1331 -184, -184, -184, -184, 476, -184, -184, 477, 478, -184,
1332 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1333 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1334 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1335 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1336 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1337 -184, -184, -184, 479, 480, 481, -184, -184, -184, -184,
1338 -184, -184, -184
13351339 };
13361340
13371341 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
13391343 means the default is an error. */
13401344 static const yytype_uint16 yydefact[] =
13411345 {
1342 2, 0, 1, 14, 184, 193, 411, 457, 430, 201,
1343 466, 489, 211, 3, 16, 186, 195, 203, 213, 413,
1344 432, 459, 468, 491, 4, 5, 6, 10, 13, 8,
1346 2, 0, 1, 14, 185, 194, 413, 459, 432, 202,
1347 468, 491, 212, 3, 16, 187, 196, 204, 214, 415,
1348 434, 461, 470, 493, 4, 5, 6, 10, 13, 8,
13451349 9, 7, 11, 12, 0, 0, 0, 0, 0, 0,
13461350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13471351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13591363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13601364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13611365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 15, 17, 18, 77, 80, 89, 166, 167, 19,
1363 139, 140, 141, 142, 143, 144, 28, 68, 20, 81,
1364 82, 39, 61, 76, 21, 22, 24, 25, 23, 26,
1365 27, 112, 178, 113, 114, 115, 116, 180, 181, 162,
1366 78, 67, 93, 110, 111, 29, 30, 31, 32, 33,
1367 69, 83, 84, 99, 55, 65, 56, 170, 171, 94,
1368 49, 50, 169, 51, 52, 103, 107, 120, 128, 149,
1369 104, 62, 34, 35, 36, 91, 121, 122, 123, 37,
1370 38, 40, 41, 43, 44, 42, 126, 45, 46, 47,
1371 53, 72, 108, 86, 127, 79, 145, 87, 88, 105,
1372 106, 92, 48, 70, 73, 54, 57, 95, 96, 71,
1373 146, 97, 58, 59, 60, 179, 109, 159, 160, 168,
1374 98, 66, 100, 101, 102, 147, 63, 64, 85, 74,
1375 75, 90, 117, 118, 119, 124, 125, 150, 151, 153,
1376 155, 156, 154, 157, 163, 129, 130, 133, 134, 131,
1377 132, 135, 136, 138, 137, 182, 183, 148, 158, 172,
1378 174, 173, 175, 176, 177, 152, 161, 164, 165, 0,
1379 0, 0, 0, 0, 0, 185, 187, 188, 189, 191,
1380 192, 190, 0, 0, 0, 0, 0, 194, 196, 197,
1381 198, 199, 200, 0, 0, 0, 0, 0, 0, 0,
1382 202, 204, 205, 208, 209, 206, 210, 207, 0, 0,
1383 0, 0, 0, 0, 0, 0, 212, 214, 215, 216,
1384 217, 221, 218, 219, 220, 0, 0, 0, 0, 0,
1385 0, 0, 0, 412, 414, 416, 415, 421, 417, 418,
1386 419, 420, 0, 0, 0, 0, 0, 0, 0, 0,
1387 0, 0, 0, 0, 431, 433, 434, 435, 436, 437,
1388 438, 439, 440, 441, 442, 443, 444, 0, 458, 460,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1390 467, 469, 470, 471, 473, 474, 472, 475, 476, 477,
1391 478, 0, 0, 0, 0, 0, 490, 492, 493, 494,
1392 495, 496, 223, 222, 229, 238, 236, 244, 245, 248,
1393 246, 247, 249, 250, 265, 266, 267, 268, 269, 292,
1394 293, 294, 299, 300, 241, 301, 302, 305, 303, 304,
1395 307, 308, 309, 322, 280, 281, 283, 284, 310, 325,
1396 274, 276, 326, 332, 333, 334, 242, 291, 346, 347,
1397 275, 341, 261, 237, 270, 323, 329, 311, 0, 0,
1398 350, 243, 224, 260, 315, 225, 239, 240, 271, 272,
1399 348, 313, 317, 318, 226, 351, 295, 321, 262, 279,
1400 327, 328, 331, 340, 273, 344, 342, 343, 285, 290,
1401 319, 320, 286, 287, 312, 336, 263, 264, 251, 253,
1402 254, 255, 256, 257, 352, 353, 354, 296, 297, 298,
1403 306, 355, 356, 0, 0, 0, 314, 288, 462, 365,
1404 369, 367, 366, 370, 368, 0, 0, 373, 374, 230,
1405 231, 232, 233, 234, 235, 316, 330, 345, 377, 378,
1406 289, 357, 0, 0, 0, 0, 0, 0, 337, 338,
1407 339, 463, 282, 277, 335, 259, 227, 228, 278, 379,
1408 381, 380, 382, 383, 384, 252, 258, 375, 376, 385,
1409 386, 387, 390, 389, 388, 391, 392, 393, 394, 395,
1410 404, 0, 408, 409, 0, 0, 410, 396, 402, 397,
1411 398, 399, 401, 403, 400, 422, 424, 423, 426, 427,
1412 428, 429, 425, 445, 446, 447, 448, 449, 450, 451,
1413 452, 453, 454, 455, 456, 461, 479, 480, 481, 484,
1414 482, 483, 485, 486, 487, 488, 497, 498, 499, 500,
1415 501, 324, 349, 364, 464, 465, 371, 372, 358, 359,
1416 0, 0, 0, 363, 405, 406, 407, 362, 360, 361
1366 0, 0, 15, 17, 18, 77, 80, 89, 166, 167,
1367 19, 139, 140, 141, 142, 143, 144, 28, 68, 20,
1368 81, 82, 39, 61, 76, 21, 22, 24, 25, 23,
1369 26, 27, 112, 178, 113, 114, 115, 116, 180, 184,
1370 181, 162, 78, 67, 93, 110, 111, 29, 30, 31,
1371 32, 33, 69, 83, 84, 99, 55, 65, 56, 170,
1372 171, 94, 49, 50, 169, 51, 52, 103, 107, 120,
1373 128, 149, 104, 62, 34, 35, 36, 91, 121, 122,
1374 123, 37, 38, 40, 41, 43, 44, 42, 126, 45,
1375 46, 47, 53, 72, 108, 86, 127, 79, 145, 87,
1376 88, 105, 106, 92, 48, 70, 73, 54, 57, 95,
1377 96, 71, 146, 97, 58, 59, 60, 179, 109, 159,
1378 160, 168, 98, 66, 100, 101, 102, 147, 63, 64,
1379 85, 74, 75, 90, 117, 118, 119, 124, 125, 150,
1380 151, 153, 155, 156, 154, 157, 163, 129, 130, 133,
1381 134, 131, 132, 135, 136, 138, 137, 182, 183, 148,
1382 158, 172, 174, 173, 175, 176, 177, 152, 161, 164,
1383 165, 0, 0, 0, 0, 0, 0, 186, 188, 189,
1384 190, 192, 193, 191, 0, 0, 0, 0, 0, 195,
1385 197, 198, 199, 200, 201, 0, 0, 0, 0, 0,
1386 0, 0, 203, 205, 206, 209, 210, 207, 211, 208,
1387 0, 0, 0, 0, 0, 0, 0, 0, 213, 215,
1388 216, 217, 218, 222, 219, 220, 221, 0, 0, 0,
1389 0, 0, 0, 0, 0, 414, 416, 418, 417, 423,
1390 419, 420, 421, 422, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 433, 435, 436, 437,
1392 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
1393 460, 462, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 469, 471, 472, 473, 475, 476, 474, 477,
1395 478, 479, 480, 0, 0, 0, 0, 0, 492, 494,
1396 495, 496, 497, 498, 224, 223, 230, 239, 237, 245,
1397 246, 249, 247, 248, 250, 251, 267, 268, 269, 270,
1398 271, 294, 295, 296, 301, 302, 242, 303, 304, 307,
1399 305, 306, 309, 310, 311, 324, 282, 283, 285, 286,
1400 312, 327, 276, 278, 328, 334, 335, 336, 243, 293,
1401 348, 349, 277, 343, 263, 238, 272, 325, 331, 313,
1402 0, 0, 352, 244, 225, 262, 317, 226, 240, 241,
1403 273, 274, 350, 315, 319, 320, 227, 353, 297, 323,
1404 264, 281, 329, 330, 333, 342, 275, 346, 344, 345,
1405 287, 292, 321, 322, 288, 289, 314, 338, 265, 266,
1406 252, 254, 255, 256, 257, 258, 354, 355, 356, 298,
1407 299, 300, 308, 357, 358, 0, 0, 0, 316, 290,
1408 464, 367, 371, 369, 368, 372, 370, 0, 0, 375,
1409 376, 231, 232, 233, 234, 235, 236, 318, 332, 347,
1410 379, 380, 291, 359, 0, 0, 0, 0, 0, 0,
1411 339, 340, 341, 465, 284, 279, 337, 261, 228, 229,
1412 280, 381, 383, 382, 384, 385, 386, 253, 260, 377,
1413 378, 259, 387, 388, 389, 392, 391, 390, 393, 394,
1414 395, 396, 397, 406, 0, 410, 411, 0, 0, 412,
1415 398, 404, 399, 400, 401, 403, 405, 402, 424, 426,
1416 425, 428, 429, 430, 431, 427, 447, 448, 449, 450,
1417 451, 452, 453, 454, 455, 456, 457, 458, 463, 481,
1418 482, 483, 486, 484, 485, 487, 488, 489, 490, 499,
1419 500, 501, 502, 503, 326, 351, 366, 466, 467, 373,
1420 374, 360, 361, 0, 0, 0, 365, 407, 408, 409,
1421 364, 362, 363
14171422 };
14181423
14191424 /* YYPGOTO[NTERM-NUM]. */
14451450 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
14461451 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
14471452 -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
1448 -184, -184
1453 -184, -184, -184
14491454 };
14501455
14511456 /* YYDEFGOTO[NTERM-NUM]. */
14521457 static const yytype_int16 yydefgoto[] =
14531458 {
1454 -1, 1, 13, 14, 24, 201, 15, 25, 375, 16,
1455 26, 387, 17, 27, 400, 18, 28, 416, 202, 203,
1456 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1457 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1458 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1459 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1460 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1461 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1462 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1463 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1464 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1465 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1466 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1467 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
1468 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
1469 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
1470 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
1471 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
1472 364, 376, 377, 378, 379, 380, 381, 388, 389, 390,
1473 391, 392, 417, 418, 419, 420, 421, 422, 423, 424,
1474 401, 402, 403, 404, 405, 406, 407, 19, 29, 433,
1475 434, 435, 436, 437, 438, 439, 440, 441, 20, 30,
1476 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
1477 464, 465, 466, 21, 31, 468, 469, 365, 366, 367,
1478 368, 22, 32, 480, 481, 482, 483, 484, 485, 486,
1479 487, 488, 489, 490, 23, 33, 496, 497, 498, 499,
1480 500, 501
1459 -1, 1, 13, 14, 24, 202, 15, 25, 377, 16,
1460 26, 389, 17, 27, 402, 18, 28, 418, 203, 204,
1461 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1462 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1463 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1464 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1465 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1466 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1467 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1468 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1469 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1470 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1471 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1472 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1473 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1474 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1475 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1476 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1477 365, 366, 378, 379, 380, 381, 382, 383, 390, 391,
1478 392, 393, 394, 419, 420, 421, 422, 423, 424, 425,
1479 426, 403, 404, 405, 406, 407, 408, 409, 19, 29,
1480 435, 436, 437, 438, 439, 440, 441, 442, 443, 20,
1481 30, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1482 465, 466, 467, 468, 21, 31, 470, 471, 367, 368,
1483 369, 370, 22, 32, 482, 483, 484, 485, 486, 487,
1484 488, 489, 490, 491, 492, 23, 33, 498, 499, 500,
1485 501, 502, 503
14811486 };
14821487
14831488 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
14851490 number is the opposite. If YYTABLE_NINF, syntax error. */
14861491 static const yytype_uint16 yytable[] =
14871492 {
1488 2, 408, 393, 369, 467, 370, 371, 502, 382, 503,
1489 0, 3, 504, 505, 506, 507, 383, 384, 442, 443,
1490 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
1491 425, 426, 427, 428, 429, 430, 431, 432, 394, 395,
1492 508, 4, 491, 492, 493, 494, 495, 5, 470, 471,
1493 472, 473, 474, 475, 476, 477, 478, 479, 509, 510,
1494 511, 512, 513, 396, 514, 515, 372, 516, 517, 518,
1495 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
1496 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
1497 539, 6, 540, 541, 542, 543, 373, 544, 545, 374,
1498 385, 546, 386, 547, 548, 549, 550, 7, 551, 552,
1499 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
1500 563, 564, 397, 398, 565, 566, 567, 568, 569, 570,
1501 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
1502 581, 582, 583, 584, 585, 586, 8, 587, 588, 589,
1503 590, 591, 592, 593, 594, 595, 596, 399, 597, 598,
1504 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
1505 609, 610, 611, 612, 613, 614, 615, 616, 617, 618,
1506 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
1507 629, 630, 409, 9, 410, 411, 412, 413, 414, 631,
1508 632, 633, 415, 634, 635, 636, 637, 10, 638, 639,
1509 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
1510 650, 651, 652, 653, 11, 654, 655, 656, 657, 658,
1511 659, 0, 12, 34, 35, 36, 37, 38, 39, 40,
1493 2, 410, 395, 371, 469, 372, 373, 504, 384, 505,
1494 0, 3, 506, 507, 508, 509, 385, 386, 444, 445,
1495 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
1496 427, 428, 429, 430, 431, 432, 433, 434, 396, 397,
1497 510, 4, 493, 494, 495, 496, 497, 5, 472, 473,
1498 474, 475, 476, 477, 478, 479, 480, 481, 511, 512,
1499 513, 514, 515, 398, 516, 517, 374, 518, 519, 520,
1500 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
1501 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
1502 541, 6, 542, 543, 544, 545, 375, 546, 547, 376,
1503 387, 548, 388, 549, 550, 551, 552, 7, 553, 554,
1504 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1505 565, 566, 399, 400, 567, 568, 569, 570, 571, 572,
1506 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
1507 583, 584, 585, 586, 587, 588, 8, 589, 590, 591,
1508 592, 593, 594, 595, 596, 597, 598, 401, 599, 600,
1509 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
1510 611, 612, 613, 614, 615, 616, 617, 618, 619, 620,
1511 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
1512 631, 632, 411, 9, 412, 413, 414, 415, 416, 633,
1513 634, 635, 417, 636, 637, 638, 639, 10, 640, 641,
1514 642, 643, 644, 645, 646, 647, 648, 649, 650, 651,
1515 652, 653, 654, 655, 11, 656, 657, 658, 659, 660,
1516 661, 0, 12, 34, 35, 36, 37, 38, 39, 40,
15121517 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
15131518 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1514 61, 660, 661, 662, 663, 62, 63, 64, 664, 665,
1515 666, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1519 61, 662, 663, 664, 665, 62, 63, 64, 666, 667,
1520 668, 65, 66, 67, 68, 69, 70, 71, 72, 73,
15161521 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
15171522 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
15181523 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1519 104, 105, 667, 668, 669, 670, 671, 672, 673, 674,
1520 675, 106, 107, 108, 676, 109, 110, 111, 677, 678,
1524 104, 105, 669, 670, 671, 672, 673, 674, 675, 676,
1525 677, 106, 107, 108, 678, 109, 110, 111, 679, 680,
15211526 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
15221527 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1523 132, 133, 134, 679, 680, 681, 135, 682, 136, 137,
1524 138, 139, 140, 141, 142, 143, 144, 683, 684, 685,
1525 686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
1528 132, 133, 134, 681, 682, 683, 135, 684, 136, 137,
1529 138, 139, 140, 141, 142, 143, 144, 685, 686, 687,
1530 688, 689, 690, 691, 692, 693, 694, 695, 696, 697,
15261531 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
15271532 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
15281533 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1529 175, 176, 177, 178, 696, 179, 697, 180, 181, 182,
1530 183, 184, 185, 186, 187, 188, 189, 190, 698, 699,
1531 700, 701, 702, 703, 704, 705, 706, 707, 708, 191,
1532 192, 193, 194, 195, 196, 709, 710, 711, 712, 713,
1533 714, 197, 715, 716, 717, 718, 719, 720, 721, 198,
1534 199, 200, 722, 723, 724, 725, 726, 727, 728, 729,
1535 730, 731, 732, 733, 734, 735, 736, 737, 738, 739,
1536 740, 741, 742, 743, 744, 745, 746, 747, 748, 749
1534 175, 176, 177, 178, 698, 179, 699, 180, 181, 182,
1535 183, 184, 185, 186, 187, 188, 189, 190, 700, 701,
1536 702, 703, 704, 705, 706, 707, 708, 709, 710, 191,
1537 192, 193, 194, 195, 196, 711, 712, 713, 714, 715,
1538 716, 197, 717, 718, 719, 720, 721, 722, 723, 198,
1539 199, 200, 724, 201, 725, 726, 727, 728, 729, 730,
1540 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
1541 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
1542 751, 752
15371543 };
15381544
15391545 static const yytype_int16 yycheck[] =
15841590 10, 10, 10, 10, 10, 10, 10, 10, 10, 218,
15851591 219, 220, 221, 222, 223, 10, 10, 10, 10, 10,
15861592 10, 230, 10, 10, 10, 10, 10, 10, 10, 238,
1587 239, 240, 10, 10, 10, 10, 10, 10, 10, 10,
1593 239, 240, 10, 242, 10, 10, 10, 10, 10, 10,
15881594 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1589 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
1595 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1596 10, 10
15901597 };
15911598
15921599 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
15931600 symbol of state STATE-NUM. */
15941601 static const yytype_uint16 yystos[] =
15951602 {
1596 0, 243, 0, 11, 41, 47, 91, 107, 146, 193,
1597 207, 224, 232, 244, 245, 248, 251, 254, 257, 449,
1598 460, 475, 483, 496, 246, 249, 252, 255, 258, 450,
1599 461, 476, 484, 497, 12, 13, 14, 15, 16, 17,
1603 0, 244, 0, 11, 41, 47, 91, 107, 146, 193,
1604 207, 224, 232, 245, 246, 249, 252, 255, 258, 451,
1605 462, 477, 485, 498, 247, 250, 253, 256, 259, 452,
1606 463, 478, 486, 499, 12, 13, 14, 15, 16, 17,
16001607 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
16011608 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
16021609 38, 39, 44, 45, 46, 50, 51, 52, 53, 54,
16131620 184, 185, 186, 187, 188, 189, 190, 191, 192, 194,
16141621 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
16151622 206, 218, 219, 220, 221, 222, 223, 230, 238, 239,
1616 240, 247, 260, 261, 262, 263, 264, 265, 266, 267,
1623 240, 242, 248, 261, 262, 263, 264, 265, 266, 267,
16171624 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
16181625 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
16191626 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
16291636 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
16301637 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
16311638 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
1632 418, 419, 420, 421, 422, 479, 480, 481, 482, 40,
1633 42, 43, 103, 133, 136, 250, 423, 424, 425, 426,
1634 427, 428, 40, 48, 49, 132, 134, 253, 429, 430,
1635 431, 432, 433, 40, 76, 77, 101, 160, 161, 195,
1636 256, 442, 443, 444, 445, 446, 447, 448, 40, 231,
1637 233, 234, 235, 236, 237, 241, 259, 434, 435, 436,
1638 437, 438, 439, 440, 441, 92, 93, 94, 95, 96,
1639 97, 98, 99, 451, 452, 453, 454, 455, 456, 457,
1640 458, 459, 147, 148, 149, 150, 151, 152, 153, 154,
1641 155, 156, 157, 158, 462, 463, 464, 465, 466, 467,
1642 468, 469, 470, 471, 472, 473, 474, 108, 477, 478,
1643 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
1644 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1645 495, 225, 226, 227, 228, 229, 498, 499, 500, 501,
1646 502, 503, 10, 10, 10, 10, 10, 10, 10, 10,
1639 418, 419, 420, 421, 422, 423, 424, 481, 482, 483,
1640 484, 40, 42, 43, 103, 133, 136, 251, 425, 426,
1641 427, 428, 429, 430, 40, 48, 49, 132, 134, 254,
1642 431, 432, 433, 434, 435, 40, 76, 77, 101, 160,
1643 161, 195, 257, 444, 445, 446, 447, 448, 449, 450,
1644 40, 231, 233, 234, 235, 236, 237, 241, 260, 436,
1645 437, 438, 439, 440, 441, 442, 443, 92, 93, 94,
1646 95, 96, 97, 98, 99, 453, 454, 455, 456, 457,
1647 458, 459, 460, 461, 147, 148, 149, 150, 151, 152,
1648 153, 154, 155, 156, 157, 158, 464, 465, 466, 467,
1649 468, 469, 470, 471, 472, 473, 474, 475, 476, 108,
1650 479, 480, 208, 209, 210, 211, 212, 213, 214, 215,
1651 216, 217, 487, 488, 489, 490, 491, 492, 493, 494,
1652 495, 496, 497, 225, 226, 227, 228, 229, 500, 501,
1653 502, 503, 504, 505, 10, 10, 10, 10, 10, 10,
16471654 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
16481655 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
16491656 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
16671674 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
16681675 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
16691676 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1670 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
1677 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1678 10, 10, 10
16711679 };
16721680
16731681 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
16741682 static const yytype_uint16 yyr1[] =
16751683 {
1676 0, 242, 243, 243, 244, 244, 244, 244, 244, 244,
1677 244, 244, 244, 244, 245, 246, 246, 247, 247, 247,
1678 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1679 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1680 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1681 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1682 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1683 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1684 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1685 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1686 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1687 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1688 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1689 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1690 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1691 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1692 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1693 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1694 247, 247, 247, 247, 248, 249, 249, 250, 250, 250,
1695 250, 250, 250, 251, 252, 252, 253, 253, 253, 253,
1696 253, 254, 255, 255, 256, 256, 256, 256, 256, 256,
1697 256, 257, 258, 258, 259, 259, 259, 259, 259, 259,
1698 259, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1684 0, 243, 244, 244, 245, 245, 245, 245, 245, 245,
1685 245, 245, 245, 245, 246, 247, 247, 248, 248, 248,
1686 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1687 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1688 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1689 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1690 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1691 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1692 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1693 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1694 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1695 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1696 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1697 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1698 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1699 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1700 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1701 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
1702 248, 248, 248, 248, 248, 249, 250, 250, 251, 251,
1703 251, 251, 251, 251, 252, 253, 253, 254, 254, 254,
1704 254, 254, 255, 256, 256, 257, 257, 257, 257, 257,
1705 257, 257, 258, 259, 259, 260, 260, 260, 260, 260,
1706 260, 260, 260, 261, 262, 263, 264, 265, 266, 267,
16991707 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
17001708 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
17011709 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
17141722 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
17151723 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
17161724 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1717 448, 449, 450, 450, 451, 451, 451, 451, 451, 451,
1718 451, 451, 452, 453, 454, 455, 456, 457, 458, 459,
1719 460, 461, 461, 462, 462, 462, 462, 462, 462, 462,
1720 462, 462, 462, 462, 462, 463, 464, 465, 466, 467,
1721 468, 469, 470, 471, 472, 473, 474, 475, 476, 476,
1722 477, 478, 479, 480, 481, 482, 483, 484, 484, 485,
1723 485, 485, 485, 485, 485, 485, 485, 485, 485, 486,
1725 448, 449, 450, 451, 452, 452, 453, 453, 453, 453,
1726 453, 453, 453, 453, 454, 455, 456, 457, 458, 459,
1727 460, 461, 462, 463, 463, 464, 464, 464, 464, 464,
1728 464, 464, 464, 464, 464, 464, 464, 465, 466, 467,
1729 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1730 478, 478, 479, 480, 481, 482, 483, 484, 485, 486,
1731 486, 487, 487, 487, 487, 487, 487, 487, 487, 487,
17241732 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
1725 497, 497, 498, 498, 498, 498, 498, 499, 500, 501,
1726 502, 503
1733 497, 498, 499, 499, 500, 500, 500, 500, 500, 501,
1734 502, 503, 504, 505
17271735 };
17281736
17291737 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
17471755 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
17481756 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
17491757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1758 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
17501759 1, 1, 1, 1, 1, 2, 0, 1, 1, 1,
1751 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
1752 1, 1, 2, 0, 1, 1, 1, 1, 1, 1,
1753 1, 1, 2, 0, 1, 1, 1, 1, 1, 1,
1754 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
1760 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
1761 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
1762 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
17551763 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17561764 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17571765 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17611769 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17621770 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17631771 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1764 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,
1765 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1766 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
1767 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
1768 4, 4, 4, 3, 3, 2, 2, 2, 2, 2,
1769 2, 3, 3, 2, 2, 2, 2, 2, 2, 2,
1772 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
17701773 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17711774 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1772 2, 2, 2, 2, 2, 3, 3, 3, 2, 2,
1773 2, 1, 2, 0, 1, 1, 1, 1, 1, 1,
1774 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
1775 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
1776 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
1777 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
1778 1, 2, 2, 2, 3, 3, 1, 2, 0, 1,
1779 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1775 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
1776 3, 3, 4, 4, 4, 3, 3, 2, 2, 2,
1777 2, 2, 2, 3, 3, 2, 2, 2, 2, 2,
1778 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1779 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1780 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
1781 2, 2, 2, 1, 2, 0, 1, 1, 1, 1,
1782 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
1783 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
1784 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
17801785 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
1781 2, 0, 1, 1, 1, 1, 1, 2, 2, 2,
1782 2, 2
1786 2, 0, 1, 2, 2, 2, 3, 3, 1, 2,
1787 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1788 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1789 2, 1, 2, 0, 1, 1, 1, 1, 1, 2,
1790 2, 2, 2, 2
17831791 };
17841792
17851793
24602468 {
24612469 OUTYY(("\nP(server:)\n"));
24622470 }
2463 #line 2465 "util/configparser.c" /* yacc.c:1646 */
2464 break;
2465
2466 case 184:
2471 #line 2473 "util/configparser.c" /* yacc.c:1646 */
2472 break;
2473
2474 case 185:
24672475 #line 255 "util/configparser.y" /* yacc.c:1646 */
24682476 {
24692477 struct config_stub* s;
24752483 } else
24762484 yyerror("out of memory");
24772485 }
2478 #line 2480 "util/configparser.c" /* yacc.c:1646 */
2479 break;
2480
2481 case 193:
2486 #line 2488 "util/configparser.c" /* yacc.c:1646 */
2487 break;
2488
2489 case 194:
24822490 #line 272 "util/configparser.y" /* yacc.c:1646 */
24832491 {
24842492 struct config_stub* s;
24902498 } else
24912499 yyerror("out of memory");
24922500 }
2493 #line 2495 "util/configparser.c" /* yacc.c:1646 */
2494 break;
2495
2496 case 201:
2501 #line 2503 "util/configparser.c" /* yacc.c:1646 */
2502 break;
2503
2504 case 202:
24972505 #line 289 "util/configparser.y" /* yacc.c:1646 */
24982506 {
24992507 struct config_view* s;
25072515 } else
25082516 yyerror("out of memory");
25092517 }
2510 #line 2512 "util/configparser.c" /* yacc.c:1646 */
2511 break;
2512
2513 case 211:
2518 #line 2520 "util/configparser.c" /* yacc.c:1646 */
2519 break;
2520
2521 case 212:
25142522 #line 308 "util/configparser.y" /* yacc.c:1646 */
25152523 {
25162524 struct config_auth* s;
25262534 } else
25272535 yyerror("out of memory");
25282536 }
2529 #line 2531 "util/configparser.c" /* yacc.c:1646 */
2530 break;
2531
2532 case 222:
2537 #line 2539 "util/configparser.c" /* yacc.c:1646 */
2538 break;
2539
2540 case 223:
25332541 #line 330 "util/configparser.y" /* yacc.c:1646 */
25342542 {
25352543 OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
25382546 else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
25392547 free((yyvsp[0].str));
25402548 }
2541 #line 2543 "util/configparser.c" /* yacc.c:1646 */
2542 break;
2543
2544 case 223:
2549 #line 2551 "util/configparser.c" /* yacc.c:1646 */
2550 break;
2551
2552 case 224:
25452553 #line 339 "util/configparser.y" /* yacc.c:1646 */
25462554 {
25472555 OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
25502558 else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
25512559 free((yyvsp[0].str));
25522560 }
2553 #line 2555 "util/configparser.c" /* yacc.c:1646 */
2554 break;
2555
2556 case 224:
2561 #line 2563 "util/configparser.c" /* yacc.c:1646 */
2562 break;
2563
2564 case 225:
25572565 #line 348 "util/configparser.y" /* yacc.c:1646 */
25582566 {
25592567 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
25642572 else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
25652573 free((yyvsp[0].str));
25662574 }
2567 #line 2569 "util/configparser.c" /* yacc.c:1646 */
2568 break;
2569
2570 case 225:
2575 #line 2577 "util/configparser.c" /* yacc.c:1646 */
2576 break;
2577
2578 case 226:
25712579 #line 359 "util/configparser.y" /* yacc.c:1646 */
25722580 {
25732581 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
25762584 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
25772585 free((yyvsp[0].str));
25782586 }
2579 #line 2581 "util/configparser.c" /* yacc.c:1646 */
2580 break;
2581
2582 case 226:
2587 #line 2589 "util/configparser.c" /* yacc.c:1646 */
2588 break;
2589
2590 case 227:
25832591 #line 368 "util/configparser.y" /* yacc.c:1646 */
25842592 {
25852593 OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
25882596 else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
25892597 free((yyvsp[0].str));
25902598 }
2591 #line 2593 "util/configparser.c" /* yacc.c:1646 */
2592 break;
2593
2594 case 227:
2599 #line 2601 "util/configparser.c" /* yacc.c:1646 */
2600 break;
2601
2602 case 228:
25952603 #line 377 "util/configparser.y" /* yacc.c:1646 */
25962604 {
25972605 OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
26002608 else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
26012609 free((yyvsp[0].str));
26022610 }
2603 #line 2605 "util/configparser.c" /* yacc.c:1646 */
2604 break;
2605
2606 case 228:
2611 #line 2613 "util/configparser.c" /* yacc.c:1646 */
2612 break;
2613
2614 case 229:
26072615 #line 386 "util/configparser.y" /* yacc.c:1646 */
26082616 {
26092617 OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
26142622 else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
26152623 free((yyvsp[0].str));
26162624 }
2617 #line 2619 "util/configparser.c" /* yacc.c:1646 */
2618 break;
2619
2620 case 229:
2625 #line 2627 "util/configparser.c" /* yacc.c:1646 */
2626 break;
2627
2628 case 230:
26212629 #line 397 "util/configparser.y" /* yacc.c:1646 */
26222630 {
26232631 OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
26262634 else cfg_parser->cfg->port = atoi((yyvsp[0].str));
26272635 free((yyvsp[0].str));
26282636 }
2629 #line 2631 "util/configparser.c" /* yacc.c:1646 */
2630 break;
2631
2632 case 230:
2637 #line 2639 "util/configparser.c" /* yacc.c:1646 */
2638 break;
2639
2640 case 231:
26332641 #line 406 "util/configparser.y" /* yacc.c:1646 */
26342642 {
26352643 #ifdef CLIENT_SUBNET
26402648 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
26412649 #endif
26422650 }
2643 #line 2645 "util/configparser.c" /* yacc.c:1646 */
2644 break;
2645
2646 case 231:
2651 #line 2653 "util/configparser.c" /* yacc.c:1646 */
2652 break;
2653
2654 case 232:
26472655 #line 417 "util/configparser.y" /* yacc.c:1646 */
26482656 {
26492657 #ifdef CLIENT_SUBNET
26552663 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
26562664 #endif
26572665 }
2658 #line 2660 "util/configparser.c" /* yacc.c:1646 */
2659 break;
2660
2661 case 232:
2666 #line 2668 "util/configparser.c" /* yacc.c:1646 */
2667 break;
2668
2669 case 233:
26622670 #line 430 "util/configparser.y" /* yacc.c:1646 */
26632671 {
26642672 #ifdef CLIENT_SUBNET
26732681 #endif
26742682 free((yyvsp[0].str));
26752683 }
2676 #line 2678 "util/configparser.c" /* yacc.c:1646 */
2677 break;
2678
2679 case 233:
2684 #line 2686 "util/configparser.c" /* yacc.c:1646 */
2685 break;
2686
2687 case 234:
26802688 #line 445 "util/configparser.y" /* yacc.c:1646 */
26812689 {
26822690 #ifdef CLIENT_SUBNET
26872695 #endif
26882696 free((yyvsp[0].str));
26892697 }
2690 #line 2692 "util/configparser.c" /* yacc.c:1646 */
2691 break;
2692
2693 case 234:
2698 #line 2700 "util/configparser.c" /* yacc.c:1646 */
2699 break;
2700
2701 case 235:
26942702 #line 456 "util/configparser.y" /* yacc.c:1646 */
26952703 {
26962704 #ifdef CLIENT_SUBNET
27072715 #endif
27082716 free((yyvsp[0].str));
27092717 }
2710 #line 2712 "util/configparser.c" /* yacc.c:1646 */
2711 break;
2712
2713 case 235:
2718 #line 2720 "util/configparser.c" /* yacc.c:1646 */
2719 break;
2720
2721 case 236:
27142722 #line 473 "util/configparser.y" /* yacc.c:1646 */
27152723 {
27162724 #ifdef CLIENT_SUBNET
27272735 #endif
27282736 free((yyvsp[0].str));
27292737 }
2730 #line 2732 "util/configparser.c" /* yacc.c:1646 */
2731 break;
2732
2733 case 236:
2738 #line 2740 "util/configparser.c" /* yacc.c:1646 */
2739 break;
2740
2741 case 237:
27342742 #line 490 "util/configparser.y" /* yacc.c:1646 */
27352743 {
27362744 OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
27432751 else
27442752 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
27452753 }
2746 #line 2748 "util/configparser.c" /* yacc.c:1646 */
2747 break;
2748
2749 case 237:
2754 #line 2756 "util/configparser.c" /* yacc.c:1646 */
2755 break;
2756
2757 case 238:
27502758 #line 503 "util/configparser.y" /* yacc.c:1646 */
27512759 {
27522760 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
27612769 cfg_parser->cfg->out_ifs[
27622770 cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
27632771 }
2764 #line 2766 "util/configparser.c" /* yacc.c:1646 */
2765 break;
2766
2767 case 238:
2772 #line 2774 "util/configparser.c" /* yacc.c:1646 */
2773 break;
2774
2775 case 239:
27682776 #line 518 "util/configparser.y" /* yacc.c:1646 */
27692777 {
27702778 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
27732781 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
27742782 free((yyvsp[0].str));
27752783 }
2776 #line 2778 "util/configparser.c" /* yacc.c:1646 */
2777 break;
2778
2779 case 239:
2784 #line 2786 "util/configparser.c" /* yacc.c:1646 */
2785 break;
2786
2787 case 240:
27802788 #line 527 "util/configparser.y" /* yacc.c:1646 */
27812789 {
27822790 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
27852793 yyerror("port number or range (\"low-high\") expected");
27862794 free((yyvsp[0].str));
27872795 }
2788 #line 2790 "util/configparser.c" /* yacc.c:1646 */
2789 break;
2790
2791 case 240:
2796 #line 2798 "util/configparser.c" /* yacc.c:1646 */
2797 break;
2798
2799 case 241:
27922800 #line 536 "util/configparser.y" /* yacc.c:1646 */
27932801 {
27942802 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
27972805 yyerror("port number or range (\"low-high\") expected");
27982806 free((yyvsp[0].str));
27992807 }
2800 #line 2802 "util/configparser.c" /* yacc.c:1646 */
2801 break;
2802
2803 case 241:
2808 #line 2810 "util/configparser.c" /* yacc.c:1646 */
2809 break;
2810
2811 case 242:
28042812 #line 545 "util/configparser.y" /* yacc.c:1646 */
28052813 {
28062814 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
28092817 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
28102818 free((yyvsp[0].str));
28112819 }
2812 #line 2814 "util/configparser.c" /* yacc.c:1646 */
2813 break;
2814
2815 case 242:
2820 #line 2822 "util/configparser.c" /* yacc.c:1646 */
2821 break;
2822
2823 case 243:
28162824 #line 554 "util/configparser.y" /* yacc.c:1646 */
28172825 {
28182826 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
28212829 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
28222830 free((yyvsp[0].str));
28232831 }
2824 #line 2826 "util/configparser.c" /* yacc.c:1646 */
2825 break;
2826
2827 case 243:
2832 #line 2834 "util/configparser.c" /* yacc.c:1646 */
2833 break;
2834
2835 case 244:
28282836 #line 563 "util/configparser.y" /* yacc.c:1646 */
28292837 {
28302838 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
28332841 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
28342842 free((yyvsp[0].str));
28352843 }
2836 #line 2838 "util/configparser.c" /* yacc.c:1646 */
2837 break;
2838
2839 case 244:
2844 #line 2846 "util/configparser.c" /* yacc.c:1646 */
2845 break;
2846
2847 case 245:
28402848 #line 572 "util/configparser.y" /* yacc.c:1646 */
28412849 {
28422850 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
28452853 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
28462854 free((yyvsp[0].str));
28472855 }
2848 #line 2850 "util/configparser.c" /* yacc.c:1646 */
2849 break;
2850
2851 case 245:
2856 #line 2858 "util/configparser.c" /* yacc.c:1646 */
2857 break;
2858
2859 case 246:
28522860 #line 581 "util/configparser.y" /* yacc.c:1646 */
28532861 {
28542862 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
28572865 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
28582866 free((yyvsp[0].str));
28592867 }
2860 #line 2862 "util/configparser.c" /* yacc.c:1646 */
2861 break;
2862
2863 case 246:
2868 #line 2870 "util/configparser.c" /* yacc.c:1646 */
2869 break;
2870
2871 case 247:
28642872 #line 590 "util/configparser.y" /* yacc.c:1646 */
28652873 {
28662874 OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
28692877 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
28702878 free((yyvsp[0].str));
28712879 }
2872 #line 2874 "util/configparser.c" /* yacc.c:1646 */
2873 break;
2874
2875 case 247:
2880 #line 2882 "util/configparser.c" /* yacc.c:1646 */
2881 break;
2882
2883 case 248:
28762884 #line 599 "util/configparser.y" /* yacc.c:1646 */
28772885 {
28782886 OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
28812889 else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
28822890 free((yyvsp[0].str));
28832891 }
2884 #line 2886 "util/configparser.c" /* yacc.c:1646 */
2885 break;
2886
2887 case 248:
2892 #line 2894 "util/configparser.c" /* yacc.c:1646 */
2893 break;
2894
2895 case 249:
28882896 #line 608 "util/configparser.y" /* yacc.c:1646 */
28892897 {
28902898 OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
28932901 else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
28942902 free((yyvsp[0].str));
28952903 }
2896 #line 2898 "util/configparser.c" /* yacc.c:1646 */
2897 break;
2898
2899 case 249:
2904 #line 2906 "util/configparser.c" /* yacc.c:1646 */
2905 break;
2906
2907 case 250:
29002908 #line 617 "util/configparser.y" /* yacc.c:1646 */
29012909 {
29022910 OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
29052913 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
29062914 free((yyvsp[0].str));
29072915 }
2908 #line 2910 "util/configparser.c" /* yacc.c:1646 */
2909 break;
2910
2911 case 250:
2916 #line 2918 "util/configparser.c" /* yacc.c:1646 */
2917 break;
2918
2919 case 251:
29122920 #line 626 "util/configparser.y" /* yacc.c:1646 */
29132921 {
29142922 OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
29172925 else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
29182926 free((yyvsp[0].str));
29192927 }
2920 #line 2922 "util/configparser.c" /* yacc.c:1646 */
2921 break;
2922
2923 case 251:
2928 #line 2930 "util/configparser.c" /* yacc.c:1646 */
2929 break;
2930
2931 case 252:
29242932 #line 635 "util/configparser.y" /* yacc.c:1646 */
29252933 {
29262934 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
29292937 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
29302938 free((yyvsp[0].str));
29312939 }
2932 #line 2934 "util/configparser.c" /* yacc.c:1646 */
2933 break;
2934
2935 case 252:
2940 #line 2942 "util/configparser.c" /* yacc.c:1646 */
2941 break;
2942
2943 case 253:
29362944 #line 644 "util/configparser.y" /* yacc.c:1646 */
29372945 {
29382946 OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
29412949 else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
29422950 free((yyvsp[0].str));
29432951 }
2944 #line 2946 "util/configparser.c" /* yacc.c:1646 */
2945 break;
2946
2947 case 253:
2952 #line 2954 "util/configparser.c" /* yacc.c:1646 */
2953 break;
2954
2955 case 254:
29482956 #line 653 "util/configparser.y" /* yacc.c:1646 */
29492957 {
29502958 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
29532961 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
29542962 free((yyvsp[0].str));
29552963 }
2956 #line 2958 "util/configparser.c" /* yacc.c:1646 */
2957 break;
2958
2959 case 254:
2964 #line 2966 "util/configparser.c" /* yacc.c:1646 */
2965 break;
2966
2967 case 255:
29602968 #line 662 "util/configparser.y" /* yacc.c:1646 */
29612969 {
29622970 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
29632971 free(cfg_parser->cfg->ssl_service_key);
29642972 cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
29652973 }
2966 #line 2968 "util/configparser.c" /* yacc.c:1646 */
2967 break;
2968
2969 case 255:
2974 #line 2976 "util/configparser.c" /* yacc.c:1646 */
2975 break;
2976
2977 case 256:
29702978 #line 669 "util/configparser.y" /* yacc.c:1646 */
29712979 {
29722980 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
29732981 free(cfg_parser->cfg->ssl_service_pem);
29742982 cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
29752983 }
2976 #line 2978 "util/configparser.c" /* yacc.c:1646 */
2977 break;
2978
2979 case 256:
2984 #line 2986 "util/configparser.c" /* yacc.c:1646 */
2985 break;
2986
2987 case 257:
29802988 #line 676 "util/configparser.y" /* yacc.c:1646 */
29812989 {
29822990 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
29852993 else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
29862994 free((yyvsp[0].str));
29872995 }
2988 #line 2990 "util/configparser.c" /* yacc.c:1646 */
2989 break;
2990
2991 case 257:
2996 #line 2998 "util/configparser.c" /* yacc.c:1646 */
2997 break;
2998
2999 case 258:
29923000 #line 685 "util/configparser.y" /* yacc.c:1646 */
29933001 {
29943002 OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
29953003 free(cfg_parser->cfg->tls_cert_bundle);
29963004 cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
29973005 }
2998 #line 3000 "util/configparser.c" /* yacc.c:1646 */
2999 break;
3000
3001 case 258:
3006 #line 3008 "util/configparser.c" /* yacc.c:1646 */
3007 break;
3008
3009 case 259:
30023010 #line 692 "util/configparser.y" /* yacc.c:1646 */
30033011 {
3004 OUTYY(("P(server_additional_tls_port:%s)\n", (yyvsp[0].str)));
3005 if(!cfg_strlist_insert(&cfg_parser->cfg->additional_tls_port,
3012 OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
3013 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3014 yyerror("expected yes or no.");
3015 else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
3016 free((yyvsp[0].str));
3017 }
3018 #line 3020 "util/configparser.c" /* yacc.c:1646 */
3019 break;
3020
3021 case 260:
3022 #line 701 "util/configparser.y" /* yacc.c:1646 */
3023 {
3024 OUTYY(("P(server_tls_additional_ports:%s)\n", (yyvsp[0].str)));
3025 if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_ports,
30063026 (yyvsp[0].str)))
30073027 yyerror("out of memory");
30083028 }
3009 #line 3011 "util/configparser.c" /* yacc.c:1646 */
3010 break;
3011
3012 case 259:
3013 #line 700 "util/configparser.y" /* yacc.c:1646 */
3029 #line 3031 "util/configparser.c" /* yacc.c:1646 */
3030 break;
3031
3032 case 261:
3033 #line 709 "util/configparser.y" /* yacc.c:1646 */
30143034 {
30153035 OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
30163036 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30183038 else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
30193039 free((yyvsp[0].str));
30203040 }
3021 #line 3023 "util/configparser.c" /* yacc.c:1646 */
3022 break;
3023
3024 case 260:
3025 #line 709 "util/configparser.y" /* yacc.c:1646 */
3041 #line 3043 "util/configparser.c" /* yacc.c:1646 */
3042 break;
3043
3044 case 262:
3045 #line 718 "util/configparser.y" /* yacc.c:1646 */
30263046 {
30273047 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
30283048 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30303050 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
30313051 free((yyvsp[0].str));
30323052 }
3033 #line 3035 "util/configparser.c" /* yacc.c:1646 */
3034 break;
3035
3036 case 261:
3037 #line 718 "util/configparser.y" /* yacc.c:1646 */
3053 #line 3055 "util/configparser.c" /* yacc.c:1646 */
3054 break;
3055
3056 case 263:
3057 #line 727 "util/configparser.y" /* yacc.c:1646 */
30383058 {
30393059 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
30403060 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30473067 #endif
30483068 free((yyvsp[0].str));
30493069 }
3050 #line 3052 "util/configparser.c" /* yacc.c:1646 */
3051 break;
3052
3053 case 262:
3054 #line 732 "util/configparser.y" /* yacc.c:1646 */
3070 #line 3072 "util/configparser.c" /* yacc.c:1646 */
3071 break;
3072
3073 case 264:
3074 #line 741 "util/configparser.y" /* yacc.c:1646 */
30553075 {
30563076 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
30573077 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30593079 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
30603080 free((yyvsp[0].str));
30613081 }
3062 #line 3064 "util/configparser.c" /* yacc.c:1646 */
3063 break;
3064
3065 case 263:
3066 #line 741 "util/configparser.y" /* yacc.c:1646 */
3082 #line 3084 "util/configparser.c" /* yacc.c:1646 */
3083 break;
3084
3085 case 265:
3086 #line 750 "util/configparser.y" /* yacc.c:1646 */
30673087 {
30683088 OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
30693089 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30713091 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
30723092 free((yyvsp[0].str));
30733093 }
3074 #line 3076 "util/configparser.c" /* yacc.c:1646 */
3075 break;
3076
3077 case 264:
3078 #line 750 "util/configparser.y" /* yacc.c:1646 */
3094 #line 3096 "util/configparser.c" /* yacc.c:1646 */
3095 break;
3096
3097 case 266:
3098 #line 759 "util/configparser.y" /* yacc.c:1646 */
30793099 {
30803100 OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
30813101 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
30833103 else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
30843104 free((yyvsp[0].str));
30853105 }
3086 #line 3088 "util/configparser.c" /* yacc.c:1646 */
3087 break;
3088
3089 case 265:
3090 #line 759 "util/configparser.y" /* yacc.c:1646 */
3106 #line 3108 "util/configparser.c" /* yacc.c:1646 */
3107 break;
3108
3109 case 267:
3110 #line 768 "util/configparser.y" /* yacc.c:1646 */
30913111 {
30923112 OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
30933113 free(cfg_parser->cfg->chrootdir);
30943114 cfg_parser->cfg->chrootdir = (yyvsp[0].str);
30953115 }
3096 #line 3098 "util/configparser.c" /* yacc.c:1646 */
3097 break;
3098
3099 case 266:
3100 #line 766 "util/configparser.y" /* yacc.c:1646 */
3116 #line 3118 "util/configparser.c" /* yacc.c:1646 */
3117 break;
3118
3119 case 268:
3120 #line 775 "util/configparser.y" /* yacc.c:1646 */
31013121 {
31023122 OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
31033123 free(cfg_parser->cfg->username);
31043124 cfg_parser->cfg->username = (yyvsp[0].str);
31053125 }
3106 #line 3108 "util/configparser.c" /* yacc.c:1646 */
3107 break;
3108
3109 case 267:
3110 #line 773 "util/configparser.y" /* yacc.c:1646 */
3126 #line 3128 "util/configparser.c" /* yacc.c:1646 */
3127 break;
3128
3129 case 269:
3130 #line 782 "util/configparser.y" /* yacc.c:1646 */
31113131 {
31123132 OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
31133133 free(cfg_parser->cfg->directory);
31323152 }
31333153 }
31343154 }
3135 #line 3137 "util/configparser.c" /* yacc.c:1646 */
3136 break;
3137
3138 case 268:
3139 #line 799 "util/configparser.y" /* yacc.c:1646 */
3155 #line 3157 "util/configparser.c" /* yacc.c:1646 */
3156 break;
3157
3158 case 270:
3159 #line 808 "util/configparser.y" /* yacc.c:1646 */
31403160 {
31413161 OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
31423162 free(cfg_parser->cfg->logfile);
31433163 cfg_parser->cfg->logfile = (yyvsp[0].str);
31443164 cfg_parser->cfg->use_syslog = 0;
31453165 }
3146 #line 3148 "util/configparser.c" /* yacc.c:1646 */
3147 break;
3148
3149 case 269:
3150 #line 807 "util/configparser.y" /* yacc.c:1646 */
3166 #line 3168 "util/configparser.c" /* yacc.c:1646 */
3167 break;
3168
3169 case 271:
3170 #line 816 "util/configparser.y" /* yacc.c:1646 */
31513171 {
31523172 OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
31533173 free(cfg_parser->cfg->pidfile);
31543174 cfg_parser->cfg->pidfile = (yyvsp[0].str);
31553175 }
3156 #line 3158 "util/configparser.c" /* yacc.c:1646 */
3157 break;
3158
3159 case 270:
3160 #line 814 "util/configparser.y" /* yacc.c:1646 */
3176 #line 3178 "util/configparser.c" /* yacc.c:1646 */
3177 break;
3178
3179 case 272:
3180 #line 823 "util/configparser.y" /* yacc.c:1646 */
31613181 {
31623182 OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
31633183 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
31643184 yyerror("out of memory");
31653185 }
3166 #line 3168 "util/configparser.c" /* yacc.c:1646 */
3167 break;
3168
3169 case 271:
3170 #line 821 "util/configparser.y" /* yacc.c:1646 */
3186 #line 3188 "util/configparser.c" /* yacc.c:1646 */
3187 break;
3188
3189 case 273:
3190 #line 830 "util/configparser.y" /* yacc.c:1646 */
31713191 {
31723192 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
31733193 free(cfg_parser->cfg->dlv_anchor_file);
31743194 cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str);
31753195 }
3176 #line 3178 "util/configparser.c" /* yacc.c:1646 */
3177 break;
3178
3179 case 272:
3180 #line 828 "util/configparser.y" /* yacc.c:1646 */
3196 #line 3198 "util/configparser.c" /* yacc.c:1646 */
3197 break;
3198
3199 case 274:
3200 #line 837 "util/configparser.y" /* yacc.c:1646 */
31813201 {
31823202 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
31833203 if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str)))
31843204 yyerror("out of memory");
31853205 }
3186 #line 3188 "util/configparser.c" /* yacc.c:1646 */
3187 break;
3188
3189 case 273:
3190 #line 835 "util/configparser.y" /* yacc.c:1646 */
3206 #line 3208 "util/configparser.c" /* yacc.c:1646 */
3207 break;
3208
3209 case 275:
3210 #line 844 "util/configparser.y" /* yacc.c:1646 */
31913211 {
31923212 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
31933213 if(!cfg_strlist_insert(&cfg_parser->cfg->
31943214 auto_trust_anchor_file_list, (yyvsp[0].str)))
31953215 yyerror("out of memory");
31963216 }
3197 #line 3199 "util/configparser.c" /* yacc.c:1646 */
3198 break;
3199
3200 case 274:
3201 #line 843 "util/configparser.y" /* yacc.c:1646 */
3217 #line 3219 "util/configparser.c" /* yacc.c:1646 */
3218 break;
3219
3220 case 276:
3221 #line 852 "util/configparser.y" /* yacc.c:1646 */
32023222 {
32033223 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
32043224 if(!cfg_strlist_insert(&cfg_parser->cfg->
32053225 trust_anchor_file_list, (yyvsp[0].str)))
32063226 yyerror("out of memory");
32073227 }
3208 #line 3210 "util/configparser.c" /* yacc.c:1646 */
3209 break;
3210
3211 case 275:
3212 #line 851 "util/configparser.y" /* yacc.c:1646 */
3228 #line 3230 "util/configparser.c" /* yacc.c:1646 */
3229 break;
3230
3231 case 277:
3232 #line 860 "util/configparser.y" /* yacc.c:1646 */
32133233 {
32143234 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
32153235 if(!cfg_strlist_insert(&cfg_parser->cfg->
32163236 trusted_keys_file_list, (yyvsp[0].str)))
32173237 yyerror("out of memory");
32183238 }
3219 #line 3221 "util/configparser.c" /* yacc.c:1646 */
3220 break;
3221
3222 case 276:
3223 #line 859 "util/configparser.y" /* yacc.c:1646 */
3239 #line 3241 "util/configparser.c" /* yacc.c:1646 */
3240 break;
3241
3242 case 278:
3243 #line 868 "util/configparser.y" /* yacc.c:1646 */
32243244 {
32253245 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
32263246 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
32273247 yyerror("out of memory");
32283248 }
3229 #line 3231 "util/configparser.c" /* yacc.c:1646 */
3230 break;
3231
3232 case 277:
3233 #line 866 "util/configparser.y" /* yacc.c:1646 */
3249 #line 3251 "util/configparser.c" /* yacc.c:1646 */
3250 break;
3251
3252 case 279:
3253 #line 875 "util/configparser.y" /* yacc.c:1646 */
32343254 {
32353255 OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
32363256 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
32403260 (strcmp((yyvsp[0].str), "yes")==0);
32413261 free((yyvsp[0].str));
32423262 }
3243 #line 3245 "util/configparser.c" /* yacc.c:1646 */
3244 break;
3245
3246 case 278:
3247 #line 877 "util/configparser.y" /* yacc.c:1646 */
3263 #line 3265 "util/configparser.c" /* yacc.c:1646 */
3264 break;
3265
3266 case 280:
3267 #line 886 "util/configparser.y" /* yacc.c:1646 */
32483268 {
32493269 OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
32503270 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
32543274 (strcmp((yyvsp[0].str), "yes")==0);
32553275 free((yyvsp[0].str));
32563276 }
3257 #line 3259 "util/configparser.c" /* yacc.c:1646 */
3258 break;
3259
3260 case 279:
3261 #line 888 "util/configparser.y" /* yacc.c:1646 */
3277 #line 3279 "util/configparser.c" /* yacc.c:1646 */
3278 break;
3279
3280 case 281:
3281 #line 897 "util/configparser.y" /* yacc.c:1646 */
32623282 {
32633283 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
32643284 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
32653285 yyerror("out of memory");
32663286 }
3267 #line 3269 "util/configparser.c" /* yacc.c:1646 */
3268 break;
3269
3270 case 280:
3271 #line 895 "util/configparser.y" /* yacc.c:1646 */
3287 #line 3289 "util/configparser.c" /* yacc.c:1646 */
3288 break;
3289
3290 case 282:
3291 #line 904 "util/configparser.y" /* yacc.c:1646 */
32723292 {
32733293 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
32743294 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
32763296 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
32773297 free((yyvsp[0].str));
32783298 }
3279 #line 3281 "util/configparser.c" /* yacc.c:1646 */
3280 break;
3281
3282 case 281:
3283 #line 904 "util/configparser.y" /* yacc.c:1646 */
3299 #line 3301 "util/configparser.c" /* yacc.c:1646 */
3300 break;
3301
3302 case 283:
3303 #line 913 "util/configparser.y" /* yacc.c:1646 */
32843304 {
32853305 OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
32863306 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
32883308 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
32893309 free((yyvsp[0].str));
32903310 }
3291 #line 3293 "util/configparser.c" /* yacc.c:1646 */
3292 break;
3293
3294 case 282:
3295 #line 913 "util/configparser.y" /* yacc.c:1646 */
3311 #line 3313 "util/configparser.c" /* yacc.c:1646 */
3312 break;
3313
3314 case 284:
3315 #line 922 "util/configparser.y" /* yacc.c:1646 */
32963316 {
32973317 OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
32983318 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33003320 else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
33013321 free((yyvsp[0].str));
33023322 }
3303 #line 3305 "util/configparser.c" /* yacc.c:1646 */
3304 break;
3305
3306 case 283:
3307 #line 922 "util/configparser.y" /* yacc.c:1646 */
3323 #line 3325 "util/configparser.c" /* yacc.c:1646 */
3324 break;
3325
3326 case 285:
3327 #line 931 "util/configparser.y" /* yacc.c:1646 */
33083328 {
33093329 OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
33103330 free(cfg_parser->cfg->identity);
33113331 cfg_parser->cfg->identity = (yyvsp[0].str);
33123332 }
3313 #line 3315 "util/configparser.c" /* yacc.c:1646 */
3314 break;
3315
3316 case 284:
3317 #line 929 "util/configparser.y" /* yacc.c:1646 */
3333 #line 3335 "util/configparser.c" /* yacc.c:1646 */
3334 break;
3335
3336 case 286:
3337 #line 938 "util/configparser.y" /* yacc.c:1646 */
33183338 {
33193339 OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
33203340 free(cfg_parser->cfg->version);
33213341 cfg_parser->cfg->version = (yyvsp[0].str);
33223342 }
3323 #line 3325 "util/configparser.c" /* yacc.c:1646 */
3324 break;
3325
3326 case 285:
3327 #line 936 "util/configparser.y" /* yacc.c:1646 */
3343 #line 3345 "util/configparser.c" /* yacc.c:1646 */
3344 break;
3345
3346 case 287:
3347 #line 945 "util/configparser.y" /* yacc.c:1646 */
33283348 {
33293349 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
33303350 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
33313351 yyerror("buffer size expected");
33323352 free((yyvsp[0].str));
33333353 }
3334 #line 3336 "util/configparser.c" /* yacc.c:1646 */
3335 break;
3336
3337 case 286:
3338 #line 944 "util/configparser.y" /* yacc.c:1646 */
3354 #line 3356 "util/configparser.c" /* yacc.c:1646 */
3355 break;
3356
3357 case 288:
3358 #line 953 "util/configparser.y" /* yacc.c:1646 */
33393359 {
33403360 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
33413361 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
33423362 yyerror("buffer size expected");
33433363 free((yyvsp[0].str));
33443364 }
3345 #line 3347 "util/configparser.c" /* yacc.c:1646 */
3346 break;
3347
3348 case 287:
3349 #line 952 "util/configparser.y" /* yacc.c:1646 */
3365 #line 3367 "util/configparser.c" /* yacc.c:1646 */
3366 break;
3367
3368 case 289:
3369 #line 961 "util/configparser.y" /* yacc.c:1646 */
33503370 {
33513371 OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
33523372 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33553375 (strcmp((yyvsp[0].str), "yes")==0);
33563376 free((yyvsp[0].str));
33573377 }
3358 #line 3360 "util/configparser.c" /* yacc.c:1646 */
3359 break;
3360
3361 case 288:
3362 #line 962 "util/configparser.y" /* yacc.c:1646 */
3378 #line 3380 "util/configparser.c" /* yacc.c:1646 */
3379 break;
3380
3381 case 290:
3382 #line 971 "util/configparser.y" /* yacc.c:1646 */
33633383 {
33643384 OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
33653385 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33683388 (strcmp((yyvsp[0].str), "yes")==0);
33693389 free((yyvsp[0].str));
33703390 }
3371 #line 3373 "util/configparser.c" /* yacc.c:1646 */
3372 break;
3373
3374 case 289:
3375 #line 972 "util/configparser.y" /* yacc.c:1646 */
3391 #line 3393 "util/configparser.c" /* yacc.c:1646 */
3392 break;
3393
3394 case 291:
3395 #line 981 "util/configparser.y" /* yacc.c:1646 */
33763396 {
33773397 OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
33783398 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
33813401 (strcmp((yyvsp[0].str), "yes")==0);
33823402 free((yyvsp[0].str));
33833403 }
3384 #line 3386 "util/configparser.c" /* yacc.c:1646 */
3385 break;
3386
3387 case 290:
3388 #line 982 "util/configparser.y" /* yacc.c:1646 */
3404 #line 3406 "util/configparser.c" /* yacc.c:1646 */
3405 break;
3406
3407 case 292:
3408 #line 991 "util/configparser.y" /* yacc.c:1646 */
33893409 {
33903410 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
33913411 if(atoi((yyvsp[0].str)) == 0)
33973417 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
33983418 free((yyvsp[0].str));
33993419 }
3400 #line 3402 "util/configparser.c" /* yacc.c:1646 */
3401 break;
3402
3403 case 291:
3404 #line 995 "util/configparser.y" /* yacc.c:1646 */
3420 #line 3422 "util/configparser.c" /* yacc.c:1646 */
3421 break;
3422
3423 case 293:
3424 #line 1004 "util/configparser.y" /* yacc.c:1646 */
34053425 {
34063426 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
34073427 if(atoi((yyvsp[0].str)) == 0)
34113431 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
34123432 free((yyvsp[0].str));
34133433 }
3414 #line 3416 "util/configparser.c" /* yacc.c:1646 */
3415 break;
3416
3417 case 292:
3418 #line 1006 "util/configparser.y" /* yacc.c:1646 */
3434 #line 3436 "util/configparser.c" /* yacc.c:1646 */
3435 break;
3436
3437 case 294:
3438 #line 1015 "util/configparser.y" /* yacc.c:1646 */
34193439 {
34203440 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
34213441 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
34223442 yyerror("memory size expected");
34233443 free((yyvsp[0].str));
34243444 }
3425 #line 3427 "util/configparser.c" /* yacc.c:1646 */
3426 break;
3427
3428 case 293:
3429 #line 1014 "util/configparser.y" /* yacc.c:1646 */
3445 #line 3447 "util/configparser.c" /* yacc.c:1646 */
3446 break;
3447
3448 case 295:
3449 #line 1023 "util/configparser.y" /* yacc.c:1646 */
34303450 {
34313451 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
34323452 if(atoi((yyvsp[0].str)) == 0)
34383458 }
34393459 free((yyvsp[0].str));
34403460 }
3441 #line 3443 "util/configparser.c" /* yacc.c:1646 */
3442 break;
3443
3444 case 294:
3445 #line 1027 "util/configparser.y" /* yacc.c:1646 */
3461 #line 3463 "util/configparser.c" /* yacc.c:1646 */
3462 break;
3463
3464 case 296:
3465 #line 1036 "util/configparser.y" /* yacc.c:1646 */
34463466 {
34473467 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
34483468 if(atoi((yyvsp[0].str)) == 0)
34503470 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
34513471 free((yyvsp[0].str));
34523472 }
3453 #line 3455 "util/configparser.c" /* yacc.c:1646 */
3454 break;
3455
3456 case 295:
3457 #line 1036 "util/configparser.y" /* yacc.c:1646 */
3473 #line 3475 "util/configparser.c" /* yacc.c:1646 */
3474 break;
3475
3476 case 297:
3477 #line 1045 "util/configparser.y" /* yacc.c:1646 */
34583478 {
34593479 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
34603480 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
34623482 else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
34633483 free((yyvsp[0].str));
34643484 }
3465 #line 3467 "util/configparser.c" /* yacc.c:1646 */
3466 break;
3467
3468 case 296:
3469 #line 1045 "util/configparser.y" /* yacc.c:1646 */
3485 #line 3487 "util/configparser.c" /* yacc.c:1646 */
3486 break;
3487
3488 case 298:
3489 #line 1054 "util/configparser.y" /* yacc.c:1646 */
34703490 {
34713491 OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
34723492 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
34743494 else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
34753495 free((yyvsp[0].str));
34763496 }
3477 #line 3479 "util/configparser.c" /* yacc.c:1646 */
3478 break;
3479
3480 case 297:
3481 #line 1054 "util/configparser.y" /* yacc.c:1646 */
3497 #line 3499 "util/configparser.c" /* yacc.c:1646 */
3498 break;
3499
3500 case 299:
3501 #line 1063 "util/configparser.y" /* yacc.c:1646 */
34823502 {
34833503 OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
34843504 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
34873507 (strcmp((yyvsp[0].str), "yes")==0);
34883508 free((yyvsp[0].str));
34893509 }
3490 #line 3492 "util/configparser.c" /* yacc.c:1646 */
3491 break;
3492
3493 case 298:
3494 #line 1064 "util/configparser.y" /* yacc.c:1646 */
3510 #line 3512 "util/configparser.c" /* yacc.c:1646 */
3511 break;
3512
3513 case 300:
3514 #line 1073 "util/configparser.y" /* yacc.c:1646 */
34953515 {
34963516 OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
34973517 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
35003520 (strcmp((yyvsp[0].str), "yes")==0);
35013521 free((yyvsp[0].str));
35023522 }
3503 #line 3505 "util/configparser.c" /* yacc.c:1646 */
3504 break;
3505
3506 case 299:
3507 #line 1074 "util/configparser.y" /* yacc.c:1646 */
3523 #line 3525 "util/configparser.c" /* yacc.c:1646 */
3524 break;
3525
3526 case 301:
3527 #line 1083 "util/configparser.y" /* yacc.c:1646 */
35083528 {
35093529 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
35103530 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
35113531 yyerror("memory size expected");
35123532 free((yyvsp[0].str));
35133533 }
3514 #line 3516 "util/configparser.c" /* yacc.c:1646 */
3515 break;
3516
3517 case 300:
3518 #line 1082 "util/configparser.y" /* yacc.c:1646 */
3534 #line 3536 "util/configparser.c" /* yacc.c:1646 */
3535 break;
3536
3537 case 302:
3538 #line 1091 "util/configparser.y" /* yacc.c:1646 */
35193539 {
35203540 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
35213541 if(atoi((yyvsp[0].str)) == 0)
35273547 }
35283548 free((yyvsp[0].str));
35293549 }
3530 #line 3532 "util/configparser.c" /* yacc.c:1646 */
3531 break;
3532
3533 case 301:
3534 #line 1095 "util/configparser.y" /* yacc.c:1646 */
3550 #line 3552 "util/configparser.c" /* yacc.c:1646 */
3551 break;
3552
3553 case 303:
3554 #line 1104 "util/configparser.y" /* yacc.c:1646 */
35353555 {
35363556 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
35373557 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
35393559 else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
35403560 free((yyvsp[0].str));
35413561 }
3542 #line 3544 "util/configparser.c" /* yacc.c:1646 */
3543 break;
3544
3545 case 302:
3546 #line 1104 "util/configparser.y" /* yacc.c:1646 */
3562 #line 3564 "util/configparser.c" /* yacc.c:1646 */
3563 break;
3564
3565 case 304:
3566 #line 1113 "util/configparser.y" /* yacc.c:1646 */
35473567 {
35483568 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
35493569 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
35503570 "removed, use infra-host-ttl)", (yyvsp[0].str));
35513571 free((yyvsp[0].str));
35523572 }
3553 #line 3555 "util/configparser.c" /* yacc.c:1646 */
3554 break;
3555
3556 case 303:
3557 #line 1112 "util/configparser.y" /* yacc.c:1646 */
3573 #line 3575 "util/configparser.c" /* yacc.c:1646 */
3574 break;
3575
3576 case 305:
3577 #line 1121 "util/configparser.y" /* yacc.c:1646 */
35583578 {
35593579 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
35603580 if(atoi((yyvsp[0].str)) == 0)
35623582 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
35633583 free((yyvsp[0].str));
35643584 }
3565 #line 3567 "util/configparser.c" /* yacc.c:1646 */
3566 break;
3567
3568 case 304:
3569 #line 1121 "util/configparser.y" /* yacc.c:1646 */
3585 #line 3587 "util/configparser.c" /* yacc.c:1646 */
3586 break;
3587
3588 case 306:
3589 #line 1130 "util/configparser.y" /* yacc.c:1646 */
35703590 {
35713591 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
35723592 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
35733593 "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
35743594 free((yyvsp[0].str));
35753595 }
3576 #line 3578 "util/configparser.c" /* yacc.c:1646 */
3577 break;
3578
3579 case 305:
3580 #line 1129 "util/configparser.y" /* yacc.c:1646 */
3596 #line 3598 "util/configparser.c" /* yacc.c:1646 */
3597 break;
3598
3599 case 307:
3600 #line 1138 "util/configparser.y" /* yacc.c:1646 */
35813601 {
35823602 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
35833603 if(atoi((yyvsp[0].str)) == 0)
35893609 }
35903610 free((yyvsp[0].str));
35913611 }
3592 #line 3594 "util/configparser.c" /* yacc.c:1646 */
3593 break;
3594
3595 case 306:
3596 #line 1142 "util/configparser.y" /* yacc.c:1646 */
3612 #line 3614 "util/configparser.c" /* yacc.c:1646 */
3613 break;
3614
3615 case 308:
3616 #line 1151 "util/configparser.y" /* yacc.c:1646 */
35973617 {
35983618 OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
35993619 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
36013621 else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
36023622 free((yyvsp[0].str));
36033623 }
3604 #line 3606 "util/configparser.c" /* yacc.c:1646 */
3605 break;
3606
3607 case 307:
3608 #line 1151 "util/configparser.y" /* yacc.c:1646 */
3624 #line 3626 "util/configparser.c" /* yacc.c:1646 */
3625 break;
3626
3627 case 309:
3628 #line 1160 "util/configparser.y" /* yacc.c:1646 */
36093629 {
36103630 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
36113631 free(cfg_parser->cfg->target_fetch_policy);
36123632 cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
36133633 }
3614 #line 3616 "util/configparser.c" /* yacc.c:1646 */
3615 break;
3616
3617 case 308:
3618 #line 1158 "util/configparser.y" /* yacc.c:1646 */
3634 #line 3636 "util/configparser.c" /* yacc.c:1646 */
3635 break;
3636
3637 case 310:
3638 #line 1167 "util/configparser.y" /* yacc.c:1646 */
36193639 {
36203640 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
36213641 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36243644 (strcmp((yyvsp[0].str), "yes")==0);
36253645 free((yyvsp[0].str));
36263646 }
3627 #line 3629 "util/configparser.c" /* yacc.c:1646 */
3628 break;
3629
3630 case 309:
3631 #line 1168 "util/configparser.y" /* yacc.c:1646 */
3647 #line 3649 "util/configparser.c" /* yacc.c:1646 */
3648 break;
3649
3650 case 311:
3651 #line 1177 "util/configparser.y" /* yacc.c:1646 */
36323652 {
36333653 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
36343654 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36373657 (strcmp((yyvsp[0].str), "yes")==0);
36383658 free((yyvsp[0].str));
36393659 }
3640 #line 3642 "util/configparser.c" /* yacc.c:1646 */
3641 break;
3642
3643 case 310:
3644 #line 1178 "util/configparser.y" /* yacc.c:1646 */
3660 #line 3662 "util/configparser.c" /* yacc.c:1646 */
3661 break;
3662
3663 case 312:
3664 #line 1187 "util/configparser.y" /* yacc.c:1646 */
36453665 {
36463666 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
36473667 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36503670 (strcmp((yyvsp[0].str), "yes")==0);
36513671 free((yyvsp[0].str));
36523672 }
3653 #line 3655 "util/configparser.c" /* yacc.c:1646 */
3654 break;
3655
3656 case 311:
3657 #line 1188 "util/configparser.y" /* yacc.c:1646 */
3673 #line 3675 "util/configparser.c" /* yacc.c:1646 */
3674 break;
3675
3676 case 313:
3677 #line 1197 "util/configparser.y" /* yacc.c:1646 */
36583678 {
36593679 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
36603680 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36633683 (strcmp((yyvsp[0].str), "yes")==0);
36643684 free((yyvsp[0].str));
36653685 }
3666 #line 3668 "util/configparser.c" /* yacc.c:1646 */
3667 break;
3668
3669 case 312:
3670 #line 1198 "util/configparser.y" /* yacc.c:1646 */
3686 #line 3688 "util/configparser.c" /* yacc.c:1646 */
3687 break;
3688
3689 case 314:
3690 #line 1207 "util/configparser.y" /* yacc.c:1646 */
36713691 {
36723692 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
36733693 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36763696 (strcmp((yyvsp[0].str), "yes")==0);
36773697 free((yyvsp[0].str));
36783698 }
3679 #line 3681 "util/configparser.c" /* yacc.c:1646 */
3680 break;
3681
3682 case 313:
3683 #line 1208 "util/configparser.y" /* yacc.c:1646 */
3699 #line 3701 "util/configparser.c" /* yacc.c:1646 */
3700 break;
3701
3702 case 315:
3703 #line 1217 "util/configparser.y" /* yacc.c:1646 */
36843704 {
36853705 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
36863706 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
36893709 (strcmp((yyvsp[0].str), "yes")==0);
36903710 free((yyvsp[0].str));
36913711 }
3692 #line 3694 "util/configparser.c" /* yacc.c:1646 */
3693 break;
3694
3695 case 314:
3696 #line 1218 "util/configparser.y" /* yacc.c:1646 */
3712 #line 3714 "util/configparser.c" /* yacc.c:1646 */
3713 break;
3714
3715 case 316:
3716 #line 1227 "util/configparser.y" /* yacc.c:1646 */
36973717 {
36983718 OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
36993719 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37023722 (strcmp((yyvsp[0].str), "yes")==0);
37033723 free((yyvsp[0].str));
37043724 }
3705 #line 3707 "util/configparser.c" /* yacc.c:1646 */
3706 break;
3707
3708 case 315:
3709 #line 1228 "util/configparser.y" /* yacc.c:1646 */
3725 #line 3727 "util/configparser.c" /* yacc.c:1646 */
3726 break;
3727
3728 case 317:
3729 #line 1237 "util/configparser.y" /* yacc.c:1646 */
37103730 {
37113731 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
37123732 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37153735 (strcmp((yyvsp[0].str), "yes")==0);
37163736 free((yyvsp[0].str));
37173737 }
3718 #line 3720 "util/configparser.c" /* yacc.c:1646 */
3719 break;
3720
3721 case 316:
3722 #line 1238 "util/configparser.y" /* yacc.c:1646 */
3738 #line 3740 "util/configparser.c" /* yacc.c:1646 */
3739 break;
3740
3741 case 318:
3742 #line 1247 "util/configparser.y" /* yacc.c:1646 */
37233743 {
37243744 OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
37253745 if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
37263746 yyerror("out of memory");
37273747 }
3728 #line 3730 "util/configparser.c" /* yacc.c:1646 */
3729 break;
3730
3731 case 317:
3732 #line 1245 "util/configparser.y" /* yacc.c:1646 */
3748 #line 3750 "util/configparser.c" /* yacc.c:1646 */
3749 break;
3750
3751 case 319:
3752 #line 1254 "util/configparser.y" /* yacc.c:1646 */
37333753 {
37343754 OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
37353755 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
37363756 yyerror("out of memory");
37373757 }
3738 #line 3740 "util/configparser.c" /* yacc.c:1646 */
3739 break;
3740
3741 case 318:
3742 #line 1252 "util/configparser.y" /* yacc.c:1646 */
3758 #line 3760 "util/configparser.c" /* yacc.c:1646 */
3759 break;
3760
3761 case 320:
3762 #line 1261 "util/configparser.y" /* yacc.c:1646 */
37433763 {
37443764 OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
37453765 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
37463766 yyerror("out of memory");
37473767 }
3748 #line 3750 "util/configparser.c" /* yacc.c:1646 */
3749 break;
3750
3751 case 319:
3752 #line 1259 "util/configparser.y" /* yacc.c:1646 */
3768 #line 3770 "util/configparser.c" /* yacc.c:1646 */
3769 break;
3770
3771 case 321:
3772 #line 1268 "util/configparser.y" /* yacc.c:1646 */
37533773 {
37543774 OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
37553775 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37573777 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
37583778 free((yyvsp[0].str));
37593779 }
3760 #line 3762 "util/configparser.c" /* yacc.c:1646 */
3761 break;
3762
3763 case 320:
3764 #line 1268 "util/configparser.y" /* yacc.c:1646 */
3780 #line 3782 "util/configparser.c" /* yacc.c:1646 */
3781 break;
3782
3783 case 322:
3784 #line 1277 "util/configparser.y" /* yacc.c:1646 */
37653785 {
37663786 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
37673787 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
37693789 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
37703790 free((yyvsp[0].str));
37713791 }
3772 #line 3774 "util/configparser.c" /* yacc.c:1646 */
3773 break;
3774
3775 case 321:
3776 #line 1277 "util/configparser.y" /* yacc.c:1646 */
3792 #line 3794 "util/configparser.c" /* yacc.c:1646 */
3793 break;
3794
3795 case 323:
3796 #line 1286 "util/configparser.y" /* yacc.c:1646 */
37773797 {
37783798 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
37793799 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
37813801 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
37823802 free((yyvsp[0].str));
37833803 }
3784 #line 3786 "util/configparser.c" /* yacc.c:1646 */
3785 break;
3786
3787 case 322:
3788 #line 1286 "util/configparser.y" /* yacc.c:1646 */
3804 #line 3806 "util/configparser.c" /* yacc.c:1646 */
3805 break;
3806
3807 case 324:
3808 #line 1295 "util/configparser.y" /* yacc.c:1646 */
37893809 {
37903810 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
37913811 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
37923812 yyerror("out of memory");
37933813 }
3794 #line 3796 "util/configparser.c" /* yacc.c:1646 */
3795 break;
3796
3797 case 323:
3798 #line 1293 "util/configparser.y" /* yacc.c:1646 */
3814 #line 3816 "util/configparser.c" /* yacc.c:1646 */
3815 break;
3816
3817 case 325:
3818 #line 1302 "util/configparser.y" /* yacc.c:1646 */
37993819 {
38003820 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
38013821 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
38043824 (strcmp((yyvsp[0].str), "yes")==0);
38053825 free((yyvsp[0].str));
38063826 }
3807 #line 3809 "util/configparser.c" /* yacc.c:1646 */
3808 break;
3809
3810 case 324:
3811 #line 1303 "util/configparser.y" /* yacc.c:1646 */
3827 #line 3829 "util/configparser.c" /* yacc.c:1646 */
3828 break;
3829
3830 case 326:
3831 #line 1312 "util/configparser.y" /* yacc.c:1646 */
38123832 {
38133833 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
38143834 if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 &&
38153835 strcmp((yyvsp[0].str), "deny_non_local")!=0 &&
38163836 strcmp((yyvsp[0].str), "refuse_non_local")!=0 &&
3837 strcmp((yyvsp[0].str), "allow_setrd")!=0 &&
38173838 strcmp((yyvsp[0].str), "allow")!=0 &&
38183839 strcmp((yyvsp[0].str), "allow_snoop")!=0) {
38193840 yyerror("expected deny, refuse, deny_non_local, "
3820 "refuse_non_local, allow or allow_snoop "
3821 "in access control action");
3841 "refuse_non_local, allow, allow_setrd or "
3842 "allow_snoop in access control action");
38223843 } else {
38233844 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
38243845 fatal_exit("out of memory adding acl");
38253846 }
38263847 }
3827 #line 3829 "util/configparser.c" /* yacc.c:1646 */
3828 break;
3829
3830 case 325:
3831 #line 1320 "util/configparser.y" /* yacc.c:1646 */
3848 #line 3850 "util/configparser.c" /* yacc.c:1646 */
3849 break;
3850
3851 case 327:
3852 #line 1330 "util/configparser.y" /* yacc.c:1646 */
38323853 {
38333854 OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
38343855 free(cfg_parser->cfg->module_conf);
38353856 cfg_parser->cfg->module_conf = (yyvsp[0].str);
38363857 }
3837 #line 3839 "util/configparser.c" /* yacc.c:1646 */
3838 break;
3839
3840 case 326:
3841 #line 1327 "util/configparser.y" /* yacc.c:1646 */
3858 #line 3860 "util/configparser.c" /* yacc.c:1646 */
3859 break;
3860
3861 case 328:
3862 #line 1337 "util/configparser.y" /* yacc.c:1646 */
38423863 {
38433864 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
38443865 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
38553876 }
38563877 free((yyvsp[0].str));
38573878 }
3858 #line 3860 "util/configparser.c" /* yacc.c:1646 */
3859 break;
3860
3861 case 327:
3862 #line 1345 "util/configparser.y" /* yacc.c:1646 */
3879 #line 3881 "util/configparser.c" /* yacc.c:1646 */
3880 break;
3881
3882 case 329:
3883 #line 1355 "util/configparser.y" /* yacc.c:1646 */
38633884 {
38643885 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
38653886 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
38713892 }
38723893 free((yyvsp[0].str));
38733894 }
3874 #line 3876 "util/configparser.c" /* yacc.c:1646 */
3875 break;
3876
3877 case 328:
3878 #line 1358 "util/configparser.y" /* yacc.c:1646 */
3895 #line 3897 "util/configparser.c" /* yacc.c:1646 */
3896 break;
3897
3898 case 330:
3899 #line 1368 "util/configparser.y" /* yacc.c:1646 */
38793900 {
38803901 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
38813902 if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
38873908 }
38883909 free((yyvsp[0].str));
38893910 }
3890 #line 3892 "util/configparser.c" /* yacc.c:1646 */
3891 break;
3892
3893 case 329:
3894 #line 1371 "util/configparser.y" /* yacc.c:1646 */
3911 #line 3913 "util/configparser.c" /* yacc.c:1646 */
3912 break;
3913
3914 case 331:
3915 #line 1381 "util/configparser.y" /* yacc.c:1646 */
38953916 {
38963917 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
38973918 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
38993920 else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
39003921 free((yyvsp[0].str));
39013922 }
3902 #line 3904 "util/configparser.c" /* yacc.c:1646 */
3903 break;
3904
3905 case 330:
3906 #line 1380 "util/configparser.y" /* yacc.c:1646 */
3923 #line 3925 "util/configparser.c" /* yacc.c:1646 */
3924 break;
3925
3926 case 332:
3927 #line 1390 "util/configparser.y" /* yacc.c:1646 */
39073928 {
39083929 OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
39093930 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
39113932 else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
39123933 free((yyvsp[0].str));
39133934 }
3914 #line 3916 "util/configparser.c" /* yacc.c:1646 */
3915 break;
3916
3917 case 331:
3918 #line 1389 "util/configparser.y" /* yacc.c:1646 */
3935 #line 3937 "util/configparser.c" /* yacc.c:1646 */
3936 break;
3937
3938 case 333:
3939 #line 1399 "util/configparser.y" /* yacc.c:1646 */
39193940 {
39203941 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
39213942 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
39233944 else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
39243945 free((yyvsp[0].str));
39253946 }
3926 #line 3928 "util/configparser.c" /* yacc.c:1646 */
3927 break;
3928
3929 case 332:
3930 #line 1398 "util/configparser.y" /* yacc.c:1646 */
3947 #line 3949 "util/configparser.c" /* yacc.c:1646 */
3948 break;
3949
3950 case 334:
3951 #line 1408 "util/configparser.y" /* yacc.c:1646 */
39313952 {
39323953 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
39333954 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
39353956 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
39363957 free((yyvsp[0].str));
39373958 }
3938 #line 3940 "util/configparser.c" /* yacc.c:1646 */
3939 break;
3940
3941 case 333:
3942 #line 1407 "util/configparser.y" /* yacc.c:1646 */
3959 #line 3961 "util/configparser.c" /* yacc.c:1646 */
3960 break;
3961
3962 case 335:
3963 #line 1417 "util/configparser.y" /* yacc.c:1646 */
39433964 {
39443965 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
39453966 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39483969 (strcmp((yyvsp[0].str), "yes")==0);
39493970 free((yyvsp[0].str));
39503971 }
3951 #line 3953 "util/configparser.c" /* yacc.c:1646 */
3952 break;
3953
3954 case 334:
3955 #line 1417 "util/configparser.y" /* yacc.c:1646 */
3972 #line 3974 "util/configparser.c" /* yacc.c:1646 */
3973 break;
3974
3975 case 336:
3976 #line 1427 "util/configparser.y" /* yacc.c:1646 */
39563977 {
39573978 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
39583979 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39613982 (strcmp((yyvsp[0].str), "yes")==0);
39623983 free((yyvsp[0].str));
39633984 }
3964 #line 3966 "util/configparser.c" /* yacc.c:1646 */
3965 break;
3966
3967 case 335:
3968 #line 1427 "util/configparser.y" /* yacc.c:1646 */
3985 #line 3987 "util/configparser.c" /* yacc.c:1646 */
3986 break;
3987
3988 case 337:
3989 #line 1437 "util/configparser.y" /* yacc.c:1646 */
39693990 {
39703991 OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
39713992 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39753996 (strcmp((yyvsp[0].str), "yes")==0);
39763997 free((yyvsp[0].str));
39773998 }
3978 #line 3980 "util/configparser.c" /* yacc.c:1646 */
3979 break;
3980
3981 case 336:
3982 #line 1438 "util/configparser.y" /* yacc.c:1646 */
3999 #line 4001 "util/configparser.c" /* yacc.c:1646 */
4000 break;
4001
4002 case 338:
4003 #line 1448 "util/configparser.y" /* yacc.c:1646 */
39834004 {
39844005 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
39854006 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39874008 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
39884009 free((yyvsp[0].str));
39894010 }
3990 #line 3992 "util/configparser.c" /* yacc.c:1646 */
3991 break;
3992
3993 case 337:
3994 #line 1447 "util/configparser.y" /* yacc.c:1646 */
4011 #line 4013 "util/configparser.c" /* yacc.c:1646 */
4012 break;
4013
4014 case 339:
4015 #line 1457 "util/configparser.y" /* yacc.c:1646 */
39954016 {
39964017 OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
39974018 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
39994020 else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
40004021 free((yyvsp[0].str));
40014022 }
4002 #line 4004 "util/configparser.c" /* yacc.c:1646 */
4003 break;
4004
4005 case 338:
4006 #line 1456 "util/configparser.y" /* yacc.c:1646 */
4023 #line 4025 "util/configparser.c" /* yacc.c:1646 */
4024 break;
4025
4026 case 340:
4027 #line 1466 "util/configparser.y" /* yacc.c:1646 */
40074028 {
40084029 OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
40094030 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
40154036 #endif
40164037 free((yyvsp[0].str));
40174038 }
4018 #line 4020 "util/configparser.c" /* yacc.c:1646 */
4019 break;
4020
4021 case 339:
4022 #line 1469 "util/configparser.y" /* yacc.c:1646 */
4039 #line 4041 "util/configparser.c" /* yacc.c:1646 */
4040 break;
4041
4042 case 341:
4043 #line 1479 "util/configparser.y" /* yacc.c:1646 */
40234044 {
40244045 OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
40254046 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
40314052 #endif
40324053 free((yyvsp[0].str));
40334054 }
4034 #line 4036 "util/configparser.c" /* yacc.c:1646 */
4035 break;
4036
4037 case 340:
4038 #line 1482 "util/configparser.y" /* yacc.c:1646 */
4055 #line 4057 "util/configparser.c" /* yacc.c:1646 */
4056 break;
4057
4058 case 342:
4059 #line 1492 "util/configparser.y" /* yacc.c:1646 */
40394060 {
40404061 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
40414062 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
40434064 else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
40444065 free((yyvsp[0].str));
40454066 }
4046 #line 4048 "util/configparser.c" /* yacc.c:1646 */
4047 break;
4048
4049 case 341:
4050 #line 1491 "util/configparser.y" /* yacc.c:1646 */
4067 #line 4069 "util/configparser.c" /* yacc.c:1646 */
4068 break;
4069
4070 case 343:
4071 #line 1501 "util/configparser.y" /* yacc.c:1646 */
40514072 {
40524073 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
40534074 free(cfg_parser->cfg->val_nsec3_key_iterations);
40544075 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
40554076 }
4056 #line 4058 "util/configparser.c" /* yacc.c:1646 */
4057 break;
4058
4059 case 342:
4060 #line 1498 "util/configparser.y" /* yacc.c:1646 */
4077 #line 4079 "util/configparser.c" /* yacc.c:1646 */
4078 break;
4079
4080 case 344:
4081 #line 1508 "util/configparser.y" /* yacc.c:1646 */
40614082 {
40624083 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
40634084 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
40654086 else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
40664087 free((yyvsp[0].str));
40674088 }
4068 #line 4070 "util/configparser.c" /* yacc.c:1646 */
4069 break;
4070
4071 case 343:
4072 #line 1507 "util/configparser.y" /* yacc.c:1646 */
4089 #line 4091 "util/configparser.c" /* yacc.c:1646 */
4090 break;
4091
4092 case 345:
4093 #line 1517 "util/configparser.y" /* yacc.c:1646 */
40734094 {
40744095 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
40754096 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
40774098 else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
40784099 free((yyvsp[0].str));
40794100 }
4080 #line 4082 "util/configparser.c" /* yacc.c:1646 */
4081 break;
4082
4083 case 344:
4084 #line 1516 "util/configparser.y" /* yacc.c:1646 */
4101 #line 4103 "util/configparser.c" /* yacc.c:1646 */
4102 break;
4103
4104 case 346:
4105 #line 1526 "util/configparser.y" /* yacc.c:1646 */
40854106 {
40864107 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
40874108 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
40894110 else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
40904111 free((yyvsp[0].str));
40914112 }
4092 #line 4094 "util/configparser.c" /* yacc.c:1646 */
4093 break;
4094
4095 case 345:
4096 #line 1525 "util/configparser.y" /* yacc.c:1646 */
4113 #line 4115 "util/configparser.c" /* yacc.c:1646 */
4114 break;
4115
4116 case 347:
4117 #line 1535 "util/configparser.y" /* yacc.c:1646 */
40974118 {
40984119 OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
40994120 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
41024123 (strcmp((yyvsp[0].str), "yes")==0);
41034124 free((yyvsp[0].str));
41044125 }
4105 #line 4107 "util/configparser.c" /* yacc.c:1646 */
4106 break;
4107
4108 case 346:
4109 #line 1534 "util/configparser.y" /* yacc.c:1646 */
4126 #line 4128 "util/configparser.c" /* yacc.c:1646 */
4127 break;
4128
4129 case 348:
4130 #line 1544 "util/configparser.y" /* yacc.c:1646 */
41104131 {
41114132 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
41124133 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
41134134 yyerror("memory size expected");
41144135 free((yyvsp[0].str));
41154136 }
4116 #line 4118 "util/configparser.c" /* yacc.c:1646 */
4117 break;
4118
4119 case 347:
4120 #line 1542 "util/configparser.y" /* yacc.c:1646 */
4137 #line 4139 "util/configparser.c" /* yacc.c:1646 */
4138 break;
4139
4140 case 349:
4141 #line 1552 "util/configparser.y" /* yacc.c:1646 */
41214142 {
41224143 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
41234144 if(atoi((yyvsp[0].str)) == 0)
41294150 }
41304151 free((yyvsp[0].str));
41314152 }
4132 #line 4134 "util/configparser.c" /* yacc.c:1646 */
4133 break;
4134
4135 case 348:
4136 #line 1555 "util/configparser.y" /* yacc.c:1646 */
4153 #line 4155 "util/configparser.c" /* yacc.c:1646 */
4154 break;
4155
4156 case 350:
4157 #line 1565 "util/configparser.y" /* yacc.c:1646 */
41374158 {
41384159 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
41394160 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
41404161 yyerror("memory size expected");
41414162 free((yyvsp[0].str));
41424163 }
4143 #line 4145 "util/configparser.c" /* yacc.c:1646 */
4144 break;
4145
4146 case 349:
4147 #line 1563 "util/configparser.y" /* yacc.c:1646 */
4164 #line 4166 "util/configparser.c" /* yacc.c:1646 */
4165 break;
4166
4167 case 351:
4168 #line 1573 "util/configparser.y" /* yacc.c:1646 */
41484169 {
41494170 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
41504171 if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
41724193 fatal_exit("out of memory adding local-zone");
41734194 }
41744195 }
4175 #line 4177 "util/configparser.c" /* yacc.c:1646 */
4176 break;
4177
4178 case 350:
4179 #line 1592 "util/configparser.y" /* yacc.c:1646 */
4196 #line 4198 "util/configparser.c" /* yacc.c:1646 */
4197 break;
4198
4199 case 352:
4200 #line 1602 "util/configparser.y" /* yacc.c:1646 */
41804201 {
41814202 OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
41824203 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
41834204 fatal_exit("out of memory adding local-data");
41844205 }
4185 #line 4187 "util/configparser.c" /* yacc.c:1646 */
4186 break;
4187
4188 case 351:
4189 #line 1599 "util/configparser.y" /* yacc.c:1646 */
4206 #line 4208 "util/configparser.c" /* yacc.c:1646 */
4207 break;
4208
4209 case 353:
4210 #line 1609 "util/configparser.y" /* yacc.c:1646 */
41904211 {
41914212 char* ptr;
41924213 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
42004221 yyerror("local-data-ptr could not be reversed");
42014222 }
42024223 }
4203 #line 4205 "util/configparser.c" /* yacc.c:1646 */
4204 break;
4205
4206 case 352:
4207 #line 1614 "util/configparser.y" /* yacc.c:1646 */
4224 #line 4226 "util/configparser.c" /* yacc.c:1646 */
4225 break;
4226
4227 case 354:
4228 #line 1624 "util/configparser.y" /* yacc.c:1646 */
42084229 {
42094230 OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
42104231 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
42134234 (strcmp((yyvsp[0].str), "yes")==0);
42144235 free((yyvsp[0].str));
42154236 }
4216 #line 4218 "util/configparser.c" /* yacc.c:1646 */
4217 break;
4218
4219 case 353:
4220 #line 1624 "util/configparser.y" /* yacc.c:1646 */
4237 #line 4239 "util/configparser.c" /* yacc.c:1646 */
4238 break;
4239
4240 case 355:
4241 #line 1634 "util/configparser.y" /* yacc.c:1646 */
42214242 {
42224243 OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
42234244 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
42264247 (strcmp((yyvsp[0].str), "yes")==0);
42274248 free((yyvsp[0].str));
42284249 }
4229 #line 4231 "util/configparser.c" /* yacc.c:1646 */
4230 break;
4231
4232 case 354:
4233 #line 1634 "util/configparser.y" /* yacc.c:1646 */
4250 #line 4252 "util/configparser.c" /* yacc.c:1646 */
4251 break;
4252
4253 case 356:
4254 #line 1644 "util/configparser.y" /* yacc.c:1646 */
42344255 {
42354256 OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
42364257 cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
42374258 free((yyvsp[0].str));
42384259 }
4239 #line 4241 "util/configparser.c" /* yacc.c:1646 */
4240 break;
4241
4242 case 355:
4243 #line 1641 "util/configparser.y" /* yacc.c:1646 */
4260 #line 4262 "util/configparser.c" /* yacc.c:1646 */
4261 break;
4262
4263 case 357:
4264 #line 1651 "util/configparser.y" /* yacc.c:1646 */
42444265 {
42454266 OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
42464267 free(cfg_parser->cfg->dns64_prefix);
42474268 cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
42484269 }
4249 #line 4251 "util/configparser.c" /* yacc.c:1646 */
4250 break;
4251
4252 case 356:
4253 #line 1648 "util/configparser.y" /* yacc.c:1646 */
4270 #line 4272 "util/configparser.c" /* yacc.c:1646 */
4271 break;
4272
4273 case 358:
4274 #line 1658 "util/configparser.y" /* yacc.c:1646 */
42544275 {
42554276 OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
42564277 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
42584279 else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
42594280 free((yyvsp[0].str));
42604281 }
4261 #line 4263 "util/configparser.c" /* yacc.c:1646 */
4262 break;
4263
4264 case 357:
4265 #line 1657 "util/configparser.y" /* yacc.c:1646 */
4282 #line 4284 "util/configparser.c" /* yacc.c:1646 */
4283 break;
4284
4285 case 359:
4286 #line 1667 "util/configparser.y" /* yacc.c:1646 */
42664287 {
42674288 char* p, *s = (yyvsp[0].str);
42684289 OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
42754296 }
42764297 free((yyvsp[0].str));
42774298 }
4278 #line 4280 "util/configparser.c" /* yacc.c:1646 */
4279 break;
4280
4281 case 358:
4282 #line 1671 "util/configparser.y" /* yacc.c:1646 */
4299 #line 4301 "util/configparser.c" /* yacc.c:1646 */
4300 break;
4301
4302 case 360:
4303 #line 1681 "util/configparser.y" /* yacc.c:1646 */
42834304 {
42844305 size_t len = 0;
42854306 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
42974318 }
42984319 }
42994320 }
4300 #line 4302 "util/configparser.c" /* yacc.c:1646 */
4301 break;
4302
4303 case 359:
4304 #line 1690 "util/configparser.y" /* yacc.c:1646 */
4321 #line 4323 "util/configparser.c" /* yacc.c:1646 */
4322 break;
4323
4324 case 361:
4325 #line 1700 "util/configparser.y" /* yacc.c:1646 */
43054326 {
43064327 size_t len = 0;
43074328 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
43194340 }
43204341 }
43214342 }
4322 #line 4324 "util/configparser.c" /* yacc.c:1646 */
4323 break;
4324
4325 case 360:
4326 #line 1709 "util/configparser.y" /* yacc.c:1646 */
4343 #line 4345 "util/configparser.c" /* yacc.c:1646 */
4344 break;
4345
4346 case 362:
4347 #line 1719 "util/configparser.y" /* yacc.c:1646 */
43274348 {
43284349 OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
43294350 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
43344355 free((yyvsp[0].str));
43354356 }
43364357 }
4337 #line 4339 "util/configparser.c" /* yacc.c:1646 */
4338 break;
4339
4340 case 361:
4341 #line 1721 "util/configparser.y" /* yacc.c:1646 */
4358 #line 4360 "util/configparser.c" /* yacc.c:1646 */
4359 break;
4360
4361 case 363:
4362 #line 1731 "util/configparser.y" /* yacc.c:1646 */
43424363 {
43434364 OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
43444365 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
43494370 free((yyvsp[0].str));
43504371 }
43514372 }
4352 #line 4354 "util/configparser.c" /* yacc.c:1646 */
4353 break;
4354
4355 case 362:
4356 #line 1733 "util/configparser.y" /* yacc.c:1646 */
4373 #line 4375 "util/configparser.c" /* yacc.c:1646 */
4374 break;
4375
4376 case 364:
4377 #line 1743 "util/configparser.y" /* yacc.c:1646 */
43574378 {
43584379 OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
43594380 if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
43644385 free((yyvsp[0].str));
43654386 }
43664387 }
4367 #line 4369 "util/configparser.c" /* yacc.c:1646 */
4368 break;
4369
4370 case 363:
4371 #line 1745 "util/configparser.y" /* yacc.c:1646 */
4388 #line 4390 "util/configparser.c" /* yacc.c:1646 */
4389 break;
4390
4391 case 365:
4392 #line 1755 "util/configparser.y" /* yacc.c:1646 */
43724393 {
43734394 OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
43744395 if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
43784399 free((yyvsp[0].str));
43794400 }
43804401 }
4381 #line 4383 "util/configparser.c" /* yacc.c:1646 */
4382 break;
4383
4384 case 364:
4385 #line 1756 "util/configparser.y" /* yacc.c:1646 */
4402 #line 4404 "util/configparser.c" /* yacc.c:1646 */
4403 break;
4404
4405 case 366:
4406 #line 1766 "util/configparser.y" /* yacc.c:1646 */
43864407 {
43874408 size_t len = 0;
43884409 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
44004421 }
44014422 }
44024423 }
4403 #line 4405 "util/configparser.c" /* yacc.c:1646 */
4404 break;
4405
4406 case 365:
4407 #line 1775 "util/configparser.y" /* yacc.c:1646 */
4424 #line 4426 "util/configparser.c" /* yacc.c:1646 */
4425 break;
4426
4427 case 367:
4428 #line 1785 "util/configparser.y" /* yacc.c:1646 */
44084429 {
44094430 OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
44104431 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
44124433 else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
44134434 free((yyvsp[0].str));
44144435 }
4415 #line 4417 "util/configparser.c" /* yacc.c:1646 */
4416 break;
4417
4418 case 366:
4419 #line 1785 "util/configparser.y" /* yacc.c:1646 */
4436 #line 4438 "util/configparser.c" /* yacc.c:1646 */
4437 break;
4438
4439 case 368:
4440 #line 1795 "util/configparser.y" /* yacc.c:1646 */
44204441 {
44214442 OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
44224443 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
44244445 else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
44254446 free((yyvsp[0].str));
44264447 }
4427 #line 4429 "util/configparser.c" /* yacc.c:1646 */
4428 break;
4429
4430 case 367:
4431 #line 1794 "util/configparser.y" /* yacc.c:1646 */
4448 #line 4450 "util/configparser.c" /* yacc.c:1646 */
4449 break;
4450
4451 case 369:
4452 #line 1804 "util/configparser.y" /* yacc.c:1646 */
44324453 {
44334454 OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
44344455 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
44354456 yyerror("memory size expected");
44364457 free((yyvsp[0].str));
44374458 }
4438 #line 4440 "util/configparser.c" /* yacc.c:1646 */
4439 break;
4440
4441 case 368:
4442 #line 1802 "util/configparser.y" /* yacc.c:1646 */
4459 #line 4461 "util/configparser.c" /* yacc.c:1646 */
4460 break;
4461
4462 case 370:
4463 #line 1812 "util/configparser.y" /* yacc.c:1646 */
44434464 {
44444465 OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
44454466 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
44464467 yyerror("memory size expected");
44474468 free((yyvsp[0].str));
44484469 }
4449 #line 4451 "util/configparser.c" /* yacc.c:1646 */
4450 break;
4451
4452 case 369:
4453 #line 1810 "util/configparser.y" /* yacc.c:1646 */
4470 #line 4472 "util/configparser.c" /* yacc.c:1646 */
4471 break;
4472
4473 case 371:
4474 #line 1820 "util/configparser.y" /* yacc.c:1646 */
44544475 {
44554476 OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
44564477 if(atoi((yyvsp[0].str)) == 0)
44624483 }
44634484 free((yyvsp[0].str));
44644485 }
4465 #line 4467 "util/configparser.c" /* yacc.c:1646 */
4466 break;
4467
4468 case 370:
4469 #line 1823 "util/configparser.y" /* yacc.c:1646 */
4486 #line 4488 "util/configparser.c" /* yacc.c:1646 */
4487 break;
4488
4489 case 372:
4490 #line 1833 "util/configparser.y" /* yacc.c:1646 */
44704491 {
44714492 OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
44724493 if(atoi((yyvsp[0].str)) == 0)
44784499 }
44794500 free((yyvsp[0].str));
44804501 }
4481 #line 4483 "util/configparser.c" /* yacc.c:1646 */
4482 break;
4483
4484 case 371:
4485 #line 1836 "util/configparser.y" /* yacc.c:1646 */
4502 #line 4504 "util/configparser.c" /* yacc.c:1646 */
4503 break;
4504
4505 case 373:
4506 #line 1846 "util/configparser.y" /* yacc.c:1646 */
44864507 {
44874508 OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
44884509 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
44944515 "ratelimit-for-domain");
44954516 }
44964517 }
4497 #line 4499 "util/configparser.c" /* yacc.c:1646 */
4498 break;
4499
4500 case 372:
4501 #line 1849 "util/configparser.y" /* yacc.c:1646 */
4518 #line 4520 "util/configparser.c" /* yacc.c:1646 */
4519 break;
4520
4521 case 374:
4522 #line 1859 "util/configparser.y" /* yacc.c:1646 */
45024523 {
45034524 OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
45044525 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
45104531 "ratelimit-below-domain");
45114532 }
45124533 }
4513 #line 4515 "util/configparser.c" /* yacc.c:1646 */
4514 break;
4515
4516 case 373:
4517 #line 1862 "util/configparser.y" /* yacc.c:1646 */
4534 #line 4536 "util/configparser.c" /* yacc.c:1646 */
4535 break;
4536
4537 case 375:
4538 #line 1872 "util/configparser.y" /* yacc.c:1646 */
45184539 {
45194540 OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
45204541 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
45224543 else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
45234544 free((yyvsp[0].str));
45244545 }
4525 #line 4527 "util/configparser.c" /* yacc.c:1646 */
4526 break;
4527
4528 case 374:
4529 #line 1871 "util/configparser.y" /* yacc.c:1646 */
4546 #line 4548 "util/configparser.c" /* yacc.c:1646 */
4547 break;
4548
4549 case 376:
4550 #line 1881 "util/configparser.y" /* yacc.c:1646 */
45304551 {
45314552 OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
45324553 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
45344555 else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
45354556 free((yyvsp[0].str));
45364557 }
4537 #line 4539 "util/configparser.c" /* yacc.c:1646 */
4538 break;
4539
4540 case 375:
4541 #line 1880 "util/configparser.y" /* yacc.c:1646 */
4558 #line 4560 "util/configparser.c" /* yacc.c:1646 */
4559 break;
4560
4561 case 377:
4562 #line 1890 "util/configparser.y" /* yacc.c:1646 */
45424563 {
45434564 OUTYY(("P(server_low_rtt:%s)\n", (yyvsp[0].str)));
45444565 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
45464567 else cfg_parser->cfg->low_rtt = atoi((yyvsp[0].str));
45474568 free((yyvsp[0].str));
45484569 }
4549 #line 4551 "util/configparser.c" /* yacc.c:1646 */
4550 break;
4551
4552 case 376:
4553 #line 1889 "util/configparser.y" /* yacc.c:1646 */
4570 #line 4572 "util/configparser.c" /* yacc.c:1646 */
4571 break;
4572
4573 case 378:
4574 #line 1899 "util/configparser.y" /* yacc.c:1646 */
45544575 {
4555 OUTYY(("P(server_low_rtt_pct:%s)\n", (yyvsp[0].str)));
4576 OUTYY(("P(server_low_rtt_permil:%s)\n", (yyvsp[0].str)));
45564577 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
45574578 yyerror("number expected");
4558 else cfg_parser->cfg->low_rtt_pct = atoi((yyvsp[0].str));
4559 free((yyvsp[0].str));
4560 }
4561 #line 4563 "util/configparser.c" /* yacc.c:1646 */
4562 break;
4563
4564 case 377:
4565 #line 1898 "util/configparser.y" /* yacc.c:1646 */
4579 else cfg_parser->cfg->low_rtt_permil = atoi((yyvsp[0].str));
4580 free((yyvsp[0].str));
4581 }
4582 #line 4584 "util/configparser.c" /* yacc.c:1646 */
4583 break;
4584
4585 case 379:
4586 #line 1908 "util/configparser.y" /* yacc.c:1646 */
45664587 {
45674588 OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
45684589 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45714592 (strcmp((yyvsp[0].str), "yes")==0);
45724593 free((yyvsp[0].str));
45734594 }
4574 #line 4576 "util/configparser.c" /* yacc.c:1646 */
4575 break;
4576
4577 case 378:
4578 #line 1908 "util/configparser.y" /* yacc.c:1646 */
4595 #line 4597 "util/configparser.c" /* yacc.c:1646 */
4596 break;
4597
4598 case 380:
4599 #line 1918 "util/configparser.y" /* yacc.c:1646 */
45794600 {
45804601 OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
45814602 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
45844605 (strcmp((yyvsp[0].str), "yes")==0);
45854606 free((yyvsp[0].str));
45864607 }
4587 #line 4589 "util/configparser.c" /* yacc.c:1646 */
4588 break;
4589
4590 case 379:
4591 #line 1918 "util/configparser.y" /* yacc.c:1646 */
4608 #line 4610 "util/configparser.c" /* yacc.c:1646 */
4609 break;
4610
4611 case 381:
4612 #line 1928 "util/configparser.y" /* yacc.c:1646 */
45924613 {
45934614 #ifdef USE_IPSECMOD
45944615 OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
46004621 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
46014622 #endif
46024623 }
4603 #line 4605 "util/configparser.c" /* yacc.c:1646 */
4604 break;
4605
4606 case 380:
4607 #line 1931 "util/configparser.y" /* yacc.c:1646 */
4624 #line 4626 "util/configparser.c" /* yacc.c:1646 */
4625 break;
4626
4627 case 382:
4628 #line 1941 "util/configparser.y" /* yacc.c:1646 */
46084629 {
46094630 #ifdef USE_IPSECMOD
46104631 OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
46164637 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
46174638 #endif
46184639 }
4619 #line 4621 "util/configparser.c" /* yacc.c:1646 */
4620 break;
4621
4622 case 381:
4623 #line 1944 "util/configparser.y" /* yacc.c:1646 */
4640 #line 4642 "util/configparser.c" /* yacc.c:1646 */
4641 break;
4642
4643 case 383:
4644 #line 1954 "util/configparser.y" /* yacc.c:1646 */
46244645 {
46254646 #ifdef USE_IPSECMOD
46264647 OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
46304651 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
46314652 #endif
46324653 }
4633 #line 4635 "util/configparser.c" /* yacc.c:1646 */
4634 break;
4635
4636 case 382:
4637 #line 1955 "util/configparser.y" /* yacc.c:1646 */
4654 #line 4656 "util/configparser.c" /* yacc.c:1646 */
4655 break;
4656
4657 case 384:
4658 #line 1965 "util/configparser.y" /* yacc.c:1646 */
46384659 {
46394660 #ifdef USE_IPSECMOD
46404661 OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
46464667 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
46474668 #endif
46484669 }
4649 #line 4651 "util/configparser.c" /* yacc.c:1646 */
4650 break;
4651
4652 case 383:
4653 #line 1968 "util/configparser.y" /* yacc.c:1646 */
4670 #line 4672 "util/configparser.c" /* yacc.c:1646 */
4671 break;
4672
4673 case 385:
4674 #line 1978 "util/configparser.y" /* yacc.c:1646 */
46544675 {
46554676 #ifdef USE_IPSECMOD
46564677 OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
46604681 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
46614682 #endif
46624683 }
4663 #line 4665 "util/configparser.c" /* yacc.c:1646 */
4664 break;
4665
4666 case 384:
4667 #line 1979 "util/configparser.y" /* yacc.c:1646 */
4684 #line 4686 "util/configparser.c" /* yacc.c:1646 */
4685 break;
4686
4687 case 386:
4688 #line 1989 "util/configparser.y" /* yacc.c:1646 */
46684689 {
46694690 #ifdef USE_IPSECMOD
46704691 OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
46764697 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
46774698 #endif
46784699 }
4679 #line 4681 "util/configparser.c" /* yacc.c:1646 */
4680 break;
4681
4682 case 385:
4683 #line 1992 "util/configparser.y" /* yacc.c:1646 */
4700 #line 4702 "util/configparser.c" /* yacc.c:1646 */
4701 break;
4702
4703 case 387:
4704 #line 2002 "util/configparser.y" /* yacc.c:1646 */
46844705 {
46854706 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
46864707 if(cfg_parser->cfg->stubs->name)
46894710 free(cfg_parser->cfg->stubs->name);
46904711 cfg_parser->cfg->stubs->name = (yyvsp[0].str);
46914712 }
4692 #line 4694 "util/configparser.c" /* yacc.c:1646 */
4693 break;
4694
4695 case 386:
4696 #line 2002 "util/configparser.y" /* yacc.c:1646 */
4713 #line 4715 "util/configparser.c" /* yacc.c:1646 */
4714 break;
4715
4716 case 388:
4717 #line 2012 "util/configparser.y" /* yacc.c:1646 */
46974718 {
46984719 OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
46994720 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
47004721 yyerror("out of memory");
47014722 }
4702 #line 4704 "util/configparser.c" /* yacc.c:1646 */
4703 break;
4704
4705 case 387:
4706 #line 2009 "util/configparser.y" /* yacc.c:1646 */
4723 #line 4725 "util/configparser.c" /* yacc.c:1646 */
4724 break;
4725
4726 case 389:
4727 #line 2019 "util/configparser.y" /* yacc.c:1646 */
47074728 {
47084729 OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
47094730 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
47104731 yyerror("out of memory");
47114732 }
4712 #line 4714 "util/configparser.c" /* yacc.c:1646 */
4713 break;
4714
4715 case 388:
4716 #line 2016 "util/configparser.y" /* yacc.c:1646 */
4733 #line 4735 "util/configparser.c" /* yacc.c:1646 */
4734 break;
4735
4736 case 390:
4737 #line 2026 "util/configparser.y" /* yacc.c:1646 */
47174738 {
47184739 OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
47194740 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47214742 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
47224743 free((yyvsp[0].str));
47234744 }
4724 #line 4726 "util/configparser.c" /* yacc.c:1646 */
4725 break;
4726
4727 case 389:
4728 #line 2025 "util/configparser.y" /* yacc.c:1646 */
4745 #line 4747 "util/configparser.c" /* yacc.c:1646 */
4746 break;
4747
4748 case 391:
4749 #line 2035 "util/configparser.y" /* yacc.c:1646 */
47294750 {
47304751 OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
47314752 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47344755 (strcmp((yyvsp[0].str), "yes")==0);
47354756 free((yyvsp[0].str));
47364757 }
4737 #line 4739 "util/configparser.c" /* yacc.c:1646 */
4738 break;
4739
4740 case 390:
4741 #line 2035 "util/configparser.y" /* yacc.c:1646 */
4758 #line 4760 "util/configparser.c" /* yacc.c:1646 */
4759 break;
4760
4761 case 392:
4762 #line 2045 "util/configparser.y" /* yacc.c:1646 */
47424763 {
47434764 OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
47444765 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47474768 (strcmp((yyvsp[0].str), "yes")==0);
47484769 free((yyvsp[0].str));
47494770 }
4750 #line 4752 "util/configparser.c" /* yacc.c:1646 */
4751 break;
4752
4753 case 391:
4754 #line 2045 "util/configparser.y" /* yacc.c:1646 */
4771 #line 4773 "util/configparser.c" /* yacc.c:1646 */
4772 break;
4773
4774 case 393:
4775 #line 2055 "util/configparser.y" /* yacc.c:1646 */
47554776 {
47564777 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
47574778 if(cfg_parser->cfg->forwards->name)
47604781 free(cfg_parser->cfg->forwards->name);
47614782 cfg_parser->cfg->forwards->name = (yyvsp[0].str);
47624783 }
4763 #line 4765 "util/configparser.c" /* yacc.c:1646 */
4764 break;
4765
4766 case 392:
4767 #line 2055 "util/configparser.y" /* yacc.c:1646 */
4784 #line 4786 "util/configparser.c" /* yacc.c:1646 */
4785 break;
4786
4787 case 394:
4788 #line 2065 "util/configparser.y" /* yacc.c:1646 */
47684789 {
47694790 OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
47704791 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
47714792 yyerror("out of memory");
47724793 }
4773 #line 4775 "util/configparser.c" /* yacc.c:1646 */
4774 break;
4775
4776 case 393:
4777 #line 2062 "util/configparser.y" /* yacc.c:1646 */
4794 #line 4796 "util/configparser.c" /* yacc.c:1646 */
4795 break;
4796
4797 case 395:
4798 #line 2072 "util/configparser.y" /* yacc.c:1646 */
47784799 {
47794800 OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
47804801 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
47814802 yyerror("out of memory");
47824803 }
4783 #line 4785 "util/configparser.c" /* yacc.c:1646 */
4784 break;
4785
4786 case 394:
4787 #line 2069 "util/configparser.y" /* yacc.c:1646 */
4804 #line 4806 "util/configparser.c" /* yacc.c:1646 */
4805 break;
4806
4807 case 396:
4808 #line 2079 "util/configparser.y" /* yacc.c:1646 */
47884809 {
47894810 OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
47904811 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
47924813 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
47934814 free((yyvsp[0].str));
47944815 }
4795 #line 4797 "util/configparser.c" /* yacc.c:1646 */
4796 break;
4797
4798 case 395:
4799 #line 2078 "util/configparser.y" /* yacc.c:1646 */
4816 #line 4818 "util/configparser.c" /* yacc.c:1646 */
4817 break;
4818
4819 case 397:
4820 #line 2088 "util/configparser.y" /* yacc.c:1646 */
48004821 {
48014822 OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
48024823 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48054826 (strcmp((yyvsp[0].str), "yes")==0);
48064827 free((yyvsp[0].str));
48074828 }
4808 #line 4810 "util/configparser.c" /* yacc.c:1646 */
4809 break;
4810
4811 case 396:
4812 #line 2088 "util/configparser.y" /* yacc.c:1646 */
4829 #line 4831 "util/configparser.c" /* yacc.c:1646 */
4830 break;
4831
4832 case 398:
4833 #line 2098 "util/configparser.y" /* yacc.c:1646 */
48134834 {
48144835 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
48154836 if(cfg_parser->cfg->auths->name)
48184839 free(cfg_parser->cfg->auths->name);
48194840 cfg_parser->cfg->auths->name = (yyvsp[0].str);
48204841 }
4821 #line 4823 "util/configparser.c" /* yacc.c:1646 */
4822 break;
4823
4824 case 397:
4825 #line 2098 "util/configparser.y" /* yacc.c:1646 */
4842 #line 4844 "util/configparser.c" /* yacc.c:1646 */
4843 break;
4844
4845 case 399:
4846 #line 2108 "util/configparser.y" /* yacc.c:1646 */
48264847 {
48274848 OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
48284849 free(cfg_parser->cfg->auths->zonefile);
48294850 cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
48304851 }
4831 #line 4833 "util/configparser.c" /* yacc.c:1646 */
4832 break;
4833
4834 case 398:
4835 #line 2105 "util/configparser.y" /* yacc.c:1646 */
4852 #line 4854 "util/configparser.c" /* yacc.c:1646 */
4853 break;
4854
4855 case 400:
4856 #line 2115 "util/configparser.y" /* yacc.c:1646 */
48364857 {
48374858 OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
48384859 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
48394860 yyerror("out of memory");
48404861 }
4841 #line 4843 "util/configparser.c" /* yacc.c:1646 */
4842 break;
4843
4844 case 399:
4845 #line 2112 "util/configparser.y" /* yacc.c:1646 */
4862 #line 4864 "util/configparser.c" /* yacc.c:1646 */
4863 break;
4864
4865 case 401:
4866 #line 2122 "util/configparser.y" /* yacc.c:1646 */
48464867 {
48474868 OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
48484869 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
48494870 yyerror("out of memory");
48504871 }
4851 #line 4853 "util/configparser.c" /* yacc.c:1646 */
4852 break;
4853
4854 case 400:
4855 #line 2119 "util/configparser.y" /* yacc.c:1646 */
4872 #line 4874 "util/configparser.c" /* yacc.c:1646 */
4873 break;
4874
4875 case 402:
4876 #line 2129 "util/configparser.y" /* yacc.c:1646 */
48564877 {
48574878 OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
48584879 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
48594880 (yyvsp[0].str)))
48604881 yyerror("out of memory");
48614882 }
4862 #line 4864 "util/configparser.c" /* yacc.c:1646 */
4863 break;
4864
4865 case 401:
4866 #line 2127 "util/configparser.y" /* yacc.c:1646 */
4883 #line 4885 "util/configparser.c" /* yacc.c:1646 */
4884 break;
4885
4886 case 403:
4887 #line 2137 "util/configparser.y" /* yacc.c:1646 */
48674888 {
48684889 OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
48694890 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48724893 (strcmp((yyvsp[0].str), "yes")==0);
48734894 free((yyvsp[0].str));
48744895 }
4875 #line 4877 "util/configparser.c" /* yacc.c:1646 */
4876 break;
4877
4878 case 402:
4879 #line 2137 "util/configparser.y" /* yacc.c:1646 */
4896 #line 4898 "util/configparser.c" /* yacc.c:1646 */
4897 break;
4898
4899 case 404:
4900 #line 2147 "util/configparser.y" /* yacc.c:1646 */
48804901 {
48814902 OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
48824903 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48854906 (strcmp((yyvsp[0].str), "yes")==0);
48864907 free((yyvsp[0].str));
48874908 }
4888 #line 4890 "util/configparser.c" /* yacc.c:1646 */
4889 break;
4890
4891 case 403:
4892 #line 2147 "util/configparser.y" /* yacc.c:1646 */
4909 #line 4911 "util/configparser.c" /* yacc.c:1646 */
4910 break;
4911
4912 case 405:
4913 #line 2157 "util/configparser.y" /* yacc.c:1646 */
48934914 {
48944915 OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
48954916 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
48984919 (strcmp((yyvsp[0].str), "yes")==0);
48994920 free((yyvsp[0].str));
49004921 }
4901 #line 4903 "util/configparser.c" /* yacc.c:1646 */
4902 break;
4903
4904 case 404:
4905 #line 2157 "util/configparser.y" /* yacc.c:1646 */
4922 #line 4924 "util/configparser.c" /* yacc.c:1646 */
4923 break;
4924
4925 case 406:
4926 #line 2167 "util/configparser.y" /* yacc.c:1646 */
49064927 {
49074928 OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
49084929 if(cfg_parser->cfg->views->name)
49114932 free(cfg_parser->cfg->views->name);
49124933 cfg_parser->cfg->views->name = (yyvsp[0].str);
49134934 }
4914 #line 4916 "util/configparser.c" /* yacc.c:1646 */
4915 break;
4916
4917 case 405:
4918 #line 2167 "util/configparser.y" /* yacc.c:1646 */
4935 #line 4937 "util/configparser.c" /* yacc.c:1646 */
4936 break;
4937
4938 case 407:
4939 #line 2177 "util/configparser.y" /* yacc.c:1646 */
49194940 {
49204941 OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
49214942 if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
49444965 fatal_exit("out of memory adding local-zone");
49454966 }
49464967 }
4947 #line 4949 "util/configparser.c" /* yacc.c:1646 */
4948 break;
4949
4950 case 406:
4951 #line 2197 "util/configparser.y" /* yacc.c:1646 */
4968 #line 4970 "util/configparser.c" /* yacc.c:1646 */
4969 break;
4970
4971 case 408:
4972 #line 2207 "util/configparser.y" /* yacc.c:1646 */
49524973 {
49534974 OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
49544975 validate_respip_action((yyvsp[0].str));
49574978 fatal_exit("out of memory adding per-view "
49584979 "response-ip action");
49594980 }
4960 #line 4962 "util/configparser.c" /* yacc.c:1646 */
4961 break;
4962
4963 case 407:
4964 #line 2207 "util/configparser.y" /* yacc.c:1646 */
4981 #line 4983 "util/configparser.c" /* yacc.c:1646 */
4982 break;
4983
4984 case 409:
4985 #line 2217 "util/configparser.y" /* yacc.c:1646 */
49654986 {
49664987 OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
49674988 if(!cfg_str2list_insert(
49684989 &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
49694990 fatal_exit("out of memory adding response-ip-data");
49704991 }
4971 #line 4973 "util/configparser.c" /* yacc.c:1646 */
4972 break;
4973
4974 case 408:
4975 #line 2215 "util/configparser.y" /* yacc.c:1646 */
4992 #line 4994 "util/configparser.c" /* yacc.c:1646 */
4993 break;
4994
4995 case 410:
4996 #line 2225 "util/configparser.y" /* yacc.c:1646 */
49764997 {
49774998 OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
49784999 if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
49805001 free((yyvsp[0].str));
49815002 }
49825003 }
4983 #line 4985 "util/configparser.c" /* yacc.c:1646 */
4984 break;
4985
4986 case 409:
4987 #line 2224 "util/configparser.y" /* yacc.c:1646 */
5004 #line 5006 "util/configparser.c" /* yacc.c:1646 */
5005 break;
5006
5007 case 411:
5008 #line 2234 "util/configparser.y" /* yacc.c:1646 */
49885009 {
49895010 char* ptr;
49905011 OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
49985019 yyerror("local-data-ptr could not be reversed");
49995020 }
50005021 }
5001 #line 5003 "util/configparser.c" /* yacc.c:1646 */
5002 break;
5003
5004 case 410:
5005 #line 2239 "util/configparser.y" /* yacc.c:1646 */
5022 #line 5024 "util/configparser.c" /* yacc.c:1646 */
5023 break;
5024
5025 case 412:
5026 #line 2249 "util/configparser.y" /* yacc.c:1646 */
50065027 {
50075028 OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
50085029 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
50105031 else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
50115032 free((yyvsp[0].str));
50125033 }
5013 #line 5015 "util/configparser.c" /* yacc.c:1646 */
5014 break;
5015
5016 case 411:
5017 #line 2248 "util/configparser.y" /* yacc.c:1646 */
5034 #line 5036 "util/configparser.c" /* yacc.c:1646 */
5035 break;
5036
5037 case 413:
5038 #line 2258 "util/configparser.y" /* yacc.c:1646 */
50185039 {
50195040 OUTYY(("\nP(remote-control:)\n"));
50205041 }
5021 #line 5023 "util/configparser.c" /* yacc.c:1646 */
5022 break;
5023
5024 case 422:
5025 #line 2259 "util/configparser.y" /* yacc.c:1646 */
5042 #line 5044 "util/configparser.c" /* yacc.c:1646 */
5043 break;
5044
5045 case 424:
5046 #line 2269 "util/configparser.y" /* yacc.c:1646 */
50265047 {
50275048 OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
50285049 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
50315052 (strcmp((yyvsp[0].str), "yes")==0);
50325053 free((yyvsp[0].str));
50335054 }
5034 #line 5036 "util/configparser.c" /* yacc.c:1646 */
5035 break;
5036
5037 case 423:
5038 #line 2269 "util/configparser.y" /* yacc.c:1646 */
5055 #line 5057 "util/configparser.c" /* yacc.c:1646 */
5056 break;
5057
5058 case 425:
5059 #line 2279 "util/configparser.y" /* yacc.c:1646 */
50395060 {
50405061 OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
50415062 if(atoi((yyvsp[0].str)) == 0)
50435064 else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
50445065 free((yyvsp[0].str));
50455066 }
5046 #line 5048 "util/configparser.c" /* yacc.c:1646 */
5047 break;
5048
5049 case 424:
5050 #line 2278 "util/configparser.y" /* yacc.c:1646 */
5067 #line 5069 "util/configparser.c" /* yacc.c:1646 */
5068 break;
5069
5070 case 426:
5071 #line 2288 "util/configparser.y" /* yacc.c:1646 */
50515072 {
50525073 OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
50535074 if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
50545075 yyerror("out of memory");
50555076 }
5056 #line 5058 "util/configparser.c" /* yacc.c:1646 */
5057 break;
5058
5059 case 425:
5060 #line 2285 "util/configparser.y" /* yacc.c:1646 */
5077 #line 5079 "util/configparser.c" /* yacc.c:1646 */
5078 break;
5079
5080 case 427:
5081 #line 2295 "util/configparser.y" /* yacc.c:1646 */
50615082 {
50625083 OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
50635084 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
50665087 (strcmp((yyvsp[0].str), "yes")==0);
50675088 free((yyvsp[0].str));
50685089 }
5069 #line 5071 "util/configparser.c" /* yacc.c:1646 */
5070 break;
5071
5072 case 426:
5073 #line 2295 "util/configparser.y" /* yacc.c:1646 */
5090 #line 5092 "util/configparser.c" /* yacc.c:1646 */
5091 break;
5092
5093 case 428:
5094 #line 2305 "util/configparser.y" /* yacc.c:1646 */
50745095 {
50755096 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
50765097 free(cfg_parser->cfg->server_key_file);
50775098 cfg_parser->cfg->server_key_file = (yyvsp[0].str);
50785099 }
5079 #line 5081 "util/configparser.c" /* yacc.c:1646 */
5080 break;
5081
5082 case 427:
5083 #line 2302 "util/configparser.y" /* yacc.c:1646 */
5100 #line 5102 "util/configparser.c" /* yacc.c:1646 */
5101 break;
5102
5103 case 429:
5104 #line 2312 "util/configparser.y" /* yacc.c:1646 */
50845105 {
50855106 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
50865107 free(cfg_parser->cfg->server_cert_file);
50875108 cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
50885109 }
5089 #line 5091 "util/configparser.c" /* yacc.c:1646 */
5090 break;
5091
5092 case 428:
5093 #line 2309 "util/configparser.y" /* yacc.c:1646 */
5110 #line 5112 "util/configparser.c" /* yacc.c:1646 */
5111 break;
5112
5113 case 430:
5114 #line 2319 "util/configparser.y" /* yacc.c:1646 */
50945115 {
50955116 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
50965117 free(cfg_parser->cfg->control_key_file);
50975118 cfg_parser->cfg->control_key_file = (yyvsp[0].str);
50985119 }
5099 #line 5101 "util/configparser.c" /* yacc.c:1646 */
5100 break;
5101
5102 case 429:
5103 #line 2316 "util/configparser.y" /* yacc.c:1646 */
5120 #line 5122 "util/configparser.c" /* yacc.c:1646 */
5121 break;
5122
5123 case 431:
5124 #line 2326 "util/configparser.y" /* yacc.c:1646 */
51045125 {
51055126 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
51065127 free(cfg_parser->cfg->control_cert_file);
51075128 cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
51085129 }
5109 #line 5111 "util/configparser.c" /* yacc.c:1646 */
5110 break;
5111
5112 case 430:
5113 #line 2323 "util/configparser.y" /* yacc.c:1646 */
5130 #line 5132 "util/configparser.c" /* yacc.c:1646 */
5131 break;
5132
5133 case 432:
5134 #line 2333 "util/configparser.y" /* yacc.c:1646 */
51145135 {
51155136 OUTYY(("\nP(dnstap:)\n"));
51165137 }
5117 #line 5119 "util/configparser.c" /* yacc.c:1646 */
5118 break;
5119
5120 case 445:
5121 #line 2340 "util/configparser.y" /* yacc.c:1646 */
5138 #line 5140 "util/configparser.c" /* yacc.c:1646 */
5139 break;
5140
5141 case 447:
5142 #line 2350 "util/configparser.y" /* yacc.c:1646 */
51225143 {
51235144 OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
51245145 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
51255146 yyerror("expected yes or no.");
51265147 else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
51275148 }
5128 #line 5130 "util/configparser.c" /* yacc.c:1646 */
5129 break;
5130
5131 case 446:
5132 #line 2348 "util/configparser.y" /* yacc.c:1646 */
5149 #line 5151 "util/configparser.c" /* yacc.c:1646 */
5150 break;
5151
5152 case 448:
5153 #line 2358 "util/configparser.y" /* yacc.c:1646 */
51335154 {
51345155 OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
51355156 free(cfg_parser->cfg->dnstap_socket_path);
51365157 cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
51375158 }
5138 #line 5140 "util/configparser.c" /* yacc.c:1646 */
5139 break;
5140
5141 case 447:
5142 #line 2355 "util/configparser.y" /* yacc.c:1646 */
5159 #line 5161 "util/configparser.c" /* yacc.c:1646 */
5160 break;
5161
5162 case 449:
5163 #line 2365 "util/configparser.y" /* yacc.c:1646 */
51435164 {
51445165 OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
51455166 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
51465167 yyerror("expected yes or no.");
51475168 else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
51485169 }
5149 #line 5151 "util/configparser.c" /* yacc.c:1646 */
5150 break;
5151
5152 case 448:
5153 #line 2363 "util/configparser.y" /* yacc.c:1646 */
5170 #line 5172 "util/configparser.c" /* yacc.c:1646 */
5171 break;
5172
5173 case 450:
5174 #line 2373 "util/configparser.y" /* yacc.c:1646 */
51545175 {
51555176 OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
51565177 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
51575178 yyerror("expected yes or no.");
51585179 else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
51595180 }
5160 #line 5162 "util/configparser.c" /* yacc.c:1646 */
5161 break;
5162
5163 case 449:
5164 #line 2371 "util/configparser.y" /* yacc.c:1646 */
5181 #line 5183 "util/configparser.c" /* yacc.c:1646 */
5182 break;
5183
5184 case 451:
5185 #line 2381 "util/configparser.y" /* yacc.c:1646 */
51655186 {
51665187 OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
51675188 free(cfg_parser->cfg->dnstap_identity);
51685189 cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
51695190 }
5170 #line 5172 "util/configparser.c" /* yacc.c:1646 */
5171 break;
5172
5173 case 450:
5174 #line 2378 "util/configparser.y" /* yacc.c:1646 */
5191 #line 5193 "util/configparser.c" /* yacc.c:1646 */
5192 break;
5193
5194 case 452:
5195 #line 2388 "util/configparser.y" /* yacc.c:1646 */
51755196 {
51765197 OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
51775198 free(cfg_parser->cfg->dnstap_version);
51785199 cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
51795200 }
5180 #line 5182 "util/configparser.c" /* yacc.c:1646 */
5181 break;
5182
5183 case 451:
5184 #line 2385 "util/configparser.y" /* yacc.c:1646 */
5201 #line 5203 "util/configparser.c" /* yacc.c:1646 */
5202 break;
5203
5204 case 453:
5205 #line 2395 "util/configparser.y" /* yacc.c:1646 */
51855206 {
51865207 OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
51875208 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
51895210 else cfg_parser->cfg->dnstap_log_resolver_query_messages =
51905211 (strcmp((yyvsp[0].str), "yes")==0);
51915212 }
5192 #line 5194 "util/configparser.c" /* yacc.c:1646 */
5193 break;
5194
5195 case 452:
5196 #line 2394 "util/configparser.y" /* yacc.c:1646 */
5213 #line 5215 "util/configparser.c" /* yacc.c:1646 */
5214 break;
5215
5216 case 454:
5217 #line 2404 "util/configparser.y" /* yacc.c:1646 */
51975218 {
51985219 OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
51995220 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
52015222 else cfg_parser->cfg->dnstap_log_resolver_response_messages =
52025223 (strcmp((yyvsp[0].str), "yes")==0);
52035224 }
5204 #line 5206 "util/configparser.c" /* yacc.c:1646 */
5205 break;
5206
5207 case 453:
5208 #line 2403 "util/configparser.y" /* yacc.c:1646 */
5225 #line 5227 "util/configparser.c" /* yacc.c:1646 */
5226 break;
5227
5228 case 455:
5229 #line 2413 "util/configparser.y" /* yacc.c:1646 */
52095230 {
52105231 OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
52115232 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
52135234 else cfg_parser->cfg->dnstap_log_client_query_messages =
52145235 (strcmp((yyvsp[0].str), "yes")==0);
52155236 }
5216 #line 5218 "util/configparser.c" /* yacc.c:1646 */
5217 break;
5218
5219 case 454:
5220 #line 2412 "util/configparser.y" /* yacc.c:1646 */
5237 #line 5239 "util/configparser.c" /* yacc.c:1646 */
5238 break;
5239
5240 case 456:
5241 #line 2422 "util/configparser.y" /* yacc.c:1646 */
52215242 {
52225243 OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
52235244 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
52255246 else cfg_parser->cfg->dnstap_log_client_response_messages =
52265247 (strcmp((yyvsp[0].str), "yes")==0);
52275248 }
5228 #line 5230 "util/configparser.c" /* yacc.c:1646 */
5229 break;
5230
5231 case 455:
5232 #line 2421 "util/configparser.y" /* yacc.c:1646 */
5249 #line 5251 "util/configparser.c" /* yacc.c:1646 */
5250 break;
5251
5252 case 457:
5253 #line 2431 "util/configparser.y" /* yacc.c:1646 */
52335254 {
52345255 OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
52355256 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
52375258 else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
52385259 (strcmp((yyvsp[0].str), "yes")==0);
52395260 }
5240 #line 5242 "util/configparser.c" /* yacc.c:1646 */
5241 break;
5242
5243 case 456:
5244 #line 2430 "util/configparser.y" /* yacc.c:1646 */
5261 #line 5263 "util/configparser.c" /* yacc.c:1646 */
5262 break;
5263
5264 case 458:
5265 #line 2440 "util/configparser.y" /* yacc.c:1646 */
52455266 {
52465267 OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
52475268 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
52495270 else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
52505271 (strcmp((yyvsp[0].str), "yes")==0);
52515272 }
5252 #line 5254 "util/configparser.c" /* yacc.c:1646 */
5253 break;
5254
5255 case 457:
5256 #line 2439 "util/configparser.y" /* yacc.c:1646 */
5273 #line 5275 "util/configparser.c" /* yacc.c:1646 */
5274 break;
5275
5276 case 459:
5277 #line 2449 "util/configparser.y" /* yacc.c:1646 */
52575278 {
52585279 OUTYY(("\nP(python:)\n"));
52595280 }
5260 #line 5262 "util/configparser.c" /* yacc.c:1646 */
5261 break;
5262
5263 case 461:
5264 #line 2448 "util/configparser.y" /* yacc.c:1646 */
5281 #line 5283 "util/configparser.c" /* yacc.c:1646 */
5282 break;
5283
5284 case 463:
5285 #line 2458 "util/configparser.y" /* yacc.c:1646 */
52655286 {
52665287 OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
52675288 free(cfg_parser->cfg->python_script);
52685289 cfg_parser->cfg->python_script = (yyvsp[0].str);
52695290 }
5270 #line 5272 "util/configparser.c" /* yacc.c:1646 */
5271 break;
5272
5273 case 462:
5274 #line 2454 "util/configparser.y" /* yacc.c:1646 */
5291 #line 5293 "util/configparser.c" /* yacc.c:1646 */
5292 break;
5293
5294 case 464:
5295 #line 2464 "util/configparser.y" /* yacc.c:1646 */
52755296 {
52765297 OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
52775298 if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
52805301 (strcmp((yyvsp[0].str), "yes")==0);
52815302 free((yyvsp[0].str));
52825303 }
5283 #line 5285 "util/configparser.c" /* yacc.c:1646 */
5284 break;
5285
5286 case 463:
5287 #line 2464 "util/configparser.y" /* yacc.c:1646 */
5304 #line 5306 "util/configparser.c" /* yacc.c:1646 */
5305 break;
5306
5307 case 465:
5308 #line 2474 "util/configparser.y" /* yacc.c:1646 */
52885309 {
52895310 OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
52905311 free(cfg_parser->cfg->log_identity);
52915312 cfg_parser->cfg->log_identity = (yyvsp[0].str);
52925313 }
5293 #line 5295 "util/configparser.c" /* yacc.c:1646 */
5294 break;
5295
5296 case 464:
5297 #line 2471 "util/configparser.y" /* yacc.c:1646 */
5314 #line 5316 "util/configparser.c" /* yacc.c:1646 */
5315 break;
5316
5317 case 466:
5318 #line 2481 "util/configparser.y" /* yacc.c:1646 */
52985319 {
52995320 OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
53005321 validate_respip_action((yyvsp[0].str));
53025323 (yyvsp[-1].str), (yyvsp[0].str)))
53035324 fatal_exit("out of memory adding response-ip");
53045325 }
5305 #line 5307 "util/configparser.c" /* yacc.c:1646 */
5306 break;
5307
5308 case 465:
5309 #line 2480 "util/configparser.y" /* yacc.c:1646 */
5326 #line 5328 "util/configparser.c" /* yacc.c:1646 */
5327 break;
5328
5329 case 467:
5330 #line 2490 "util/configparser.y" /* yacc.c:1646 */
53105331 {
53115332 OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
53125333 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
53135334 (yyvsp[-1].str), (yyvsp[0].str)))
53145335 fatal_exit("out of memory adding response-ip-data");
53155336 }
5316 #line 5318 "util/configparser.c" /* yacc.c:1646 */
5317 break;
5318
5319 case 466:
5320 #line 2488 "util/configparser.y" /* yacc.c:1646 */
5337 #line 5339 "util/configparser.c" /* yacc.c:1646 */
5338 break;
5339
5340 case 468:
5341 #line 2498 "util/configparser.y" /* yacc.c:1646 */
53215342 {
53225343 OUTYY(("\nP(dnscrypt:)\n"));
53235344 OUTYY(("\nP(dnscrypt:)\n"));
53245345 }
5325 #line 5327 "util/configparser.c" /* yacc.c:1646 */
5326 break;
5327
5328 case 479:
5329 #line 2505 "util/configparser.y" /* yacc.c:1646 */
5346 #line 5348 "util/configparser.c" /* yacc.c:1646 */
5347 break;
5348
5349 case 481:
5350 #line 2515 "util/configparser.y" /* yacc.c:1646 */
53305351 {
53315352 OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
53325353 if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
53345355 else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
53355356 free((yyvsp[0].str));
53365357 }
5337 #line 5339 "util/configparser.c" /* yacc.c:1646 */
5338 break;
5339
5340 case 480:
5341 #line 2515 "util/configparser.y" /* yacc.c:1646 */
5358 #line 5360 "util/configparser.c" /* yacc.c:1646 */
5359 break;
5360
5361 case 482:
5362 #line 2525 "util/configparser.y" /* yacc.c:1646 */
53425363 {
53435364 OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
53445365
53475368 else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
53485369 free((yyvsp[0].str));
53495370 }
5350 #line 5352 "util/configparser.c" /* yacc.c:1646 */
5351 break;
5352
5353 case 481:
5354 #line 2525 "util/configparser.y" /* yacc.c:1646 */
5371 #line 5373 "util/configparser.c" /* yacc.c:1646 */
5372 break;
5373
5374 case 483:
5375 #line 2535 "util/configparser.y" /* yacc.c:1646 */
53555376 {
53565377 OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
53575378 free(cfg_parser->cfg->dnscrypt_provider);
53585379 cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
53595380 }
5360 #line 5362 "util/configparser.c" /* yacc.c:1646 */
5361 break;
5362
5363 case 482:
5364 #line 2532 "util/configparser.y" /* yacc.c:1646 */
5381 #line 5383 "util/configparser.c" /* yacc.c:1646 */
5382 break;
5383
5384 case 484:
5385 #line 2542 "util/configparser.y" /* yacc.c:1646 */
53655386 {
53665387 OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
53675388 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
53695390 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
53705391 fatal_exit("out of memory adding dnscrypt-provider-cert");
53715392 }
5372 #line 5374 "util/configparser.c" /* yacc.c:1646 */
5373 break;
5374
5375 case 483:
5376 #line 2541 "util/configparser.y" /* yacc.c:1646 */
5393 #line 5395 "util/configparser.c" /* yacc.c:1646 */
5394 break;
5395
5396 case 485:
5397 #line 2551 "util/configparser.y" /* yacc.c:1646 */
53775398 {
53785399 OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
53795400 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
53805401 fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
53815402 }
5382 #line 5384 "util/configparser.c" /* yacc.c:1646 */
5383 break;
5384
5385 case 484:
5386 #line 2548 "util/configparser.y" /* yacc.c:1646 */
5403 #line 5405 "util/configparser.c" /* yacc.c:1646 */
5404 break;
5405
5406 case 486:
5407 #line 2558 "util/configparser.y" /* yacc.c:1646 */
53875408 {
53885409 OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
53895410 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
53915412 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
53925413 fatal_exit("out of memory adding dnscrypt-secret-key");
53935414 }
5394 #line 5396 "util/configparser.c" /* yacc.c:1646 */
5395 break;
5396
5397 case 485:
5398 #line 2557 "util/configparser.y" /* yacc.c:1646 */
5415 #line 5417 "util/configparser.c" /* yacc.c:1646 */
5416 break;
5417
5418 case 487:
5419 #line 2567 "util/configparser.y" /* yacc.c:1646 */
53995420 {
54005421 OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
54015422 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
54025423 yyerror("memory size expected");
54035424 free((yyvsp[0].str));
54045425 }
5405 #line 5407 "util/configparser.c" /* yacc.c:1646 */
5406 break;
5407
5408 case 486:
5409 #line 2565 "util/configparser.y" /* yacc.c:1646 */
5426 #line 5428 "util/configparser.c" /* yacc.c:1646 */
5427 break;
5428
5429 case 488:
5430 #line 2575 "util/configparser.y" /* yacc.c:1646 */
54105431 {
54115432 OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
54125433 if(atoi((yyvsp[0].str)) == 0)
54185439 }
54195440 free((yyvsp[0].str));
54205441 }
5421 #line 5423 "util/configparser.c" /* yacc.c:1646 */
5422 break;
5423
5424 case 487:
5425 #line 2578 "util/configparser.y" /* yacc.c:1646 */
5442 #line 5444 "util/configparser.c" /* yacc.c:1646 */
5443 break;
5444
5445 case 489:
5446 #line 2588 "util/configparser.y" /* yacc.c:1646 */
54265447 {
54275448 OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
54285449 if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
54295450 yyerror("memory size expected");
54305451 free((yyvsp[0].str));
54315452 }
5432 #line 5434 "util/configparser.c" /* yacc.c:1646 */
5433 break;
5434
5435 case 488:
5436 #line 2586 "util/configparser.y" /* yacc.c:1646 */
5453 #line 5455 "util/configparser.c" /* yacc.c:1646 */
5454 break;
5455
5456 case 490:
5457 #line 2596 "util/configparser.y" /* yacc.c:1646 */
54375458 {
54385459 OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
54395460 if(atoi((yyvsp[0].str)) == 0)
54455466 }
54465467 free((yyvsp[0].str));
54475468 }
5448 #line 5450 "util/configparser.c" /* yacc.c:1646 */
5449 break;
5450
5451 case 489:
5452 #line 2599 "util/configparser.y" /* yacc.c:1646 */
5469 #line 5471 "util/configparser.c" /* yacc.c:1646 */
5470 break;
5471
5472 case 491:
5473 #line 2609 "util/configparser.y" /* yacc.c:1646 */
54535474 {
54545475 OUTYY(("\nP(cachedb:)\n"));
54555476 }
5456 #line 5458 "util/configparser.c" /* yacc.c:1646 */
5457 break;
5458
5459 case 497:
5460 #line 2609 "util/configparser.y" /* yacc.c:1646 */
5477 #line 5479 "util/configparser.c" /* yacc.c:1646 */
5478 break;
5479
5480 case 499:
5481 #line 2619 "util/configparser.y" /* yacc.c:1646 */
54615482 {
54625483 #ifdef USE_CACHEDB
54635484 OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
54705491 OUTYY(("P(Compiled without cachedb, ignoring)\n"));
54715492 #endif
54725493 }
5473 #line 5475 "util/configparser.c" /* yacc.c:1646 */
5474 break;
5475
5476 case 498:
5477 #line 2623 "util/configparser.y" /* yacc.c:1646 */
5494 #line 5496 "util/configparser.c" /* yacc.c:1646 */
5495 break;
5496
5497 case 500:
5498 #line 2633 "util/configparser.y" /* yacc.c:1646 */
54785499 {
54795500 #ifdef USE_CACHEDB
54805501 OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
54885509 free((yyvsp[0].str));
54895510 #endif
54905511 }
5491 #line 5493 "util/configparser.c" /* yacc.c:1646 */
5492 break;
5493
5494 case 499:
5495 #line 2638 "util/configparser.y" /* yacc.c:1646 */
5512 #line 5514 "util/configparser.c" /* yacc.c:1646 */
5513 break;
5514
5515 case 501:
5516 #line 2648 "util/configparser.y" /* yacc.c:1646 */
54965517 {
54975518 #if defined(USE_CACHEDB) && defined(USE_REDIS)
54985519 OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
55035524 free((yyvsp[0].str));
55045525 #endif
55055526 }
5506 #line 5508 "util/configparser.c" /* yacc.c:1646 */
5507 break;
5508
5509 case 500:
5510 #line 2650 "util/configparser.y" /* yacc.c:1646 */
5527 #line 5529 "util/configparser.c" /* yacc.c:1646 */
5528 break;
5529
5530 case 502:
5531 #line 2660 "util/configparser.y" /* yacc.c:1646 */
55115532 {
55125533 #if defined(USE_CACHEDB) && defined(USE_REDIS)
55135534 int port;
55215542 #endif
55225543 free((yyvsp[0].str));
55235544 }
5524 #line 5526 "util/configparser.c" /* yacc.c:1646 */
5525 break;
5526
5527 case 501:
5528 #line 2665 "util/configparser.y" /* yacc.c:1646 */
5545 #line 5547 "util/configparser.c" /* yacc.c:1646 */
5546 break;
5547
5548 case 503:
5549 #line 2675 "util/configparser.y" /* yacc.c:1646 */
55295550 {
55305551 #if defined(USE_CACHEDB) && defined(USE_REDIS)
55315552 OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
55375558 #endif
55385559 free((yyvsp[0].str));
55395560 }
5540 #line 5542 "util/configparser.c" /* yacc.c:1646 */
5541 break;
5542
5543
5544 #line 5546 "util/configparser.c" /* yacc.c:1646 */
5561 #line 5563 "util/configparser.c" /* yacc.c:1646 */
5562 break;
5563
5564
5565 #line 5567 "util/configparser.c" /* yacc.c:1646 */
55455566 default: break;
55465567 }
55475568 /* User semantic actions sometimes alter yychar, and that requires
57695790 #endif
57705791 return yyresult;
57715792 }
5772 #line 2677 "util/configparser.y" /* yacc.c:1906 */
5793 #line 2687 "util/configparser.y" /* yacc.c:1906 */
57735794
57745795
57755796 /* parse helper routines could be here */
279279 VAR_URL = 490,
280280 VAR_FOR_DOWNSTREAM = 491,
281281 VAR_FALLBACK_ENABLED = 492,
282 VAR_ADDITIONAL_TLS_PORT = 493,
282 VAR_TLS_ADDITIONAL_PORTS = 493,
283283 VAR_LOW_RTT = 494,
284 VAR_LOW_RTT_PCT = 495,
285 VAR_ALLOW_NOTIFY = 496
284 VAR_LOW_RTT_PERMIL = 495,
285 VAR_ALLOW_NOTIFY = 496,
286 VAR_TLS_WIN_CERT = 497
286287 };
287288 #endif
288289 /* Tokens. */
521522 #define VAR_URL 490
522523 #define VAR_FOR_DOWNSTREAM 491
523524 #define VAR_FALLBACK_ENABLED 492
524 #define VAR_ADDITIONAL_TLS_PORT 493
525 #define VAR_TLS_ADDITIONAL_PORTS 493
525526 #define VAR_LOW_RTT 494
526 #define VAR_LOW_RTT_PCT 495
527 #define VAR_LOW_RTT_PERMIL 495
527528 #define VAR_ALLOW_NOTIFY 496
529 #define VAR_TLS_WIN_CERT 497
528530
529531 /* Value type. */
530532 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
535537
536538 char* str;
537539
538 #line 540 "util/configparser.h" /* yacc.c:1909 */
540 #line 542 "util/configparser.h" /* yacc.c:1909 */
539541 };
540542
541543 typedef union YYSTYPE YYSTYPE;
155155 %token VAR_CACHEDB_REDISHOST VAR_CACHEDB_REDISPORT VAR_CACHEDB_REDISTIMEOUT
156156 %token VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM VAR_FOR_UPSTREAM
157157 %token VAR_AUTH_ZONE VAR_ZONEFILE VAR_MASTER VAR_URL VAR_FOR_DOWNSTREAM
158 %token VAR_FALLBACK_ENABLED VAR_ADDITIONAL_TLS_PORT VAR_LOW_RTT VAR_LOW_RTT_PCT
159 %token VAR_ALLOW_NOTIFY
158 %token VAR_FALLBACK_ENABLED VAR_TLS_ADDITIONAL_PORTS VAR_LOW_RTT VAR_LOW_RTT_PERMIL
159 %token VAR_ALLOW_NOTIFY VAR_TLS_WIN_CERT
160160
161161 %%
162162 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
247247 server_ipsecmod_ignore_bogus | server_ipsecmod_max_ttl |
248248 server_ipsecmod_whitelist | server_ipsecmod_strict |
249249 server_udp_upstream_without_downstream | server_aggressive_nsec |
250 server_tls_cert_bundle | server_additional_tls_port | server_low_rtt |
251 server_low_rtt_pct
250 server_tls_cert_bundle | server_tls_additional_ports | server_low_rtt |
251 server_low_rtt_permil | server_tls_win_cert
252252 ;
253253 stubstart: VAR_STUB_ZONE
254254 {
687687 cfg_parser->cfg->tls_cert_bundle = $2;
688688 }
689689 ;
690 server_additional_tls_port: VAR_ADDITIONAL_TLS_PORT STRING_ARG
691 {
692 OUTYY(("P(server_additional_tls_port:%s)\n", $2));
693 if(!cfg_strlist_insert(&cfg_parser->cfg->additional_tls_port,
690 server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG
691 {
692 OUTYY(("P(server_tls_win_cert:%s)\n", $2));
693 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
694 yyerror("expected yes or no.");
695 else cfg_parser->cfg->tls_win_cert = (strcmp($2, "yes")==0);
696 free($2);
697 }
698 ;
699 server_tls_additional_ports: VAR_TLS_ADDITIONAL_PORTS STRING_ARG
700 {
701 OUTYY(("P(server_tls_additional_ports:%s)\n", $2));
702 if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_ports,
694703 $2))
695704 yyerror("out of memory");
696705 }
13041313 if(strcmp($3, "deny")!=0 && strcmp($3, "refuse")!=0 &&
13051314 strcmp($3, "deny_non_local")!=0 &&
13061315 strcmp($3, "refuse_non_local")!=0 &&
1316 strcmp($3, "allow_setrd")!=0 &&
13071317 strcmp($3, "allow")!=0 &&
13081318 strcmp($3, "allow_snoop")!=0) {
13091319 yyerror("expected deny, refuse, deny_non_local, "
1310 "refuse_non_local, allow or allow_snoop "
1311 "in access control action");
1320 "refuse_non_local, allow, allow_setrd or "
1321 "allow_snoop in access control action");
13121322 } else {
13131323 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, $2, $3))
13141324 fatal_exit("out of memory adding acl");
18841894 free($2);
18851895 }
18861896 ;
1887 server_low_rtt_pct: VAR_LOW_RTT_PCT STRING_ARG
1897 server_low_rtt_permil: VAR_LOW_RTT_PERMIL STRING_ARG
18881898 {
1889 OUTYY(("P(server_low_rtt_pct:%s)\n", $2));
1899 OUTYY(("P(server_low_rtt_permil:%s)\n", $2));
18901900 if(atoi($2) == 0 && strcmp($2, "0") != 0)
18911901 yyerror("number expected");
1892 else cfg_parser->cfg->low_rtt_pct = atoi($2);
1902 else cfg_parser->cfg->low_rtt_permil = atoi($2);
18931903 free($2);
18941904 }
18951905 ;
5151 #ifdef HAVE_OPENSSL_ERR_H
5252 #include <openssl/err.h>
5353 #endif
54 #ifdef USE_WINSOCK
55 #include <wincrypt.h>
56 #endif
5457
5558 /** max length of an IP address (the address portion) that we allow */
5659 #define MAX_ADDR_STRLEN 128 /* characters */
795798 #endif
796799 }
797800
798 void* connect_sslctx_create(char* key, char* pem, char* verifypem)
801 #ifdef USE_WINSOCK
802 /* For windows, the CA trust store is not read by openssl.
803 Add code to open the trust store using wincrypt API and add
804 the root certs into openssl trust store */
805 static int
806 add_WIN_cacerts_to_openssl_store(SSL_CTX* tls_ctx)
807 {
808 HCERTSTORE hSystemStore;
809 PCCERT_CONTEXT pTargetCert = NULL;
810 X509_STORE* store;
811
812 verbose(VERB_ALGO, "Adding Windows certificates from system root store to CA store");
813
814 /* load just once per context lifetime for this version
815 TODO: dynamically update CA trust changes as they are available */
816 if (!tls_ctx)
817 return 0;
818
819 /* Call wincrypt's CertOpenStore to open the CA root store. */
820
821 if ((hSystemStore = CertOpenStore(
822 CERT_STORE_PROV_SYSTEM,
823 0,
824 0,
825 /* NOTE: mingw does not have this const: replace with 1 << 16 from code
826 CERT_SYSTEM_STORE_CURRENT_USER, */
827 1 << 16,
828 L"root")) == 0)
829 {
830 return 0;
831 }
832
833 store = SSL_CTX_get_cert_store(tls_ctx);
834 if (!store)
835 return 0;
836
837 /* failure if the CA store is empty or the call fails */
838 if ((pTargetCert = CertEnumCertificatesInStore(
839 hSystemStore, pTargetCert)) == 0) {
840 verbose(VERB_ALGO, "CA certificate store for Windows is empty.");
841 return 0;
842 }
843 /* iterate over the windows cert store and add to openssl store */
844 do
845 {
846 X509 *cert1 = d2i_X509(NULL,
847 (const unsigned char **)&pTargetCert->pbCertEncoded,
848 pTargetCert->cbCertEncoded);
849 if (!cert1) {
850 /* return error if a cert fails */
851 verbose(VERB_ALGO, "%s %d:%s",
852 "Unable to parse certificate in memory",
853 (int)ERR_get_error(), ERR_error_string(ERR_get_error(), NULL));
854 return 0;
855 }
856 else {
857 /* return error if a cert add to store fails */
858 if (X509_STORE_add_cert(store, cert1) == 0) {
859 unsigned long error = ERR_peek_last_error();
860
861 /* Ignore error X509_R_CERT_ALREADY_IN_HASH_TABLE which means the
862 * certificate is already in the store. */
863 if(ERR_GET_LIB(error) != ERR_LIB_X509 ||
864 ERR_GET_REASON(error) != X509_R_CERT_ALREADY_IN_HASH_TABLE) {
865 verbose(VERB_ALGO, "%s %d:%s\n",
866 "Error adding certificate", (int)ERR_get_error(),
867 ERR_error_string(ERR_get_error(), NULL));
868 X509_free(cert1);
869 return 0;
870 }
871 }
872 X509_free(cert1);
873 }
874 } while ((pTargetCert = CertEnumCertificatesInStore(
875 hSystemStore, pTargetCert)) != 0);
876
877 /* Clean up memory and quit. */
878 if (pTargetCert)
879 CertFreeCertificateContext(pTargetCert);
880 if (hSystemStore)
881 {
882 if (!CertCloseStore(
883 hSystemStore, 0))
884 return 0;
885 }
886 verbose(VERB_ALGO, "Completed adding Windows certificates to CA store successfully");
887 return 1;
888 }
889 #endif /* USE_WINSOCK */
890
891 void* connect_sslctx_create(char* key, char* pem, char* verifypem, int wincert)
799892 {
800893 #ifdef HAVE_SSL
801894 SSL_CTX* ctx = SSL_CTX_new(SSLv23_client_method());
835928 return NULL;
836929 }
837930 }
838 if(verifypem && verifypem[0]) {
839 if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) {
840 log_crypto_err("error in SSL_CTX verify");
841 SSL_CTX_free(ctx);
842 return NULL;
843 }
931 if((verifypem && verifypem[0]) || wincert) {
932 if(verifypem && verifypem[0]) {
933 if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) {
934 log_crypto_err("error in SSL_CTX verify");
935 SSL_CTX_free(ctx);
936 return NULL;
937 }
938 }
939 #ifdef USE_WINSOCK
940 if(wincert) {
941 if(!add_WIN_cacerts_to_openssl_store(ctx)) {
942 log_crypto_err("error in add_WIN_cacerts_to_openssl_store");
943 SSL_CTX_free(ctx);
944 return NULL;
945 }
946 }
947 #else
948 (void)wincert;
949 #endif
844950 SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
845951 }
846952 return ctx;
847953 #else
848 (void)key; (void)pem; (void)verifypem;
954 (void)key; (void)pem; (void)verifypem; (void)wincert;
849955 return NULL;
850956 #endif
851957 }
7272 /** set RCODE bits in uint16 flags */
7373 #define FLAGS_SET_RCODE(f, r) (f = (((f) & 0xfff0) | (r)))
7474
75 /** timeout in seconds for UDP queries to auth servers. */
76 #define UDP_AUTH_QUERY_TIMEOUT 4
77 /** timeout in seconds for TCP queries to auth servers. */
78 #define TCP_AUTH_QUERY_TIMEOUT 30
75 /** timeout in milliseconds for UDP queries to auth servers. */
76 #define UDP_AUTH_QUERY_TIMEOUT 3000
77 /** timeout in milliseconds for TCP queries to auth servers. */
78 #define TCP_AUTH_QUERY_TIMEOUT 3000
7979 /** Advertised version of EDNS capabilities */
8080 #define EDNS_ADVERTISED_VERSION 0
8181 /** Advertised size of EDNS capabilities */
394394 * @param key: if nonNULL (also pem nonNULL), the client private key.
395395 * @param pem: client public key (or NULL if key is NULL).
396396 * @param verifypem: if nonNULL used for verifylocation file.
397 * @param wincert: add system certificate store to ctx (add to verifypem ca
398 * certs).
397399 * @return SSL_CTX* or NULL on failure (logged).
398400 */
399 void* connect_sslctx_create(char* key, char* pem, char* verifypem);
401 void* connect_sslctx_create(char* key, char* pem, char* verifypem, int wincert);
400402
401403 /**
402404 * accept a new fd and wrap it in a BIO in SSL
763763 {
764764 int new_fd;
765765 *addrlen = (socklen_t)sizeof(*addr);
766 #ifndef HAVE_ACCEPT4
766767 new_fd = accept(c->fd, (struct sockaddr*)addr, addrlen);
768 #else
769 /* SOCK_NONBLOCK saves extra calls to fcntl for the same result */
770 new_fd = accept4(c->fd, (struct sockaddr*)addr, addrlen, SOCK_NONBLOCK);
771 #endif
767772 if(new_fd == -1) {
768773 #ifndef USE_WINSOCK
769774 /* EINTR is signal interrupt. others are closed connection. */
826831 #endif
827832 return -1;
828833 }
834 #ifndef HAVE_ACCEPT4
829835 fd_set_nonblock(new_fd);
836 #endif
830837 return new_fd;
831838 }
832839
834841 static long win_bio_cb(BIO *b, int oper, const char* ATTR_UNUSED(argp),
835842 int ATTR_UNUSED(argi), long argl, long retvalue)
836843 {
844 int wsa_err = WSAGetLastError(); /* store errcode before it is gone */
837845 verbose(VERB_ALGO, "bio_cb %d, %s %s %s", oper,
838846 (oper&BIO_CB_RETURN)?"return":"before",
839847 (oper&BIO_CB_READ)?"read":((oper&BIO_CB_WRITE)?"write":"other"),
840 WSAGetLastError()==WSAEWOULDBLOCK?"wsawb":"");
848 wsa_err==WSAEWOULDBLOCK?"wsawb":"");
841849 /* on windows, check if previous operation caused EWOULDBLOCK */
842850 if( (oper == (BIO_CB_READ|BIO_CB_RETURN) && argl == 0) ||
843851 (oper == (BIO_CB_GETS|BIO_CB_RETURN) && argl == 0)) {
844 if(WSAGetLastError() == WSAEWOULDBLOCK)
852 if(wsa_err == WSAEWOULDBLOCK)
845853 ub_winsock_tcp_wouldblock((struct ub_event*)
846854 BIO_get_callback_arg(b), UB_EV_READ);
847855 }
848856 if( (oper == (BIO_CB_WRITE|BIO_CB_RETURN) && argl == 0) ||
849857 (oper == (BIO_CB_PUTS|BIO_CB_RETURN) && argl == 0)) {
850 if(WSAGetLastError() == WSAEWOULDBLOCK)
858 if(wsa_err == WSAEWOULDBLOCK)
851859 ub_winsock_tcp_wouldblock((struct ub_event*)
852860 BIO_get_callback_arg(b), UB_EV_WRITE);
853861 }
11271135 if(want == SSL_ERROR_ZERO_RETURN) {
11281136 return 0; /* shutdown, closed */
11291137 } else if(want == SSL_ERROR_WANT_READ) {
1138 ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
11301139 return 1; /* read more later */
11311140 } else if(want == SSL_ERROR_WANT_WRITE) {
11321141 c->ssl_shake_state = comm_ssl_shake_hs_write;
11421151 return 0;
11431152 }
11441153 c->tcp_byte_count += r;
1145 if(c->tcp_byte_count != sizeof(uint16_t))
1154 if(c->tcp_byte_count < sizeof(uint16_t))
11461155 return 1;
11471156 if(sldns_buffer_read_u16_at(c->buffer, 0) >
11481157 sldns_buffer_capacity(c->buffer)) {
11551164 verbose(VERB_QUERY, "ssl: dropped bogus too short.");
11561165 return 0;
11571166 }
1167 sldns_buffer_skip(c->buffer, (ssize_t)(c->tcp_byte_count-sizeof(uint16_t)));
11581168 verbose(VERB_ALGO, "Reading ssl tcp query of length %d",
11591169 (int)sldns_buffer_limit(c->buffer));
11601170 }
1161 log_assert(sldns_buffer_remaining(c->buffer) > 0);
1162 ERR_clear_error();
1163 r = SSL_read(c->ssl, (void*)sldns_buffer_current(c->buffer),
1164 (int)sldns_buffer_remaining(c->buffer));
1165 if(r <= 0) {
1166 int want = SSL_get_error(c->ssl, r);
1167 if(want == SSL_ERROR_ZERO_RETURN) {
1168 return 0; /* shutdown, closed */
1169 } else if(want == SSL_ERROR_WANT_READ) {
1170 return 1; /* read more later */
1171 } else if(want == SSL_ERROR_WANT_WRITE) {
1172 c->ssl_shake_state = comm_ssl_shake_hs_write;
1173 comm_point_listen_for_rw(c, 0, 1);
1174 return 1;
1175 } else if(want == SSL_ERROR_SYSCALL) {
1176 if(errno != 0)
1177 log_err("SSL_read syscall: %s",
1178 strerror(errno));
1171 if(sldns_buffer_remaining(c->buffer) > 0) {
1172 ERR_clear_error();
1173 r = SSL_read(c->ssl, (void*)sldns_buffer_current(c->buffer),
1174 (int)sldns_buffer_remaining(c->buffer));
1175 if(r <= 0) {
1176 int want = SSL_get_error(c->ssl, r);
1177 if(want == SSL_ERROR_ZERO_RETURN) {
1178 return 0; /* shutdown, closed */
1179 } else if(want == SSL_ERROR_WANT_READ) {
1180 ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
1181 return 1; /* read more later */
1182 } else if(want == SSL_ERROR_WANT_WRITE) {
1183 c->ssl_shake_state = comm_ssl_shake_hs_write;
1184 comm_point_listen_for_rw(c, 0, 1);
1185 return 1;
1186 } else if(want == SSL_ERROR_SYSCALL) {
1187 if(errno != 0)
1188 log_err("SSL_read syscall: %s",
1189 strerror(errno));
1190 return 0;
1191 }
1192 log_crypto_err("could not SSL_read");
11791193 return 0;
11801194 }
1181 log_crypto_err("could not SSL_read");
1182 return 0;
1183 }
1184 sldns_buffer_skip(c->buffer, (ssize_t)r);
1195 sldns_buffer_skip(c->buffer, (ssize_t)r);
1196 }
11851197 if(sldns_buffer_remaining(c->buffer) <= 0) {
11861198 tcp_callback_reader(c);
11871199 }
12361248 comm_point_listen_for_rw(c, 1, 0);
12371249 return 1; /* wait for read condition */
12381250 } else if(want == SSL_ERROR_WANT_WRITE) {
1251 ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
12391252 return 1; /* write more later */
12401253 } else if(want == SSL_ERROR_SYSCALL) {
12411254 if(errno != 0)
12691282 comm_point_listen_for_rw(c, 1, 0);
12701283 return 1; /* wait for read condition */
12711284 } else if(want == SSL_ERROR_WANT_WRITE) {
1285 ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
12721286 return 1; /* write more later */
12731287 } else if(want == SSL_ERROR_SYSCALL) {
12741288 if(errno != 0)
28862900 {
28872901 if(!c)
28882902 return;
2889 if(c->fd != -1)
2903 if(c->fd != -1) {
28902904 if(ub_event_del(c->ev->ev) != 0) {
28912905 log_err("could not event_del on close");
28922906 }
2907 }
28932908 /* close fd after removing from event lists, or epoll.. is messed up */
28942909 if(c->fd != -1 && !c->do_not_close) {
2910 if(c->type == comm_tcp || c->type == comm_http) {
2911 /* delete sticky events for the fd, it gets closed */
2912 ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_READ);
2913 ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
2914 }
28952915 verbose(VERB_ALGO, "close fd %d", c->fd);
28962916 #ifndef USE_WINSOCK
28972917 close(c->fd);
5151 #include "util/config_file.h"
5252 #include "util/netevent.h"
5353 #include "util/ub_event.h"
54 #include "util/net_help.h"
5455
5556 /** global service status */
5657 static SERVICE_STATUS service_status;
356357 config_delete(cfg);
357358 return 0;
358359 }
360 if(cfg->ssl_service_key && cfg->ssl_service_key[0]) {
361 if(!(daemon->listen_sslctx = listen_sslctx_create(
362 cfg->ssl_service_key, cfg->ssl_service_pem, NULL)))
363 fatal_exit("could not set up listen SSL_CTX");
364 }
365 if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL,
366 cfg->tls_cert_bundle, cfg->tls_win_cert)))
367 fatal_exit("could not set up connect SSL_CTX");
359368
360369 /* open ports */
361370 /* keep reporting that we are busy starting */