]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix unit tests for openssl 1.1, with no DSA, by faking DSA, enabled
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 26 Oct 2016 07:38:00 +0000 (07:38 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 26 Oct 2016 07:38:00 +0000 (07:38 +0000)
  with the undocumented switch 'fake-dsa'.  It logs a warning.

git-svn-id: file:///svn/unbound/trunk@3909 be551aaa-1e26-0410-a405-d3ace91eadb9

144 files changed:
doc/Changelog
testdata/autotrust_rollalgo.rpl
testdata/black_data.rpl
testdata/black_dnskey.rpl
testdata/black_ds.rpl
testdata/black_ds_entry.rpl
testdata/black_ent.rpl
testdata/black_key_entry.rpl
testdata/black_prime.rpl
testdata/black_prime_entry.rpl
testdata/dlv_anchor.rpl
testdata/dlv_ask_higher.rpl
testdata/dlv_below_ta.rpl
testdata/dlv_delegation.rpl
testdata/dlv_keyretry.rpl
testdata/dlv_negnx.rpl
testdata/dlv_optout.rpl
testdata/dlv_remove.rpl
testdata/dlv_remove_nodel.rpl
testdata/dlv_remove_pos.rpl
testdata/domain_insec_ds.rpl
testdata/iter_class_any.rpl
testdata/iter_dnsseclame_bug.rpl
testdata/iter_dnsseclame_ds.rpl
testdata/iter_dnsseclame_ds_ok.rpl
testdata/iter_dnsseclame_ta.rpl
testdata/iter_dnsseclame_ta_ok.rpl
testdata/iter_emptydp.rpl
testdata/iter_emptydp_for_glue.rpl
testdata/iter_primenoglue.rpl
testdata/iter_scrub_dname_rev.rpl
testdata/iter_scrub_dname_sec.rpl
testdata/nomem_cnametopos.rpl
testdata/val_adbit.rpl
testdata/val_anchor_nx.rpl
testdata/val_ans_dsent.rpl
testdata/val_ans_nx.rpl
testdata/val_any.rpl
testdata/val_any_cname.rpl
testdata/val_any_dname.rpl
testdata/val_cname_loop1.rpl
testdata/val_cname_loop2.rpl
testdata/val_cname_loop3.rpl
testdata/val_cnameinsectopos.rpl
testdata/val_cnamenx_dblnsec.rpl
testdata/val_cnamenx_rcodenx.rpl
testdata/val_cnameqtype.rpl
testdata/val_cnametodname.rpl
testdata/val_cnametodnametocnametopos.rpl
testdata/val_cnametonodata.rpl
testdata/val_cnametonodata_nonsec.rpl
testdata/val_cnametonsec.rpl
testdata/val_cnametonx.rpl
testdata/val_cnametooptin.rpl
testdata/val_cnametopos.rpl
testdata/val_cnametoposnowc.rpl
testdata/val_cnametoposwc.rpl
testdata/val_cnamewctonodata.rpl
testdata/val_cnamewctonx.rpl
testdata/val_cnamewctoposwc.rpl
testdata/val_deleg_nons.rpl
testdata/val_dnametoolong.rpl
testdata/val_dnametopos.rpl
testdata/val_dnametoposwc.rpl
testdata/val_dnamewc.rpl
testdata/val_ds_afterprime.rpl
testdata/val_ds_cname.rpl
testdata/val_ds_cnamesub.rpl
testdata/val_dsnsec.rpl
testdata/val_entds.rpl
testdata/val_faildnskey.rpl
testdata/val_faildnskey_ok.rpl
testdata/val_fwdds.rpl
testdata/val_keyprefetch.rpl
testdata/val_keyprefetch_verify.rpl
testdata/val_mal_wc.rpl
testdata/val_negcache_ds.rpl
testdata/val_negcache_dssoa.rpl
testdata/val_noadwhennodo.rpl
testdata/val_nodata.rpl
testdata/val_nodata_ent.rpl
testdata/val_nodata_entwc.rpl
testdata/val_nodata_failsig.rpl
testdata/val_nodata_hasdata.rpl
testdata/val_nodata_zonecut.rpl
testdata/val_nodatawc.rpl
testdata/val_nodatawc_badce.rpl
testdata/val_nodatawc_nodeny.rpl
testdata/val_nodatawc_one.rpl
testdata/val_nokeyprime.rpl
testdata/val_nsec3_cname_ds.rpl
testdata/val_nsec3_cname_par.rpl
testdata/val_nsec3_cname_sub.rpl
testdata/val_nsec3_entnodata_optout.rpl
testdata/val_nsec3_entnodata_optout_badopt.rpl
testdata/val_nsec3_entnodata_optout_match.rpl
testdata/val_nsec3_iter_high.rpl
testdata/val_nsec3_nodatawccname.rpl
testdata/val_nsec3_nods.rpl
testdata/val_nsec3_nods_badopt.rpl
testdata/val_nsec3_nods_badsig.rpl
testdata/val_nsec3_nods_negcache.rpl
testdata/val_nsec3_nods_soa.rpl
testdata/val_nsec3_optout_cache.rpl
testdata/val_nsec3_wcany.rpl
testdata/val_nsec3_wcany_nodeny.rpl
testdata/val_nx.rpl
testdata/val_nx_nodeny.rpl
testdata/val_nx_nowc.rpl
testdata/val_nx_nsec3_collision.rpl
testdata/val_nx_nsec3_params.rpl
testdata/val_nx_overreach.rpl
testdata/val_pos_truncns.rpl
testdata/val_positive.rpl
testdata/val_positive_nosigs.rpl
testdata/val_positive_wc.rpl
testdata/val_positive_wc_nodeny.rpl
testdata/val_qds_oneanc.rpl
testdata/val_qds_twoanc.rpl
testdata/val_refer_unsignadd.rpl
testdata/val_referd.rpl
testdata/val_referglue.rpl
testdata/val_rrsig.rpl
testdata/val_secds.rpl
testdata/val_secds_nosig.rpl
testdata/val_spurious_ns.rpl
testdata/val_stubds.rpl
testdata/val_ta_algo_dnskey.rpl
testdata/val_ta_algo_dnskey_dp.rpl
testdata/val_ta_algo_missing.rpl
testdata/val_ta_algo_missing_dp.rpl
testdata/val_unalgo_ds.rpl
testdata/val_unsec_cname.rpl
testdata/val_unsecds.rpl
testdata/val_unsecds_negcache.rpl
testdata/val_unsecds_qtypeds.rpl
testdata/val_wild_pos.rpl
util/config_file.h
util/configlexer.c
util/configlexer.lex
util/configparser.c
util/configparser.h
util/configparser.y
validator/val_secalgo.c

index 19cf20456eb39af9ebf33fc97ab9921f4f78eb45..4cea84ca71052ed60dceabdb0990ac3d05132f36 100644 (file)
@@ -1,3 +1,7 @@
+26 October 2016: Wouter
+       - Fix unit tests for openssl 1.1, with no DSA, by faking DSA, enabled
+         with the undocumented switch 'fake-dsa'.  It logs a warning.
+
 25 October 2016: Wouter
        - Fix #1134: unbound-control set_option -- val-override-date: -1 works
          immediately to ignore datetime, or back to 0 to enable it again.
index 4deec32a8348b964abab9d23bed18a3522b5b975..e1951ad2104ba26a2d05f56111af97dcc44bb43f 100644 (file)
@@ -2,6 +2,7 @@
 server:
        target-fetch-policy: "0 0 0 0 0"
        log-time-ascii: yes
+       fake-dsa: yes
 stub-zone:
        name: "."
        stub-addr: 193.0.14.129         # K.ROOT-SERVERS.NET.
index dd703f62b1889b7c3030db2c267e1fcc6ceac9ac..ab2f280028cf522831b506629e6ecd41212408a9 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 0537757c0de4814f2be4a0c45585b6f47bd14e77..eaed2f2f27decff4791581c43b83ffcf486a8945 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 7638c1b3f67bab811f18cd3dee8a74bc03fae95d..8481ec43984ab1509ef84946d7935da2e6fc9200 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index f77eecba423e59937d36444183f201c1e1e89129..f8342f0f8250362ac5bfc3d7920d2fade435f020 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 5aa3d3b04916af26d17c552c877c9466eb8f4fee..5d2b76817ba0c33e7ff44cf90e1eafaae5d785d3 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 6a644da1843b6763f5a4fa640a2350aabe99ca37..9a326c49562a1ce26c6840db5fd2239179c2a341 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index bb89c39ac61793a1444c8121f4bedbfd379377e3..d15b5d2accf99a97d8aec567423ec61e543941c6 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 9bcb1857d65b2197b50d62a268e18f7760269ddd..f5f7c5aa849325a16c549f6df8bdda18777d8f91 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d9388862ee4b1853eef542bfe774a3ee6603c078..f27bfa471302eafcb039bcc81b604d3323f71b9b 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 365d3611f0a4bda623048236352177e9caf62343..a0551496eb9ccf615de7d8e1cccfe614015dce36 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 78d17f81b50296d70f1adf02624bb8216bd0d87a..60b1a222ebbda7d5943e4a688177d4eee4d3fd8a 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.     3600    IN      DS      30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index a921dc9fb2297eb9b49b00e1a720096f9eec6fc2..904d0eb74951001c19fb6b1cbbf4a0dd84f81bb3 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 474d1e9d2c99257078ad5513fe3bb8a2f7375648..b00b81d1582ca72c9c1a63a2f3edc3875b2af6f3 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 79bdea774b50ee31453bb924fb51d21c9c5e3a34..4991be77ac23bd4dc5b86e412ddf1ccba8999c71 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index b0f84db575c80545105620dfaf76697cc7ce5211..11bea5593a9a689b9fcea1121b85411b9fde85e9 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.     3600    IN      DS      30899 5 1 14188c885f20623ad1d3bec42798f3f951793e4c ; xehac-mofum-malyd-bomaf-pegit-fuzes-ganin-misiz-nigel-nozog-soxix"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 1b8b642d8a8a71457b93d6f7be116f6b89b2b9e2..784d9596293defcf99ef6d8cf99a0e3e5a9dc7be 100644 (file)
@@ -4,6 +4,7 @@ server:
        dlv-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 799e841e8ea797d1edd03f7c65bc15bf4c927422..6b8474cf0aab17c8a42f6cda50683fcabc57d068 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index de7da447315598d66338b8cb74093d298fafdc8d..1206d0a94d5434c2dd25596fdbcd75f88137d096 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d99e7ab6265cd97aac0850490c173afc7b8b33c2..d671a176a2b3f09fda2c63930c2029a80864eb6d 100644 (file)
@@ -5,6 +5,7 @@ server:
        domain-insecure: "sub.example.com"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 2242cbb9cc705d8ca65e65107b5dc70488eff9a0..df665cedc398f9ab1010260278c68448491b9f43 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index a22dc96bc55178172dfb98b2c21accc21eb47804..7f94e09d72d2b2880e0137113ff378f78763a5cd 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 0e8405db94e99b6aa52fc656b632f01ebe60c429..340ed20d4ed856e81027eead2590688beee1d962 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 0ff322cd42bcd8bdd122a9b5632fdd4bceca3f0d..02fbdad9ccc6739a0c8ea928f0eac3c1578982bc 100644 (file)
@@ -3,6 +3,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 9472dcc1a1e6b18f8862b16e07621e88528fa9da..fc592b020b3684dfea5ffcfc828a460e15024b12 100644 (file)
@@ -2,6 +2,7 @@
 server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index e794b54fdaa86dce6a52ecca222cd2dda74e786d..a132dc9478e78e1c9cb0a0192000bdb86f57902b 100644 (file)
@@ -3,6 +3,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 260888c32e51512e9630071051b092458d039171..4d654592ba16773020d0f10cbbf7be02ee5e5f10 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 91e76711ee9542df021ed0164fabfd8ffbb5ccc4..ddd7ae28759f8839ea77120c51af19f561237718 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index c3709dcb1adb413d1e8fc1295c717e76c6104221..3f4dffb2c6a5769a81b6559818c2cc4bf793cb2f 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "3 2 1 0 0" # make sure it fetches for test
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 44939de0a17f7c488edc88022257ab034d530df6..d331438a8261a37af8e74f95c91f1c036435fe65 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
         name: "."
index 1ce74ca17785a32d98ec124aa500ed98f34739e0..33c642fc89d3c18e57b65d3e58187304b63ac935 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
         name: "."
index 68a0b96cbccc293fc7038ed85312c62092198efc..50f01b886a4eb72e254a16dd45aa800792a86fde 100644 (file)
@@ -7,6 +7,7 @@ server:
        msg-cache-size: 8
        rrset-cache-size: 8
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index bffc9b71370c5787bdd50c2e490ca6e69f42a3a6..b344d686f7048e802e77735d828cbe56935f1180 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index be347b11d65c36ec359ad04cddf89195136d3d7a..7b35559c55cccf9f301753961c9e2e2ec8b3af81 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "sub.example.com.    3600    IN      DS      30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 1eb7778c2d4baecc7689f4119d2d72e7d505e7e3..d75023d8d75ae53fe3c95b3aed4c9771419a5c9b 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 257377202bd2ca8071235c298428e4e284f63203..882ce0d9b8fd681d441622c2e253220382aa3b95 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 4285f49c5c32fbb1e966873410b6743761d5891a..c7dda88108caef1c028456d65edcd62e29655b99 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index e85c14c20b53df6526359b8020d31e81473601ee..8bd8f37b92dad1f351078eab2197751902e3bd84 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 6e94f9a4ee8f2fe310833ceb7a79df1227470a66..f9028f862e6688b38a8d66a959f2db38e099707c 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 11d094cdd921a60754f4c28cd8f2a2d5966a9754..f64f2a314c2dc0f60ab05969a7b60e6679a37eab 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index af293401b9c7f717f3ad1eb516d80ad26adc574e..5fd4adabd3f9af4d6ef05e324cef9c426674093d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index e34b0108db2d55920bf952fa7044c8c5efa2d4ac..b20a299083afb09f2130c9fdfe7a409289c00f65 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 29d1565f3cddf5778ba9c9f74474a10eb3ce4f2f..b696919b5d140821f84c5ec67f642a8f54a0d4d2 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 77c50f60b5c0a525f5444709de60c92065da5788..51af3c4270d8d57b43e3827e7073a9fd9a46b573 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 8d9c2d4fea548c17a802bf0d756aeb536d67e4a5..e4bf864dd32442472896e3277adf39458af0035a 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 66a894f6c2e6518cca9ac1a7d0b0708a45664cdc..e9915ec5d95e387a5ba1f28d0b0bf2de13960b79 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 43561d280777f95003979b0042c51e0ff5526f21..def1def99d70ab827c908c7219be91c260443702 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 0a3a323605610aeedd9f0c1f028644d730324e8a..682d82126e53a1ff83516356ece1fd72d7d1d49d 100644 (file)
@@ -6,6 +6,7 @@ server:
        trust-anchor: "example.org.    3600    IN      DNSKEY  256 3 3 ALXLUsWqUrY3JYER3T4TBJIIs70j+sDS/UT2QRp61SE7S3EEXopNXoFE73JLRmvpi/UrOO/Vz4Se6wXv/CYCKjGw06U4WRgRYXcpEhJROyNapmdIKSxhOzfLVE1gqA0PweZR8dtY3aNQSRn3sPpwJr6Mi/PqQKAMMrZ9ckJpf1+bQMOOvxgzz2U1GS18b3yZKcgTMEaJzd/GZYzi/BN2DzQ0MsrSwYXfsNLFOBbs8PJMW4LYIxeeOe6rUgkWOF7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index b930b5607dd67939e521792b17769e723aebca9f..db3242958611f590f6b615b52f58fa03403c1399 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 588273fba008cbba656b49d6f45c07065c6f2d07..a6dac92e74808c0fc705b1e3c46edb3cce30198b 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 6b32b8da55d848c6ad263c3a0d4ce2de61ed59b3..e2f486521279209048227a5ce8332156922da3a8 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index cc3315608dbac2e556a36479f30e3b36d112aeec..2afd46e11e99a8243676d90c2e2e755034b57814 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index aa58d07f01bdb73d09001fda951e370eafac1905..919c85ed0fe483f107a55b05d2cbc3a834e87d5a 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 9ff4020a909a53982ea91997ee56ee1da3130414..670b7f5e6b4dcca4909b53f7c9f572729c381409 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 6e8ff4f27d8127e8649f1764a35c56c52369f59a..f939a8229a9810d5ace983ea3a24a50d22ad8a28 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 114fa705acb814bb2bba8c666e5b5ad45675d8dd..ef9e33af0306de562684a59119e122c692373d45 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 83aec7a025e8d9b7bda14098afc04b133dabedc3..96125cd4e70442fd86f331b985c1a321a18f7b43 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 7da96e259f39de76ca901db0444a8d1581049d0e..79bd27d5d3b783ad3c74505355886ecdda26aa98 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 33fbc45511f8d9e8bdb54b624cca7f9e753676b5..be063e5139d93ecace68f54a3f9fe987cea8c908 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 83cf6923292463d12fe3cf9452bf3623d959a748..83b2371e7c2d1fdbac6578c522bdd9ff275f6964 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index b5eea56c6b3ee5560814a8c7ce677bf350db7161..6a543306418d9f06be7a2c442caaca877f3afbc0 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index faeb40f9dac40a5abb1dd486b4e7dec69ade4d02..5433561701a9125a8fe450cefa7f281e52b2c9c0 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index e1e91d4947174c2896e4c62e9af1b2e0c36e0e86..ee6c8f24fe70b8f059bb538591d9c6287d301520 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index c34b9e0f9d2d4e263e50617ab121d01457fdd088..4e18f6aeb428d658f87b0002d127e8a027fa6de3 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.net.    3600    IN      DNSKEY  256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 0b203d2676f23a8b06b14a74d30030600c9e4cbb..7e1ca2984c1af6c9f154339529eda5b34f8683f8 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 95fcf5be7e978c0d722d1ddc0a281c30381fb87e..b31c0b48af7525f7eb8aa8afa2c72587513e58d3 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d70e2ae29000000fc5031ce39e4d8fb5d865f1dc..08357cfdf06af87137ccb3f7779c1fcfc3746cf4 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 5e55b2ba03eb15a9e151589dcb66c9e83ac39ae2..69b26da22864546ac074c636c07637b3cd68fed9 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 6ad86271a2a15bdbaabe0a586b7b3857c9522635..7a369c623479ecd3d3f7fd590bd2d2ef29c6d49e 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 7d0350f1a1a38ca285959a783b7900812d3c6eb4..4747a942f1ba2178086507ef42195b128c14e00e 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
        # test that default value of harden-dnssec-stripped is still yes.
 
 stub-zone:
index 3764000f10d8038639db0bffa1fca9bc3c663902..3baf470a0381e6007274ab410125d1d45e76a099 100644 (file)
@@ -5,6 +5,7 @@ server:
        val-override-date: "20070916134226"
        harden-dnssec-stripped: no
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 26e30f44c957d2de01005c1ac318e206b1525740..8bee99f2af6f221172f084e356c643e97de5402a 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 9b927b20ef4cd018976b6823acda8cbfab3867e0..7bbb50178bf52dd629ebc7d8f3003026cc0ebfe4 100644 (file)
@@ -5,6 +5,7 @@ server:
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
        prefetch-key: yes
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 5f044cc2f28bdabd9049d6061e756153f121312d..76b139e6dea0e8a5ba3e6a14cbdb3cddf8d3c404 100644 (file)
@@ -6,6 +6,7 @@ server:
        target-fetch-policy: "0 0 0 0 0"
        prefetch-key: yes
        prefetch: yes
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d834fe64804801e8301fbca544ee39b5469f8582..7a0a8974289a5133c49d20856de169ca08af59ee 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index c7739e34cba5c02ca7998ea3ac567243c4e72924..c90f83caf202ed157d47a57266f1781afbcbf62b 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 3f35bbf3b5e73a010e62ee1a50e42d9b64a65293..fed000cfcfb5c9c4cd8e919f8fef9e8bf009e3dc 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 13015dbdbd60e715ce9909f47b2e0155e3fd0d70..3a5894004a9853927c78314e34d1f392b583303e 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 1dbbb77842df2ea3f1991550ac6d9f033e2de9fc..8f29a4bebbd4daad04f36f7fbf26ce7622a2b66f 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 467bdf5f353a9df47a2162ff48da7ce694808216..1aa66b343d8e6b8bf29ddfdfa1bf9ed765f79219 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 03c09a207dcb0982942e1381c929ae0d3cdf1d54..9870a07662f4a8baace54b6aeb91b7d6433963e5 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index df3b75e019e4f7ca14acd82d4021a680b4d2ea78..3044178f3000f9a43ba8f52a67f3421f3698d0c5 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
@@ -130,8 +131,10 @@ SECTION ANSWER
 SECTION AUTHORITY
 ; SOA record is missing in reply.
 ; Denies A, note this is the end of the NSEC chain.
+; this RRSIG is failed, we set to 0 base64 data to make this easy to detect
 www.example.com.       IN      NSEC    example.com. RRSIG NSEC
-www.example.com.        3600    IN      RRSIG   NSEC 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFDA8yqBITvLruoQjn/eqjYjwCwySAhUAk5/f3H1HKMsvM+spmmswwFtndyY= ;{id = 2854}
+;www.example.com.        3600    IN      RRSIG   NSEC 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFDA8yqBITvLruoQjn/eqjYjwCwySAhUAk5/f3H1HKMsvM+spmmswwFtndyY= ;{id = 2854}
+www.example.com.        3600    IN      RRSIG   NSEC 3 3 3600 20070926135752 20070829135752 2854 example.com. 
 ; Denies wildcard
 example.com.   IN      NSEC    ns.example.com. NS SOA RRSIG NSEC DNSKEY
 example.com.    3600    IN      RRSIG   NSEC 3 2 3600 20070926135752 20070829135752 2854 example.com. MCwCFGlz/gvGdVxEo3Kpr+MijEGCZgwaAhRU7qbF13vmCVgR8dFw7LQFKopV6w== ;{id = 2854}
index f5321182a5edd22bbc03046fe6bd0262eb82d896..2e003819f1527af0cc47275374e930e56a7707c5 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index e9e50a7ce603a733aa25ed36996a53c789c53a65..d0bef7a342f8a7e8c3b829bb0533b30b69dc05bf 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 30e38b605144d4aa8ae3cfbea542192491b40be2..ff40c7233228e5e2e55194c9a438a0abca10fa4b 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index dcf8697db0cb58981da6f87d11f3f19e472958fa..19735a034fd5b09e2e584de458675c878f69111d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 52dcb0f7842fe19249eb48b2b4685a723ab29fa0..91c9abff61b878ea62da97a2a6043bae7fcdadee 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 88d66effb4303dc8d7d9964856578c42d4ad579d..79c20e1252c044185f330fd2998ba758f5e1329b 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 5eae44f8198ef34525bf517916865b7d2e15a22e..6830610946d0d94d797acdaea7943e819864f5d4 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 299400569598ad92e76d75c6f30186434f8413e9..41adf8c30737dcbfa8911dae055dfc26889a5ed2 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 20ea0619d654bc1c076ea5ab9076cb2ed25ba05a..d97881a4a59cb211af5f79a83edee5b9bcd6bd66 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 7b38b1a1bdfd8bed06fa2c99c88a0d6a4b8cde09..3d1419126d3430c148c1f0cb441339cc91748285 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 56ed195fc3f55de2ded36e74b5faefd8d6687c75..e277a8a9d9f8fa2b344e4220cce4e88e8f01f2f2 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d1548f522f366fb3c454115c622711c26265f312..cab3484843f935eb45dac24c046d9f6a56ea1f31 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 329db5f53d57418c3ffd373d8cc8ed83dbba733d..6f90de96d9248c4d191c705fe796000cc5228e00 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 451bec540a7f28e70cf66015ba347c60feba379e..00439259cfce0994bccf76b09bc552fb2a145fe8 100644 (file)
@@ -5,6 +5,7 @@ server:
        val-override-date: "20070916134226"
        val-nsec3-keysize-iterations: "1024 100 2048 200 4096 500"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 4f01cdf8a41af1412b6ecaa2be237b7c5bb66a00..287e82c20b8f74aa6e30cf871ca9833b3d6c0c78 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 60f20817f80547ebec35631421a27d84707a2ad3..b7c8cf0b5c552a458928a005266b31251ad9e15e 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index c2f71ca76ac7640ea108767a12828ae6fca1d2d9..6e04e8e7ba65f5daab442fed6e6a8e959ebe85b9 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 5e265326449e2240eff86a88a8976ea15ca3ba76..babd4438ae77af46c8ada3effbd74ef5af8a795d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 0c4d20ec2040449c3f1a8eb5377f1df3835e70c7..6ddb01d1d5262e06e7b4844fb932eccbd481bb39 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index a967c5037e3091a89eee988c9136b3c65cd53f2c..4d814d1e0070f1c6e6eef5aeea0e4071f24617f4 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 3ec7ccbdd5cf5b1d4950e5fbfaf98787b6708e5e..291c5302f8cbfc86bc22b627541233a882e6a4e1 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 37074a6a6e0f087e642643ab7264d39a41a3f1f0..2a5be445536a3bc811b95c8d73d0a962a3ef6c49 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 080f086c8ea5fce16d9c89388772818bfc852205..9cb99e7f7cec7b1b9a0477b22c0392f47696045b 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 434354fb487db90ba2395e7ae67cec578e6f4c38..d2f4efbe7a17ee8b98b3d6b212f48e11ff0565e4 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 9c1e0bb3d7661c590970b5cf4deee74bc008a04f..b589e6d4f41b2aaccad605e928e81c7208fe6263 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 9b8880d77b6671e49f7bd688f9546a3eb7b22c6a..7fa9b391d7fd60f1ad7b7a4284de7a43804fc3c8 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 85236e46eb97054d7b0f8e1388a7f70ad523ee13..b6bc1460d5ed6009714545707017cf9dab1a3fc0 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 926712637f968ab66dd4ef543a7f56fc19d64077..04205bc842eeba8c06365e027842622b90f73f15 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 4494c30f5a58766d56e3e6904e728863af562334..a733764155d077845f53034d1a70295ed10795c4 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 12d3a54819587f61bccc5ec7f10183c4cb4c8292..16cd66f15915dd5d92c2a5b27adee6d6fe14bde8 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index c6f8d797a555a48955c9a2db0e3b9d9905e16183..7e02668af4f4c69f2c9a6e873bcacdac3f1edc93 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 4ab6e54f0d036b054c15a6c567e94156f93b0614..a8e2b7e9be11212a6989fdbb09bf7a9554030668 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index f6a04e71ec931371e53b75a6952bebe354f864b3..cd76f588bfb7d4918e6a73fbfb077196f2656b3a 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index b0c1a54285011caa90a6986ef412189bb60ff48d..54ecfc6428957b0d8d1d3b361ee84edd6c462e51 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 657b4856ea77031b22d26084130429843624e1ad..5709364eda7ae2890ae8b5159ad4f2a9b974b499 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 61e7458b0f0f3333eaad5697bf5f8f9534defe65..186f082bd48df41b00524bef34faa97cfc92a2f6 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "sub.example.com.        3600    IN      DS      30899 RSASHA1 1 f7ed618f24d5e5202927e1d27bc2e84a141cb4b3"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index eb74817ddbbfeb1658bc31dc9d30a513d0ba3858..0290256629a39d6f93e04a78a8ac1fe5c830a1a9 100644 (file)
@@ -6,6 +6,7 @@ server:
        val-override-date: "20070916134226"
        access-control: 127.0.0.1 allow_snoop
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 67e44ea75bffe5ecb3630b7d36599ee49fa3ea18..9aef6a9b9fa4eba95704ec956820d684dc7f7dba 100644 (file)
@@ -6,6 +6,7 @@ server:
        harden-referral-path: no
        access-control: 127.0.0.1 allow_snoop
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index bd829bff44df3c08dcec5267ce05c5786405d000..a1e017dae187656b25cd4a13c3f0578982807e27 100644 (file)
@@ -6,6 +6,7 @@ server:
        directory: ""
        access-control: 127.0.0.1 allow_snoop
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 6ea8c1bc3ee77667dae6bb441b57fc22d7208968..6ee695c24d9f8703c785c5a3ee94369ef9b66eca 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d1a5f64b5c5a92415e66069b05bf10340943e4c0..a5f663dbf90a9c9e83fcb13fb167e7d8a5c5ec9b 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 310c9bb8875d114e7d22a05831983e0278870dce..0a5477d3b48c53a51e0e183d3f02acb15164bcd9 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 741fd1affc3cf6845094b714d7fb46608e71f0d2..70b22bdbf96a4fcffaa0c2b07ccee2b07b4a120a 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 565c596333dea97ebd564887c361739af2ae5d58..929c541e35043646131f9ad05466d474664d5d0d 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d5dd26040cbdd2335aa991f2baccaf0f82ab9ec5..de6cfdb5586457fdb228272e5130a8d8243c937d 100644 (file)
@@ -5,6 +5,7 @@ server:
        trust-anchor: "example.com.     3600    IN      DS      30899 5 1 d4bf9d2e10f6d76840d42ef5913022abcd0bf512"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index b23c0f1b04d746dff796ef05aa54cc5ec4838d2c..7299eda8c274825af9128f24d995b39b510dc135 100644 (file)
@@ -6,6 +6,7 @@ server:
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
        harden-algo-downgrade: no
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d8c89807b2b058ce3e5366e5b19c4335ba6840bf..8a2b1e6e823ee1372d04946b5aada09c0844ed6b 100644 (file)
@@ -7,6 +7,7 @@ server:
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
        harden-algo-downgrade: yes
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 2cf0556f5bff515c622bac888cbe7dbb934b40a6..4a2e0977f22868404d31aa8f8f2356c0f9e5fef3 100644 (file)
@@ -7,6 +7,7 @@ server:
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
        harden-algo-downgrade: no
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index adf1ff123442042cbba3cc63f18cc6dd73411340..35ba376325dfcf0d22757f26223f868105c1dc07 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index c532da5ee000b9802d148cc4e529ace68ee2d5aa..90562c44783644ab9cbd758972232f340108adeb 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index ff2bc7633dd4fbf94c7a20446bd06676c4386ec3..2fc42fa5e91cb0ce02665e97a2f4a38a9018b564 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index de318397839182bd86ce54c164606ca51bad6174..395aa5b0265b0087a654da3c7f02f416d4accff3 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 4d82a1b7e156e0b4443b84eef157514e1272a8ea..ee9dc1428d8bbba14ef4e87b3ecca82f154aa065 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index d47f03f59a890405b8035c8a4ce4994fa6d77a9f..3b6bf4327c97f7c712a9947032a30a7ec9fb0818 100644 (file)
@@ -4,6 +4,7 @@ server:
        trust-anchor: "example.com.    3600    IN      DS      2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
        val-override-date: "20070916134226"
        target-fetch-policy: "0 0 0 0 0"
+       fake-dsa: yes
 
 stub-zone:
        name: "."
index 22875a3f4263b2b93bfc38fbba4fbeb226717a86..4499ac3dae14f19e04451715c36c27d9d1adf745 100644 (file)
@@ -945,4 +945,7 @@ char* w_lookup_reg_str(const char* key, const char* name);
 void w_config_adjust_directory(struct config_file* cfg);
 #endif /* UB_ON_WINDOWS */
 
+/** debug option for unit tests. */
+extern int fake_dsa;
+
 #endif /* UTIL_CONFIG_FILE_H */
index 56760d307b5256068343ef7e9a06e705a87a8fd9..a2475be5e61756aa0fa3d41c903522f514378313 100644 (file)
@@ -378,8 +378,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 193
-#define YY_END_OF_BUFFER 194
+#define YY_NUM_RULES 194
+#define YY_END_OF_BUFFER 195
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -387,219 +387,219 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[1913] =
+static yyconst flex_int16_t yy_accept[1921] =
     {   0,
-        1,    1,  175,  175,  179,  179,  183,  183,  187,  187,
-        1,    1,  194,  191,    1,  173,  173,  192,    2,  192,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      175,  176,  176,  177,  192,  179,  180,  180,  181,  192,
-      186,  183,  184,  184,  185,  192,  187,  188,  188,  189,
-      192,  190,  174,    2,  178,  192,  190,  191,    0,    1,
-        2,    2,    2,    2,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  175,    0,  179,
-        0,  186,    0,  183,  187,    0,  190,    0,    2,    2,
-      190,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  190,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  190,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   76,  191,  191,  191,  191,  191,
-      191,    8,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,   85,  190,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  190,
-      191,  191,  191,  191,  191,   36,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  153,  191,   14,   15,
-
-      191,   18,   17,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  139,  191,  191,  191,  191,
-      191,  191,  191,  191,    3,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  190,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  182,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,   39,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,   40,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-       20,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,   93,  191,  182,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   92,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   74,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-       25,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,   37,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,   38,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,   27,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      167,  191,  191,  191,  191,  191,  191,  191,   31,  191,
-       32,  191,  191,  191,   77,  191,   78,  191,   75,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,    7,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  146,
-      191,  191,  191,  191,   95,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,   28,  191,
-      191,  191,  191,  191,  191,  122,  191,  121,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   16,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   41,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   80,   79,  191,  191,  191,  191,
-      191,  191,  191,  118,  191,  191,  191,  191,  191,  191,
-      191,   86,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,   59,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,   63,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,   35,  191,  191,  191,  191,  191,
-      191,  191,  191,  120,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,    6,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  114,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  132,  191,  115,  191,
-      191,  144,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,   26,  191,  191,  191,  191,   82,  191,   83,
-
-       81,  191,  191,  191,  191,  191,  191,  191,   91,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  116,  191,  191,  191,  191,  191,  191,  143,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,   73,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,   33,  191,
-      191,   22,  191,  191,  191,   19,  191,  100,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,   48,   50,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  154,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,   84,  191,  191,
-      191,  191,  191,  191,   90,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,   94,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  138,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  108,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  104,  191,  109,  191,  191,  191,  191,  191,
-       89,  191,  191,   69,  191,  130,  191,  191,  191,  191,
-      191,  145,  191,  191,  191,  191,  191,  191,  191,  159,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  107,  191,  191,  191,  191,  191,   51,   52,  191,
-      191,   34,   58,  110,  191,  123,  191,  147,  119,  191,
-      191,   44,  191,  112,  191,  191,  191,  191,  191,    9,
-      191,  191,  191,   72,  191,  191,  191,  191,  169,  191,
-      129,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,   96,  158,  191,  191,  191,  191,  191,  191,  191,
-      191,  140,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  111,  191,  191,
-       43,   45,  191,  191,  191,  191,  191,  191,  191,   71,
-      191,  191,  191,  191,  168,  191,  191,  191,  191,  134,
-       23,   24,  191,  191,  191,  191,  191,  191,  191,   68,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  136,  133,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,   42,  191,  191,  191,  191,  191,  191,
-      191,   13,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,   12,  191,  191,   21,  191,  191,  191,  172,
-      191,   46,  191,  142,  135,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  103,  102,  191,  191,
-      191,  191,  137,  131,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,   53,  191,  191,  191,  141,  191,  191,
-      191,  191,  191,  191,  191,  191,   47,  191,  191,  191,
-       97,   99,  124,  191,  191,  191,  101,  191,  191,  148,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      155,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  125,  191,  191,  191,   29,  191,  191,
-      191,  191,    4,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  151,  191,  191,  191,  191,  191,
-      191,  191,  191,  157,  191,  191,  128,  191,  191,  191,
-      191,  191,  191,  191,   56,  191,   30,  152,  191,   11,
-      191,  191,  191,  191,  191,  191,  126,   60,  191,  191,
-      191,  106,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  156,   87,  191,  191,  191,  191,   62,   66,
-       61,  191,   54,  191,   10,  191,  191,  191,  170,  191,
-      191,  105,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,   67,   65,  191,   55,  191,
-      117,  191,  191,  127,  191,  191,  191,  191,   98,   49,
-
-      191,  191,  191,  191,  191,  191,  191,   88,   64,   57,
-      191,  171,  191,  191,  191,  150,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,   70,  191,  149,  166,  191,
-      191,  191,  191,  191,  191,    5,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  113,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  162,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      160,  191,  163,  164,  191,  191,  191,  191,  191,  161,
-      165,    0
+        1,    1,  176,  176,  180,  180,  184,  184,  188,  188,
+        1,    1,  195,  192,    1,  174,  174,  193,    2,  193,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      176,  177,  177,  178,  193,  180,  181,  181,  182,  193,
+      187,  184,  185,  185,  186,  193,  188,  189,  189,  190,
+      193,  191,  175,    2,  179,  193,  191,  192,    0,    1,
+        2,    2,    2,    2,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  176,    0,
+      180,    0,  187,    0,  184,  188,    0,  191,    0,    2,
+        2,  191,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  191,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  191,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,   76,  192,
+      192,  192,  192,  192,  192,    8,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   85,  191,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  191,  192,  192,  192,  192,  192,
+       36,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  154,  192,   14,   15,  192,   18,   17,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  140,  192,  192,  192,  192,  192,  192,  192,  192,
+        3,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  191,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  183,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,   39,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+       40,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,   20,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,   93,  192,  183,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  109,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   92,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   74,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,   25,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,   37,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+       38,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,   27,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  168,  192,
+      192,  192,  192,  192,  192,  192,   31,  192,   32,  192,
+      192,  192,   77,  192,   78,  192,   75,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,    7,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  147,  192,  192,
+      192,  192,   95,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,   28,  192,  192,  192,
+
+      192,  192,  192,  123,  192,  122,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   16,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   41,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   80,   79,  192,  192,  192,  192,  192,  192,
+      192,  119,  192,  192,  192,  192,  192,  192,  192,   86,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,   59,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,   63,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   35,  192,  192,  192,  192,  192,  192,  192,
+      192,  121,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,    6,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  115,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  133,  192,  116,  192,  192,  145,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+
+       26,  192,  192,  192,  192,   82,  192,   83,   81,  192,
+      192,  192,  192,  192,  192,  192,   91,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  117,
+      192,  192,  192,  192,  192,  192,  144,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+       73,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,   33,  192,  192,   22,
+      192,  192,  192,   19,  192,  100,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+       48,   50,  192,  192,  192,  192,  192,  192,  192,  192,
+
+      192,  155,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,   84,  192,  192,  192,  192,
+      192,  192,   90,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,   94,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  139,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  108,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      104,  192,  110,  192,  192,  192,  192,  192,   89,  192,
+      192,   69,  192,  131,  192,  192,  192,  192,  192,  146,
+
+      192,  192,  192,  192,  192,  192,  192,  160,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  107,
+      192,  192,  192,  192,  192,   51,   52,  192,  192,   34,
+       58,  111,  192,  124,  192,  148,  120,  192,  192,   44,
+      192,  113,  192,  192,  192,  192,  192,    9,  192,  192,
+      192,   72,  192,  192,  192,  192,  170,  192,  130,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,   96,
+      159,  192,  192,  192,  192,  192,  192,  192,  192,  141,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  112,  192,  192,   43,   45,
+      192,  192,  192,  192,  192,  192,  192,   71,  192,  192,
+      192,  192,  169,  192,  192,  192,  192,  135,   23,   24,
+      192,  192,  192,  192,  192,  192,  192,   68,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      137,  134,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,   42,  192,  192,  192,  192,  192,  192,  192,   13,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+       12,  192,  192,   21,  192,  192,  192,  173,  192,   46,
+
+      192,  143,  136,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  103,  102,  192,  192,  192,  192,
+      138,  132,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,   53,  192,  192,  192,  142,  192,  192,  192,  192,
+      192,  192,  192,  192,   47,  192,  192,  192,   97,   99,
+      125,  192,  192,  192,  101,  192,  192,  149,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  156,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  126,  192,  192,  192,   29,  192,  192,  192,  192,
+
+        4,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  152,  192,  192,  192,  192,  192,  192,  192,
+      192,  158,  192,  192,  129,  192,  192,  192,  192,  192,
+      192,  192,   56,  192,   30,  153,  192,   11,  192,  192,
+      192,  192,  192,  192,  127,   60,  192,  192,  192,  106,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      157,   87,  192,  192,  192,  192,   62,   66,   61,  192,
+       54,  192,   10,  192,  192,  192,  171,  192,  192,  105,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,   67,   65,  192,   55,  192,  118,  192,
+
+      192,  128,  192,  192,  192,  192,   98,   49,  192,  192,
+      192,  192,  192,  192,  192,   88,   64,   57,  192,  172,
+      192,  192,  192,  151,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,   70,  192,  150,  167,  192,  192,  192,
+      192,  192,  192,    5,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  114,  192,  192,  192,  192,
+      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
+      192,  192,  192,  192,  163,  192,  192,  192,  192,  192,
+
+      192,  192,  192,  192,  192,  192,  192,  192,  161,  192,
+      164,  165,  192,  192,  192,  192,  192,  162,  166,    0
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -642,863 +642,867 @@ static yyconst YY_CHAR yy_meta[40] =
         1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_uint16_t yy_base[1927] =
+static yyconst flex_uint16_t yy_base[1935] =
     {   0,
         0,    0,   37,   40,   44,   51,   63,   75,   56,   68,
-       87,  108, 2851, 2788,   50, 3778, 3778, 3778,  129,   94,
-       70,  104,  130,   90,   92,  115,  127,   95,   84,  111,
-      137,  148,   50,  170,  122,  150,  157,  160,  140,  181,
-     2669, 3778, 3778, 3778,   70, 2249, 3778, 3778, 3778,   42,
-     2239, 1833, 3778, 3778, 3778,  200, 1653, 3778, 3778, 3778,
-      141, 1500, 3778,  207, 3778,  211,  166, 1298,  217,  120,
-        0,  228,    0,    0,  103,  167,  164,  210,  197,  173,
-      212,  214,  125,  174,  230,  221,  229,  223,  234,  236,
-      237,  231,  244,  251,  238,  248,  255,  254,  256,  261,
-
-      259,  267,  268,  269,  271,  272,  277,  274,  279,  276,
-      285,  283,  287,  289,  293,  295,  299,  297,  301,  298,
-      305,  183,  306,  310,  307,  314,  318, 1146,  333, 1057,
-      326,  924,  339,  461,  386,  335,  311,  345,  349,    0,
-      342,  346,  352,  335,  348,  344,  353,  354,  355,  365,
-      357,  358,  372,  371,  392,  375,  361,  373,   49,  377,
-      379,  383,  370,  387,  382,  388,  389,  403,  390,  395,
-      419,  407,  420,  421,  418,  239,  422,  424,  430,  433,
-      398,  431,  432,  434,  435,  436,  437,  439,  442,  440,
-      443,  446,  448,  449,  461,  453,  457,  462,  465,  464,
-
-      466,  471,  479,  480,  482,  476,  477,  481,  485,  491,
-      487,  495,  488,  494,  496,  498,  502,  504,  509,  513,
-      508,  515,  517,  519,  521,  520,  522,  524,  530,  528,
-      531,  529,  543,  537,  540,  539,  541,  544,  546,  547,
-      548,  550,  551,  555,  561,  559,  563,  553,  571,  564,
-      566,  572,  574,  582,  583,  578,  587,  588,  590,  592,
-      589,  600,  593,  604,  603,  596,  610,  606,  607,  614,
-      611,  613,  618,  628,  630,  620,  622,  621,  624,  637,
-      631,  657,  639,  643,  649,  646,  647,  650,  655,  658,
-      651,  661,  662,  663,  664,  683,  670,  680,  682,  689,
-
-      685,  686,  697,  687,  688,  693,  698,  700,  699,  705,
-      706,  708,  710,  711,  714,  713,  726,  715,  725,  724,
-      727,  733,  735,  729,  737,  744,  741,  743,  745,  746,
-      747,  749,  751,  755, 3778,  758,  753,  760,  761,  763,
-      764, 3778,  766,  765,  767,  778,  771,  777,  779,  793,
-      794,  769,  775,  795,  790,  792,  798,  800,  820,  802,
-      804,  801,  808,  806,  807,  810,  815,  824,  816,  818,
-      829,  832,  833,  834,  838,  835,  837,  842, 3778,  841,
-      858,  849,  850,  843,  857,  860,  862,  869,  863,  867,
-      866,  871,  877,  872,  883,  873,  885,  890,  892,  894,
-
-      896,  902,  879,  898,  901,  904,  906,  907,  908,  914,
-      911,  913,  917,  915,  918,  921,  926,  922,  935,  923,
-      934,  938,  940,  941,  943,  944,  946,  952,  949,  950,
-      956,  957,  951,  961,  968,  965,  971,  973,  967,  979,
-      977,  980,  986,  982,  984,  983,  997,  998,  985,  999,
-      989,  994,  995, 1003, 1005, 1006, 1010, 1008, 1013, 1016,
-     1017, 1018, 1019, 1027, 1021, 1024, 1022, 1030, 1033, 1034,
-     1035, 1043, 1039, 1042, 1045, 1048, 1051, 1052, 1053, 1054,
-     1058, 1064, 1056, 1069, 1065, 3778, 1072, 1071, 1075, 1073,
-     1076, 1086, 1080, 1082, 1083, 1109, 3778, 1084, 3778, 3778,
-
-     1087, 3778, 3778, 1089, 1090, 1093, 1106, 1132, 1102, 1092,
-     1095, 1112, 1117, 1119, 1122, 1125, 1129, 1137, 1124, 1138,
-     1103, 1135, 1141, 1145, 1147, 1148, 1152, 1153, 1157, 1159,
-     1165, 1168, 1166, 1170, 1172, 1173, 1156, 1177, 1178, 1175,
-     1184, 1179, 1187, 1191, 1189, 3778, 1190, 1192, 1193, 1197,
-     1202, 1198, 1200, 1204, 3778, 1205, 1209, 1206, 1210, 1212,
-     1216, 1219, 1217, 1220, 1218, 1222, 1225, 1223, 1233, 1235,
-     1240, 1246, 1247, 1244, 1243, 1245, 1251, 1249, 1252, 1263,
-     1261, 1250, 1259, 1265, 1266, 1274, 1267, 1276, 1269, 1277,
-     1271, 1278, 1279, 1280, 1303, 1282, 1287, 1289, 1288, 1292,
-
-     1294, 1305, 1297, 1301, 1295, 1307, 1316, 1318, 1320, 1317,
-     1325, 1326, 1333, 1329, 1336, 1340, 1327, 1342, 1343, 1346,
-     1349, 1347, 1350, 1353, 1356, 3778, 1363, 1359, 1364, 1365,
-     1371, 1367, 1368, 1370, 1373, 1375, 1374, 1376, 1377, 1380,
-     1382, 1390, 3778, 1386, 1388, 1392, 1395, 1396, 1398, 1399,
-     1409, 1416, 1402, 3778, 1404, 1418, 1421, 1423, 1414, 1412,
-     1419, 1424, 1427, 1429, 1431, 1433, 1435, 1436, 1437, 1439,
-     1449, 1443, 1441, 1451, 1446, 1455, 1456, 1457, 1458, 1460,
-     3778, 1461, 1466, 1462, 1468, 1472, 1482, 1471, 1484, 1475,
-     1478, 1481, 1489, 1487, 1488, 1490, 1491, 3778, 1495,  158,
-
-     1496, 1498, 1499, 1506, 1507, 1503, 1512, 1504, 1511, 1515,
-     1521, 1522, 1523, 1524, 1526, 1528, 1529, 1531, 1532, 1533,
-     1534, 1537, 1540, 1544, 1548, 1546, 1550, 1552, 1554, 1555,
-     1556, 1561, 1562, 1563, 1566, 1567, 1568, 1569, 1570, 1572,
-     1576, 1577, 1579, 1584, 3778, 1594, 1583, 1587, 1585, 1596,
-     1586, 1607, 1600, 1603, 1608, 1610, 1604, 1616, 1614, 1620,
-     1621, 1627, 1622, 1624, 1618, 1612, 1638, 1639, 1635, 1637,
-     1642, 1643, 1113, 1636, 3778, 1645, 1646, 1648, 1650, 1668,
-     1655, 1652, 1657, 1664, 1670, 1654, 1673, 1675, 1676, 1681,
-     3778, 1682, 1683, 1677, 1687, 1684, 1690, 1692, 1694, 1695,
-
-     1700, 1699, 1701, 1702, 1708, 1710, 1711, 3778, 1714, 1717,
-     1719, 1725, 1713, 1721, 1723, 1728, 1729, 1730, 1731, 1737,
-     1733, 1735, 1736, 1738, 1741, 1739, 1743, 1744, 1746, 1758,
-     1752, 1760, 3778, 1745, 1771, 1763, 1761, 1774, 1767, 1778,
-     1779, 1777, 1780, 1782, 1784, 1785, 1786, 1787, 1789, 1791,
-     1792, 1796, 1797, 1798, 1795, 1800, 1794, 1815, 1803, 1816,
-     1817, 1818, 1806, 1823, 1831, 1834, 1835, 1837, 3778, 1840,
-     1841, 1830, 1842, 1819, 1843, 1851, 1854, 1844, 1852, 1855,
-     1856, 1858, 1865, 1857, 1859, 1861, 1866, 1868, 1867, 1869,
-     1872, 1874, 1879, 1887, 1889, 1892, 1870, 1890, 1893, 1895,
-
-     3778, 1898, 1903, 1900, 1904, 1907, 1909, 1915, 3778, 1912,
-     3778, 1911, 1919, 1922, 3778, 1924, 3778, 1927, 3778, 1928,
-     1932, 1921, 1913, 1934, 1935, 1937, 1942, 1939, 1943, 1945,
-     1946, 1947, 1949, 1950, 3778, 1954, 1956, 1958, 1960, 1964,
-     1962, 1963, 1966, 1965, 1971, 1976, 1984, 1970, 1991, 3778,
-     1978, 1988, 1977, 1989, 3778, 1980, 1993, 1997, 1998, 1999,
-     2006, 2003, 2007, 2010, 2000, 2011, 2024, 2012, 2020, 2021,
-     2022, 2023, 2031, 2027, 2029, 2033, 2030, 2036, 2037, 2039,
-     2041, 2044, 2045, 2048, 2046, 2047, 2049, 2051, 3778, 2053,
-     2060, 2061, 2062, 2068, 2070, 3778, 2064, 3778, 2074, 2075,
-
-     2082, 2081, 2083, 2071, 2089, 2085, 2093, 2096, 2091, 2099,
-     2100, 2102, 2103, 2105, 3778, 2104, 2106, 2107, 2109, 2113,
-     2110, 2120, 2114, 2127, 3778, 2133, 2130, 2131, 2137, 2134,
-     2138, 2144, 2141, 2143, 3778, 3778, 2142, 2147, 2149, 2151,
-     2161, 2153, 2155, 3778, 2157, 2159, 2166, 2174, 2175, 2172,
-     2162, 3778, 2168, 2165, 2176, 2182, 2184, 2186, 2178, 2192,
-     2188, 2191, 2193, 2195, 2201, 2203, 3778, 2205, 2206, 2208,
-     2211, 2212, 2213, 2214, 2216, 2219, 2218, 2221, 2220, 2229,
-     2230, 2232, 2233, 2234, 2237, 2238, 2243, 2245, 2246, 2256,
-     2257, 3778, 2264, 2247, 2266, 2248, 2263, 2267, 2274, 2270,
-
-     2255, 2271, 2277, 2276, 3778, 2278, 2279, 2281, 2285, 2286,
-     2288, 2290, 2293, 3778, 2295, 2298, 2299, 2302, 2301, 2303,
-     2305, 2307, 2315, 3778, 2313, 2321, 2317, 2319, 2325, 2327,
-     2324, 2330, 2332, 2328, 2334, 2338, 2336, 2340, 2342, 2343,
-     2345, 2346, 2347, 2351, 2357, 2352, 2367, 2359, 2372, 2356,
-     2364, 2354, 2374, 2381, 2384, 2369, 2382, 2388, 2385, 2386,
-     2387, 2389, 2396, 2393, 2403, 2392, 3778, 2402, 2400, 2407,
-     2409, 2410, 2411, 2413, 2416, 2412, 3778, 2419, 3778, 2420,
-     2425, 3778, 2426, 2428, 2429, 2431, 2432, 2433, 2435, 2436,
-     2447, 2434, 3778, 2443, 2445, 2451, 2453, 3778, 2457, 3778,
-
-     3778, 2446, 2454, 2464, 2458, 2465, 2467, 2471, 3778, 2472,
-     2473, 2476, 2474, 2478, 2480, 2482, 2484, 2481, 2485, 2486,
-     2488, 3778, 2490, 2487, 2491, 2497, 2498, 2501, 3778, 2503,
-     2512, 2504, 2513, 2514, 2515, 2519, 2521, 2522, 2528, 2526,
-     2525, 2527, 3778, 2529, 2532, 2534, 2536, 2540, 2541, 2549,
-     2545, 2551, 2547, 2554, 2556, 2565, 2543, 2557, 3778, 2562,
-     2568, 3778, 2570, 2560, 2571, 3778, 2572, 3778, 2575, 2574,
-     2576, 2577, 2585, 2579, 2591, 2592, 2593, 2594, 2582, 2603,
-     2596, 2600, 3778, 3778, 2606, 2607, 2609, 2612, 2610, 2614,
-     2623, 2619, 2626, 3778, 2615, 2628, 2621, 2627, 2629, 2617,
-
-     2630, 2637, 2639, 2638, 2645, 2631, 2641, 3778, 2647, 2648,
-     2649, 2652, 2651, 2654, 3778, 2656, 2658, 2664, 2662, 2665,
-     2666, 2680, 2682, 2659, 2671, 2686, 2688, 2690, 2683, 2692,
-     2693, 2695, 2697, 2698, 3778, 2699, 2701, 2703, 2706, 2707,
-     2708, 2709, 2715, 2719, 2710, 2713, 2720, 2724, 3778, 2721,
-     2726, 2727, 2730, 2733, 2735, 2737, 2738, 2743, 2746, 3778,
-     2740, 2745, 2747, 2748, 2753, 2751, 2758, 2757, 2759, 2762,
-     2765, 2763, 3778, 2769, 3778, 2770, 2777, 2780, 2781, 2771,
-     3778, 2783, 2785, 3778, 2784, 3778, 2792, 2797, 2786, 2787,
-     2801, 3778, 2804, 2805, 2807, 2809, 2810, 2811, 2812, 3778,
-
-     2814, 2817, 2816, 2822, 2823, 2825, 2828, 2826, 2829, 2836,
-     2835, 3778, 2833, 2837, 2845, 2844, 2848, 3778, 3778, 2847,
-     2853, 3778, 3778, 3778, 2856, 3778, 2851, 3778, 3778, 2857,
-     2859, 3778, 2864, 3778, 2865, 2866, 2868, 2870, 2871, 3778,
-     2872, 2873, 2875, 3778, 2877, 2883, 2879, 2880, 3778, 2882,
-     3778, 2888, 2887, 2890, 2894, 2901, 2903, 2906, 2896, 2898,
-     2907, 2909, 2910, 2912, 2911, 2914, 2915, 2918, 2920, 2923,
-     2925, 2927, 2928, 2926, 2930, 2932, 2933, 2934, 2943, 2946,
-     2950, 3778, 3778, 2937, 2947, 2952, 2953, 2955, 2956, 2959,
-     2960, 3778, 2963, 2958, 2968, 2966, 2969, 2970, 2978, 2971,
-
-     2980, 2989, 2982, 2983, 2972, 2992, 2985, 3778, 2986, 2993,
-     3778, 3778, 2996, 2999, 3004, 3006, 3001, 3008, 3009, 3778,
-     3010, 3011, 3018, 3014, 3778, 3023, 3020, 3029, 3031, 3778,
-     3778, 3778, 3032, 3024, 3026, 3036, 3037, 3034, 3040, 3778,
-     3043, 3044, 3045, 3047, 3052, 3055, 3056, 3059, 3065, 3061,
-     3068, 3070, 3778, 3778, 3071, 3077, 3074, 3075, 3073, 3076,
-     3079, 3081, 3083, 3778, 3085, 3089, 3090, 3092, 3093, 3096,
-     3099, 3778, 3038, 3094, 3098, 3105, 3100, 3106, 3109, 3111,
-     3112, 3116, 3778, 3118, 3122, 3778, 3124, 3123, 3125, 3778,
-     3129, 3778, 3132, 3778, 3778, 3126, 3133, 3136, 3142, 3144,
-
-     3148, 3138, 3145, 3154, 3151, 3153, 3778, 3778, 3163, 3152,
-     3155, 3165, 3778, 3778, 3164, 3166, 3167, 3168, 3170, 3171,
-     3174, 3176, 3179, 3177, 3180, 3188, 3178, 3192, 3182, 3191,
-     3198, 3193, 3199, 3778, 3201, 3203, 3204, 3778, 3205, 3211,
-     3208, 3215, 3214, 3221, 3218, 3225, 3778, 3226, 3227, 3222,
-     3778, 3778, 3778, 3228, 3236, 3232, 3778, 3238, 3244, 3778,
-     3250, 3242, 3240, 3257, 3246, 3253, 3254, 3261, 3230, 3263,
-     3778, 3259, 3264, 3266, 3269, 3268, 3270, 3271, 3274, 3275,
-     3276, 3284, 3281, 3778, 3288, 3292, 3289, 3778, 3296, 3285,
-     3293, 3298, 3778, 3303, 3297, 3299, 3307, 3309, 3301, 3310,
-
-     3312, 3314, 3315, 3323, 3778, 3319, 3325, 3326, 3328, 3327,
-     3335, 3334, 3337, 3778, 3339, 3340, 3778, 3342, 3341, 3343,
-     3350, 3354, 3357, 3358, 3778, 3361, 3778, 3778, 3364, 3778,
-     3367, 3362, 3368, 3369, 3371, 3372, 3778, 3778, 3373, 3375,
-     3379, 3778, 3380, 3382, 3385, 3383, 3386, 3387, 3391, 3392,
-     3393, 3396, 3778, 3778, 3397, 3399, 3404, 3408, 3778, 3778,
-     3778, 3416, 3778, 3418, 3778, 3420, 3406, 3411, 3778, 3427,
-     3413, 3778, 3421, 3423, 3429, 3434, 3436, 3437, 3431, 3438,
-     3440, 3441, 3443, 3444, 3450, 3778, 3778, 3452, 3778, 3455,
-     3778, 3457, 3459, 3778, 3460, 3464, 3447, 3468, 3778, 3778,
-
-     3470, 3474, 3471, 3475, 3476, 3478, 3477, 3778, 3778, 3778,
-     3479, 3778, 3483, 3481, 3484, 3778, 3486, 3489, 3488, 3490,
-     3494, 3491, 3499, 3492, 3504, 3500, 3506, 3518, 3515, 3519,
-     3511, 3513, 3526, 3523, 3530, 3778, 3525, 3778, 3778, 3522,
-     3532, 3538, 3531, 3534, 3535, 3778, 3539, 3542, 3543, 3544,
-     3546, 3550, 3558, 3548, 3551, 3559, 3566, 3568, 3560, 3574,
-     3576, 3570, 3562, 3572, 3583, 3580, 3582, 3778, 3584, 3585,
-     3586, 3587, 3592, 3596, 3588, 3597, 3602, 3606, 3608, 3590,
-     3613, 3610, 3614, 3616, 3618, 3619, 3778, 3620, 3622, 3624,
-     3626, 3628, 3630, 3631, 3632, 3637, 3634, 3640, 3647, 3644,
-
-     3778, 3648, 3778, 3778, 3652, 3642, 3654, 3656, 3659, 3778,
-     3778, 3778, 3686, 3693, 3700, 3707, 3714,   94, 3721, 3728,
-     3735, 3742, 3749, 3756, 3763, 3770
+       87,  108, 2699, 2266,   50, 3795, 3795, 3795,  129,   94,
+       70,  104,  130,   90,  109,  106,  127,  111,   84,  122,
+      146,  148,   50,  170,  136,  158,  152,  180,  168,  191,
+     2256, 3795, 3795, 3795,   70, 1839, 3795, 3795, 3795,   42,
+     1670, 1528, 3795, 3795, 3795,  210, 1344, 3795, 3795, 3795,
+      141, 1237, 3795,  214, 3795,  218,  140, 1109,  224,  167,
+        0,  235,    0,    0,   92,  162,  164,  174,  193,  217,
+      230,  219,  103,  178,  233,  225,  220,  221,  241,  243,
+      244,  189,  249,  247,  256,  245,  252,  255,  254,  260,
+
+      265,  268,  138,  272,  270,  271,  276,  280,  281,  287,
+      273,  285,  282,  288,  289,  290,  295,  303,  300,  305,
+      297,  307,  308,  314,  317,  318,  310,  319, 1055,  329,
+      728,  122,  458,  342,  373,  327,  347,  222,  351,  355,
+        0,  332,  348,  356,  350,  352,  354,  357,  341,  358,
+      368,  359,  370,  379,  377,  398,  380,  366,  378,  382,
+       49,  384,  386,  311,  389,  393,  376,  390,  396,  409,
+      400,  406,  416,  413,  426,  428,  424,  417,  430,  431,
+      439,  440,  392,  437,  441,  442,  443,  444,  445,  446,
+      451,  448,  452,  455,  454,  461,  469,  457,  465,  468,
+
+      478,  470,  471,  481,  490,  491,  492,  474,  484,  487,
+      493,  500,  498,  504,  502,  505,  507,  510,  488,  509,
+      514,  519,  525,  526,  528,  515,  524,  530,  532,  534,
+      540,  537,  546,  544,  542,  553,  538,  549,  550,  552,
+      554,  556,  557,  560,  561,  562,  566,  568,  569,  570,
+      573,  574,  576,  581,  577,  584,  592,  585,  595,  596,
+      598,  599,  601,  604,  602,  605,  613,  610,  606,  619,
+      616,  623,  624,  617,  621,  625,  635,  633,  632,  639,
+      641,  643,  644,  646,  664,  650,  649,  673,  648,  651,
+      662,  654,  686,  652,  671,  682,  684,  685,  692,  688,
+
+      690,  693,  699,  695,  696,  706,  698,  705,  709,  710,
+      712,  713,  715,  716,  722,  720,  723,  726,  733,  730,
+      740,  727,  655,  741,  738,  746,  744,  750,  751,  758,
+      754,  755,  756,  757,  759,  762,  765,  769, 3795,  771,
+      766,  773,  774,  776,  777, 3795,  779,  778,  780,  790,
+      782,  788,  784,  800,  806,  803,  802,  804,  805,  807,
+      810,  809,  829,  811,  813,  817,  839,  815,  816,  821,
+      827,  840,  838,  842,  843,  846,  847,  814,  848,  849,
+      851,  850, 3795,  859,  867,  860,  861,  864,  870,  874,
+      871,  880,  876,  881,  882,  885,  886,  887,  896,  892,
+
+      894,  899,  907,  901,  909,  915,  904,  911,  912,  913,
+      919,  918,  921,  920,  928,  924,  927,  930,  932,  934,
+      936,  939,  937,  948,  946,  949,  953,  956,  945,  959,
+      947,  960,  967,  965,  966,  970,  975,  968,  974,  981,
+      977,  983,  984,  985,  994,  991,  992, 1000,  997,  996,
+      998, 1012, 1008, 1001, 1013, 1009, 1016, 1002, 1017, 1018,
+     1019, 1023, 1024, 1025, 1031, 1029, 1030, 1032, 1035, 1036,
+     1041, 1043, 1044, 1045, 1050, 1051, 1053, 1061, 1062, 1052,
+     1064, 1065, 1054, 1069, 1072, 1073, 1075, 1080, 1081, 1083,
+     3795, 1089, 1085, 1087, 1086, 1088, 1099, 1095, 1093, 1096,
+
+     1122, 3795, 1097, 3795, 3795, 1100, 3795, 3795, 1104, 1102,
+     1110, 1115, 1123, 1145, 1119, 1107, 1126, 1129, 1136, 1130,
+     1138, 1128, 1153, 1150, 1156, 1160, 1140, 1148, 1158, 1161,
+     1162, 1168, 1166, 1171, 1172, 1174, 1184, 1187, 1183, 1185,
+     1188, 1190, 1175, 1192, 1194, 1176, 1200, 1202, 1204, 1208,
+     1205, 3795, 1206, 1207, 1210, 1209, 1217, 1214,  403, 1219,
+     3795, 1220, 1221, 1225, 1227, 1228, 1231, 1233, 1232, 1234,
+     1235, 1239, 1243, 1238, 1256, 1240, 1245, 1258, 1266, 1263,
+     1249, 1262, 1264, 1265, 1270, 1277, 1273, 1275, 1120, 1283,
+     1279, 1281, 1282, 1285, 1287, 1288, 1289, 1290, 1291, 1295,
+
+     1316, 1296, 1294, 1303, 1301, 1306, 1307, 1304, 1317, 1320,
+     1324, 1323, 1330, 1336, 1329, 1312, 1339, 1340, 1347, 1349,
+     1350, 1352, 1354, 1355, 1360, 1361, 1363, 1357, 1366, 1367,
+     1371, 1373, 3795, 1379, 1375, 1381, 1382, 1388, 1384, 1385,
+     1387, 1390, 1392, 1391, 1393, 1394, 1397, 1399, 1407, 3795,
+     1403, 1405, 1409, 1412, 1413, 1415, 1416, 1426, 1433, 1419,
+     3795, 1421, 1435, 1438, 1440, 1431, 1429, 1436, 1441, 1444,
+     1446, 1448, 1450, 1452, 1453, 1454, 1456, 1466, 1460, 1458,
+     1468, 1463, 1472, 1473, 1474, 1475, 1477, 3795, 1478, 1483,
+     1479, 1485, 1489, 1499, 1488, 1501, 1492, 1495, 1498, 1506,
+
+     1504, 1505, 1507, 1508, 3795, 1512,  186, 1513, 1515, 1516,
+     1523, 1524, 1520, 1529, 1521, 1528, 1532, 1538, 1539, 1540,
+     1541, 1543, 1545, 1546, 1548, 1549, 1550, 1551, 1554, 1557,
+     1561, 1565, 1563, 1567, 1569, 1571, 1572, 1573, 3795, 1578,
+     1579, 1580, 1583, 1584, 1585, 1586, 1587, 1589, 1593, 1594,
+     1596, 1601, 3795, 1611, 1600, 1604, 1602, 1613, 1603, 1624,
+     1617, 1620, 1625, 1627, 1621, 1633, 1631, 1637, 1638, 1644,
+     1639, 1641, 1635, 1629, 1655, 1656, 1652, 1654, 1659, 1660,
+     1313, 1653, 3795, 1662, 1663, 1665, 1667, 1685, 1672, 1669,
+     1674, 1681, 1687, 1671, 1690, 1692, 1693, 1698, 3795, 1699,
+
+     1700, 1694, 1704, 1701, 1707, 1709, 1711, 1712, 1717, 1716,
+     1718, 1719, 1725, 1727, 1728, 3795, 1731, 1734, 1736, 1742,
+     1730, 1738, 1740, 1745, 1746, 1747, 1748, 1754, 1750, 1752,
+     1753, 1755, 1758, 1756, 1760, 1761, 1763, 1775, 1769, 1777,
+     3795, 1762, 1788, 1780, 1778, 1791, 1784, 1795, 1796, 1794,
+     1797, 1799, 1801, 1802, 1803, 1804, 1806, 1808, 1809, 1813,
+     1814, 1815, 1812, 1817, 1811, 1832, 1820, 1833, 1834, 1835,
+     1823, 1840, 1848, 1851, 1852, 1854, 3795, 1857, 1858, 1847,
+     1859, 1836, 1860, 1868, 1871, 1861, 1869, 1872, 1873, 1875,
+     1882, 1874, 1876, 1878, 1883, 1885, 1884, 1886, 1889, 1891,
+
+     1896, 1904, 1906, 1909, 1887, 1907, 1910, 1912, 3795, 1915,
+     1920, 1917, 1921, 1924, 1926, 1932, 3795, 1929, 3795, 1928,
+     1936, 1939, 3795, 1941, 3795, 1944, 3795, 1945, 1949, 1938,
+     1930, 1951, 1952, 1954, 1959, 1956, 1960, 1962, 1963, 1964,
+     1966, 1967, 3795, 1971, 1973, 1975, 1977, 1981, 1979, 1980,
+     1983, 1982, 1988, 1993, 2001, 1987, 2008, 3795, 1995, 2005,
+     1994, 2006, 3795, 1997, 2010, 2014, 2015, 2016, 2023, 2020,
+     2024, 2027, 2017, 2028, 2041, 2029, 2037, 2038, 2039, 2040,
+     2048, 2044, 2046, 2050, 2047, 2053, 2054, 2056, 2058, 2061,
+     2062, 2065, 2063, 2064, 2066, 2068, 3795, 2070, 2077, 2078,
+
+     2079, 2085, 2087, 3795, 2081, 3795, 2091, 2092, 2099, 2098,
+     2100, 2088, 2106, 2102, 2110, 2113, 2108, 2116, 2117, 2119,
+     2120, 2122, 3795, 2121, 2123, 2124, 2126, 2130, 2127, 2137,
+     2131, 2144, 3795, 2150, 2147, 2148, 2154, 2151, 2155, 2161,
+     2158, 2160, 3795, 3795, 2159, 2164, 2166, 2168, 2178, 2170,
+     2172, 3795, 2174, 2176, 2183, 2191, 2192, 2189, 2179, 3795,
+     2185, 2182, 2193, 2199, 2201, 2203, 2195, 2209, 2205, 2208,
+     2210, 2212, 2218, 2220, 3795, 2222, 2223, 2225, 2228, 2229,
+     2230, 2231, 2233, 2236, 2235, 2238, 2237, 2246, 2247, 2249,
+     2250, 2251, 2254, 2255, 2260, 2262, 2263, 2273, 2274, 3795,
+
+     2281, 2264, 2283, 2265, 2280, 2284, 2291, 2287, 2272, 2288,
+     2294, 2293, 3795, 2295, 2296, 2298, 2302, 2303, 2305, 2307,
+     2310, 3795, 2312, 2315, 2316, 2319, 2318, 2320, 2322, 2324,
+     2332, 3795, 2330, 2338, 2334, 2336, 2342, 2344, 2341, 2347,
+     2349, 2345, 2351, 2355, 2353, 2357, 2359, 2360, 2362, 2363,
+     2364, 2368, 2374, 2369, 2384, 2376, 2389, 2373, 2381, 2371,
+     2391, 2398, 2401, 2386, 2399, 2405, 2402, 2403, 2404, 2406,
+     2413, 2410, 2420, 2409, 3795, 2419, 2417, 2424, 2426, 2427,
+     2428, 2430, 2433, 2429, 3795, 2436, 3795, 2437, 2442, 3795,
+     2443, 2445, 2446, 2448, 2449, 2450, 2452, 2453, 2464, 2451,
+
+     3795, 2460, 2462, 2468, 2470, 3795, 2474, 3795, 3795, 2463,
+     2471, 2481, 2475, 2482, 2484, 2488, 3795, 2489, 2490, 2493,
+     2491, 2495, 2497, 2499, 2501, 2498, 2502, 2503, 2505, 3795,
+     2507, 2504, 2508, 2514, 2515, 2518, 3795, 2520, 2529, 2521,
+     2530, 2531, 2532, 2536, 2538, 2539, 2545, 2543, 2542, 2544,
+     3795, 2546, 2549, 2551, 2553, 2557, 2558, 2566, 2562, 2568,
+     2564, 2571, 2573, 2582, 2560, 2574, 3795, 2579, 2585, 3795,
+     2587, 2577, 2588, 3795, 2589, 3795, 2592, 2591, 2593, 2594,
+     2602, 2596, 2608, 2609, 2610, 2611, 2599, 2620, 2613, 2617,
+     3795, 3795, 2623, 2624, 2626, 2629, 2627, 2631, 2640, 2636,
+
+     2643, 3795, 2632, 2645, 2638, 2644, 2646, 2634, 2647, 2654,
+     2656, 2655, 2662, 2648, 2658, 3795, 2664, 2665, 2666, 2669,
+     2668, 2671, 3795, 2673, 2675, 2681, 2679, 2682, 2683, 2697,
+     2699, 2676, 2688, 2703, 2705, 2707, 2700, 2709, 2710, 2712,
+     2714, 2715, 3795, 2716, 2718, 2720, 2723, 2724, 2725, 2726,
+     2732, 2736, 2727, 2730, 2737, 2741, 3795, 2738, 2743, 2744,
+     2747, 2750, 2752, 2754, 2755, 2760, 2763, 3795, 2757, 2762,
+     2764, 2765, 2770, 2768, 2775, 2774, 2776, 2779, 2782, 2780,
+     3795, 2786, 3795, 2787, 2794, 2797, 2798, 2788, 3795, 2800,
+     2802, 3795, 2801, 3795, 2809, 2814, 2803, 2804, 2818, 3795,
+
+     2821, 2822, 2824, 2826, 2827, 2828, 2829, 3795, 2831, 2834,
+     2833, 2839, 2840, 2842, 2845, 2843, 2846, 2853, 2852, 3795,
+     2850, 2854, 2862, 2861, 2865, 3795, 3795, 2864, 2870, 3795,
+     3795, 3795, 2873, 3795, 2868, 3795, 3795, 2874, 2876, 3795,
+     2881, 3795, 2882, 2883, 2885, 2887, 2888, 3795, 2889, 2890,
+     2892, 3795, 2894, 2900, 2896, 2897, 3795, 2899, 3795, 2905,
+     2904, 2907, 2911, 2918, 2920, 2923, 2913, 2915, 2924, 2926,
+     2927, 2929, 2928, 2931, 2932, 2935, 2937, 2940, 2942, 2944,
+     2945, 2943, 2947, 2949, 2950, 2951, 2960, 2963, 2967, 3795,
+     3795, 2954, 2964, 2969, 2970, 2972, 2973, 2976, 2977, 3795,
+
+     2980, 2975, 2985, 2983, 2986, 2987, 2995, 2988, 2997, 3006,
+     2999, 3000, 2989, 3009, 3002, 3795, 3003, 3010, 3795, 3795,
+     3013, 3016, 3021, 3023, 3018, 3025, 3026, 3795, 3027, 3028,
+     3035, 3031, 3795, 3040, 3037, 3046, 3048, 3795, 3795, 3795,
+     3049, 3041, 3043, 3053, 3054, 3051, 3057, 3795, 3060, 3061,
+     3062, 3064, 3069, 3072, 3073, 3076, 3082, 3078, 3085, 3087,
+     3795, 3795, 3088, 3094, 3091, 3092, 3090, 3093, 3096, 3098,
+     3100, 3795, 3102, 3106, 3107, 3109, 3110, 3113, 3116, 3795,
+     3055, 3111, 3115, 3122, 3117, 3123, 3126, 3128, 3129, 3133,
+     3795, 3135, 3139, 3795, 3141, 3140, 3142, 3795, 3146, 3795,
+
+     3149, 3795, 3795, 3143, 3150, 3153, 3159, 3161, 3165, 3155,
+     3162, 3171, 3168, 3170, 3795, 3795, 3180, 3169, 3172, 3182,
+     3795, 3795, 3181, 3183, 3184, 3185, 3187, 3188, 3191, 3193,
+     3196, 3194, 3197, 3205, 3195, 3209, 3199, 3208, 3215, 3210,
+     3216, 3795, 3218, 3220, 3221, 3795, 3222, 3228, 3225, 3232,
+     3231, 3238, 3235, 3242, 3795, 3243, 3244, 3239, 3795, 3795,
+     3795, 3245, 3253, 3249, 3795, 3255, 3261, 3795, 3267, 3259,
+     3257, 3274, 3263, 3270, 3271, 3278, 3247, 3280, 3795, 3276,
+     3281, 3283, 3286, 3285, 3287, 3288, 3291, 3292, 3293, 3301,
+     3298, 3795, 3305, 3309, 3306, 3795, 3313, 3302, 3310, 3315,
+
+     3795, 3320, 3314, 3316, 3324, 3326, 3318, 3327, 3329, 3331,
+     3332, 3340, 3795, 3336, 3342, 3343, 3345, 3344, 3352, 3351,
+     3354, 3795, 3356, 3357, 3795, 3359, 3358, 3360, 3367, 3371,
+     3374, 3375, 3795, 3378, 3795, 3795, 3381, 3795, 3384, 3379,
+     3385, 3386, 3388, 3389, 3795, 3795, 3390, 3392, 3396, 3795,
+     3397, 3399, 3402, 3400, 3403, 3404, 3408, 3409, 3410, 3413,
+     3795, 3795, 3414, 3416, 3421, 3425, 3795, 3795, 3795, 3433,
+     3795, 3435, 3795, 3437, 3423, 3428, 3795, 3444, 3430, 3795,
+     3438, 3440, 3446, 3451, 3453, 3454, 3448, 3455, 3457, 3458,
+     3460, 3461, 3467, 3795, 3795, 3469, 3795, 3472, 3795, 3474,
+
+     3476, 3795, 3477, 3481, 3464, 3485, 3795, 3795, 3487, 3491,
+     3488, 3492, 3493, 3495, 3494, 3795, 3795, 3795, 3496, 3795,
+     3500, 3498, 3501, 3795, 3503, 3506, 3505, 3507, 3511, 3508,
+     3516, 3509, 3521, 3517, 3523, 3535, 3532, 3536, 3528, 3530,
+     3543, 3540, 3547, 3795, 3542, 3795, 3795, 3539, 3549, 3555,
+     3548, 3551, 3552, 3795, 3556, 3559, 3560, 3561, 3563, 3567,
+     3575, 3565, 3568, 3576, 3583, 3585, 3577, 3591, 3593, 3587,
+     3579, 3589, 3600, 3597, 3599, 3795, 3601, 3602, 3603, 3604,
+     3609, 3613, 3605, 3614, 3619, 3623, 3625, 3607, 3630, 3627,
+     3631, 3633, 3635, 3636, 3795, 3637, 3639, 3641, 3643, 3645,
+
+     3647, 3648, 3649, 3654, 3651, 3657, 3664, 3661, 3795, 3665,
+     3795, 3795, 3669, 3659, 3671, 3673, 3676, 3795, 3795, 3795,
+     3703, 3710, 3717, 3724, 3731,   94, 3738, 3745, 3752, 3759,
+     3766, 3773, 3780, 3787
     } ;
 
-static yyconst flex_int16_t yy_def[1927] =
+static yyconst flex_int16_t yy_def[1935] =
     {   0,
-     1912,    1, 1913, 1913, 1914, 1914, 1915, 1915, 1916, 1916,
-     1917, 1917, 1912, 1918, 1912, 1912, 1912, 1912, 1919, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1920, 1912, 1912, 1912, 1920, 1921, 1912, 1912, 1912, 1921,
-     1922, 1912, 1912, 1912, 1912, 1922, 1923, 1912, 1912, 1912,
-     1923, 1924, 1912, 1925, 1912, 1924, 1924, 1918, 1918, 1912,
-     1926, 1919, 1926, 1919, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1920, 1920, 1921,
-     1921, 1922, 1922, 1912, 1923, 1923, 1924, 1924, 1925, 1925,
-     1924, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1924, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1924, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1924,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1924,
-     1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1912, 1912,
-
-     1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1924, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1924,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1912, 1918, 1918, 1918, 1912, 1918, 1912, 1918, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1912, 1918, 1912, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1912, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1912, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1918, 1918, 1918, 1918, 1912, 1918, 1912,
-
-     1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1918, 1912, 1918, 1918, 1918, 1912, 1918, 1912, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1912, 1918, 1918, 1912, 1918, 1912, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1912, 1912, 1918,
-     1918, 1912, 1912, 1912, 1918, 1912, 1918, 1912, 1912, 1918,
-     1918, 1912, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1912,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1912, 1918,
-     1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918,
-     1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912,
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1912,
-     1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1918, 1918, 1912, 1918, 1918, 1918, 1912,
-     1918, 1912, 1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1912, 1918, 1918,
-     1918, 1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1912, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918,
-     1912, 1912, 1912, 1918, 1918, 1918, 1912, 1918, 1918, 1912,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1918, 1912, 1918, 1918,
-     1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1912, 1918, 1918, 1912, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1912, 1918, 1912, 1912, 1918, 1912,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1912, 1918, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1912, 1912, 1918, 1918, 1918, 1918, 1912, 1912,
-     1912, 1918, 1912, 1918, 1912, 1918, 1918, 1918, 1912, 1918,
-     1918, 1912, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1912, 1912, 1918, 1912, 1918,
-     1912, 1918, 1918, 1912, 1918, 1918, 1918, 1918, 1912, 1912,
-
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1912, 1912,
-     1918, 1912, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1912, 1918, 1912, 1912, 1918,
-     1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1912, 1918, 1918, 1918,
-     1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
-
-     1912, 1918, 1912, 1912, 1918, 1918, 1918, 1918, 1918, 1912,
-     1912,    0, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912
+     1920,    1, 1921, 1921, 1922, 1922, 1923, 1923, 1924, 1924,
+     1925, 1925, 1920, 1926, 1920, 1920, 1920, 1920, 1927, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1928, 1920, 1920, 1920, 1928, 1929, 1920, 1920, 1920, 1929,
+     1930, 1920, 1920, 1920, 1920, 1930, 1931, 1920, 1920, 1920,
+     1931, 1932, 1920, 1933, 1920, 1932, 1932, 1926, 1926, 1920,
+     1934, 1927, 1934, 1927, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1928, 1928,
+     1929, 1929, 1930, 1930, 1920, 1931, 1931, 1932, 1932, 1933,
+     1933, 1932, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1932, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1932, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1932, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1932, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1920, 1926, 1920, 1920, 1926, 1920, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1932, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1920, 1926, 1932, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1920, 1926,
+     1926, 1926, 1920, 1926, 1920, 1926, 1920, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1920, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1926, 1920, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1920, 1926, 1926, 1926, 1926, 1920, 1926, 1920, 1920, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1920,
+     1926, 1926, 1926, 1920, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+     1926, 1920, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1920,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926, 1920,
+     1920, 1920, 1926, 1920, 1926, 1920, 1920, 1926, 1926, 1920,
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1926, 1920, 1926, 1920, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1920, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1920, 1920, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1926, 1926, 1920, 1926, 1926, 1926, 1920, 1926, 1920,
+
+     1926, 1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926, 1926, 1926,
+     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1920, 1920,
+     1920, 1926, 1926, 1926, 1920, 1926, 1926, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
+
+     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1920, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1920, 1926, 1920, 1920, 1926, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1920, 1920, 1926, 1926, 1926, 1926, 1920, 1920, 1920, 1926,
+     1920, 1926, 1920, 1926, 1926, 1926, 1920, 1926, 1926, 1920,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1920, 1920, 1926, 1920, 1926, 1920, 1926,
+
+     1926, 1920, 1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1920, 1920, 1920, 1926, 1920,
+     1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1920, 1926, 1920, 1920, 1926, 1926, 1926,
+     1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
+
+     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
+     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1920, 1920,    0,
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920
     } ;
 
-static yyconst flex_uint16_t yy_nxt[3818] =
+static yyconst flex_uint16_t yy_nxt[3835] =
     {   0,
        14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
        14,   18,   20,   21,   14,   22,   23,   24,   25,   14,
        26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
        36,   37,   38,   39,   40,   14,   14,   14,   14,   42,
-       43,   44,   42,   43,   44,  130,   47,   48,  130,   45,
+       43,   44,   42,   43,   44,  131,   47,   48,  131,   45,
        49,   70,   45,   47,   48,   71,   50,   49,   58,   59,
        60,   69,   69,   50,   52,   53,   54,   55,   61,   18,
-       58,   59,   60,  128,  128,   56,   52,   53,   54,   55,
-       61,   18,   69,  105,  231,   75,   76,   56,   15,   16,
+       58,   59,   60,  129,  129,   56,   52,   53,   54,   55,
+       61,   18,   69,  106,  234,   75,   76,   56,   15,   16,
        17,   63,   64,   65,   68,   68,   69,   68,   68,   66,
 
-       68,   96,   69,   77,   69,   68,   86,   69,   67,   15,
-       16,   17,   63,   64,   65,   69,   69,   78,  142,   88,
-       66,   70,   95,   69,   79,   71,   87,   69,   89,   67,
-       73,   80,   73,   73,   69,   73,   90,   69,   97,   69,
-       73,   74,   69,   91,  135,  135,   92,   81,  111,   69,
-       98,   82,   69,   93,   83,   94,   84,   85,   99,  153,
-       69,  102,   69,  112,  100,  103,  123,  113,  101,   69,
-      138,  124,   69,  120,  116,  121,   69,  114,  138,   69,
-      115,  104,   69,  143,  117,   69,   69,  106,  118,  119,
-      122,  107,  141,   69,  125,   69,  144,  108,  126,  148,
-
-      109,  132,  127,  132,  132,  154,  132,  110,   73,   69,
-       73,   73,  137,   73,  137,  137,  200,  137,   68,  140,
-       68,   68,   69,   68,   69,  145,   69,  147,   68,   73,
-      149,   73,   73,   69,   73,   69,  150,  155,  146,   73,
-       74,   69,   69,   69,  151,  152,   69,  157,   69,   69,
-       69,   69,  161,  159,  162,  156,   69,  163,  168,  164,
-       69,  158,  165,   69,  160,  170,   69,   69,   69,  169,
-      172,   69,  252,   69,  173,  166,  167,  176,  177,   69,
-       69,   69,  175,   69,   69,  171,   69,  179,   69,   69,
-      174,   69,  178,  183,  180,   69,  185,   69,  188,   69,
-
-      186,   69,  182,  181,  184,   69,  194,   69,  187,   69,
-       69,   69,  190,   69,  196,  189,  191,   69,   69,   69,
-      201,  195,   69,  138,  192,  193,   69,  203,  198,  130,
-       69,  204,  130,  199,  197,  206,  128,  128,  135,  135,
-      132,  202,  132,  132,  205,  132,  137,   69,  137,  137,
-       73,  137,   73,   73,  138,   73,   69,  207,   69,  209,
-       69,  140,  210,  208,   69,   69,   69,   69,  211,   69,
-       69,  219,  216,   69,  218,  212,  215,   69,  217,  220,
-      213,  221,   69,   69,   69,   69,  214,   69,  228,   69,
-      230,   69,  229,  232,   69,   69,  233,  235,  136,   69,
-
-       69,   69,   69,  222,   69,  239,  240,   69,  223,  234,
-       69,  236,  238,  224,  237,   69,  241,  257,  225,   69,
-      247,  242,  244,  245,  226,  227,  246,  248,  250,  253,
-       69,   69,   69,   69,   69,  243,   69,  255,  249,  251,
-      256,  254,   69,   69,   69,   69,   69,   69,   69,   69,
-      259,   69,   69,  261,   69,   69,  258,  263,   69,  265,
-       69,   69,  134,  268,  264,   69,  260,  266,  272,   69,
-      262,  274,  276,   69,   69,  267,   69,   69,   69,  270,
-      271,  275,  269,   69,  279,  273,  280,  282,   69,  138,
-      278,   69,   69,   69,   69,  277,  283,   69,  289,   69,
-
-       69,  286,  291,   69,  290,  288,   69,   69,   69,  281,
-       69,  285,  287,  284,   69,  292,   69,  300,  295,  297,
-       69,   69,  294,  298,  293,   69,  299,   69,  301,   69,
-      302,   69,   69,   69,   69,  305,   69,  308,  306,  296,
-       69,   69,   69,   69,  310,  307,  311,  303,  304,   69,
-      312,   69,   69,   69,  309,   69,   69,  317,   69,   69,
-       69,  318,   69,   69,  320,   69,  316,   69,  324,  313,
-      314,   69,  315,   69,  325,   69,   69,  319,   69,  323,
-      321,  322,  327,   69,   69,  328,   69,  326,  333,  334,
-       69,  331,  329,  335,   69,   69,  332,  330,  336,   69,
-
-       69,   69,   69,  342,   69,   69,  343,  337,   69,  340,
-      338,  341,   69,  344,  339,   69,   69,  349,   69,   69,
-      345,  346,   69,   69,  351,   69,   69,  347,  348,  352,
-       69,  353,   69,   69,   69,  359,   69,  354,  350,  358,
-       69,  355,   69,   69,  356,  361,  357,  360,  364,   69,
-      365,   69,  366,  362,  363,   69,  378,  368,  138,   69,
-      379,   69,   69,   69,  377,  384,  376,   69,  367,   69,
-       69,  369,  370,   69,   69,   69,   69,  382,  381,  380,
-      388,  371,   69,  372,  373,  374,  385,  383,  375,  387,
-      390,  389,   69,  386,   69,   69,  394,   69,   69,   69,
-
-       69,   69,  391,  396,  392,   69,  397,  398,  393,   69,
-       69,   69,   69,  395,  403,  404,  400,   69,   69,  399,
-       69,  401,   69,   69,  402,   69,   69,   69,  410,  407,
-      411,  409,  406,  413,  412,  405,   69,   69,   69,   69,
-      416,   69,  408,  415,  417,   69,  418,   69,  414,   69,
-      421,  422,  419,   69,  420,   69,   69,   69,   69,   69,
-      427,   69,  426,   69,  424,   69,  428,   69,  430,  425,
-       69,  431,   69,   69,  423,   69,   69,   69,   69,   69,
-      433,   69,  434,   69,  429,  441,  432,   69,  436,   69,
-       69,   69,  442,  440,  443,  435,  437,  439,  438,  444,
-
-      445,  446,   69,  448,   69,   69,   69,   69,  449,  452,
-       69,  450,   69,   69,   69,  463,   69,  451,   69,   69,
-       69,  465,   69,  467,  447,  464,  453,   69,   69,  462,
-       69,  454,   69,  455,  460,  461,   69,  469,  456,  466,
-      457,   69,  471,  470,   69,   69,   69,   69,  458,   69,
-       69,  475,  468,  138,   69,   69,  472,  480,  459,  476,
-      479,   69,   69,  473,  478,  481,  477,  474,  484,   69,
-       69,  486,   69,  482,   69,   69,  488,  485,   69,   69,
-      483,   69,  490,   69,   69,   69,  487,  489,  492,   69,
-      496,   69,  493,  491,  497,   69,  499,   69,  498,  501,
-
-      494,  500,   69,  495,   69,  502,   69,  503,   69,  504,
-       69,  508,  505,   69,   69,  506,   69,  507,   69,   69,
-       69,  512,  509,   69,  510,   69,   69,   69,  513,   69,
-       69,  519,  515,   69,   69,   69,  133,  516,   69,  514,
-      511,  517,  523,  521,  524,  518,   69,   69,  522,  525,
-       69,  520,   69,   69,  526,   69,   69,  528,   69,  533,
-      530,   69,   69,   69,   69,  535,  529,  534,   69,   69,
-      532,  536,  531,   69,  537,  540,  527,   69,  542,   69,
-       69,  538,  541,   69,  544,   69,  545,  539,  543,   69,
-      546,   69,   69,  549,   69,   69,   69,   69,   69,  551,
-
-      553,   69,  547,  550,  554,  548,   69,   69,  555,   69,
-       69,   69,  556,  558,  552,   69,  557,   69,   69,  559,
-       69,  563,   69,  568,  560,   69,  561,  564,   69,   69,
-       69,   69,  571,   69,   69,  562,   69,  565,  566,   69,
-      567,  574,   69,  572,  573,   69,   69,   69,  569,  570,
-      575,   69,  579,  578,   69,   69,  581,   69,  577,  582,
-       69,  576,  580,   69,   69,   69,  138,  584,   69,  131,
-       69,  588,  585,  589,  587,  583,   69,   69,  586,  595,
-      590,   69,  592,   69,   69,   69,  594,   69,   69,  591,
-      593,  597,   69,  600,   69,   69,   69,  598,   69,   69,
-
-      601,   69,   69,  596,   69,   69,  599,   69,  612,  613,
-      611,  609,  602,  614,   69,   69,  610,  634,   69,  622,
-      603,   69,  623,  894,   69,   69,  604,  625,  626,   69,
-      605,   69,  624,  606,   69,  628,   69,   69,  627,  632,
-      607,   69,  630,  608,   69,  615,  616,   69,  617,   69,
-       69,  618,  629,   69,  631,  633,  619,   69,  129,   69,
-       69,  639,  620,  621,   69,   69,  635,  638,   69,   69,
-      643,   69,  644,  636,  642,  645,  637,   69,   69,  640,
-       69,  646,   69,  641,   69,   69,  650,   69,  647,   69,
-       69,   69,  648,  649,  651,  654,   69,  652,  657,   69,
-
-      655,   69,   69,   69,   69,   69,  653,  656,  661,   69,
-       69,  659,   69,  660,   69,  663,   69,   69,   69,  666,
-      658,   69,   69,  662,   69,  664,  669,  667,   69,   69,
-       69,   69,   69,  675,   69,   69,  665,   69,  668,  670,
-      674,  680,  671,  678,  681,   69,  672,   69,  673,  677,
-      676,  679,   69,  684,  685,   69,   69,   69,   69,   69,
-      686,   69,   69,   69,   69,  691,  683,  682,  689,  688,
-      692,   69,  696,   69,  687,   69,  693,   69,   69,   69,
-      694,   69,  690,   69,  695,  698,   69,  700,  138,   69,
-       69,   69,   69,  702,   69,  713,  701,  699,  697,   69,
-
-       69,   69,  703,  714,   69,  705,   69,   69,  717,   69,
-       69,  722,  706,   69,  704,   69,  715,   69,  707,   69,
-      708,  718,  719,  720,  709,  716,  710,  721,   69,   69,
-       69,  711,   69,  724,  723,  726,  712,   69,   69,   69,
-      731,   69,  732,  725,  730,   69,  727,  733,   69,  734,
-      728,  729,   69,  738,   69,   69,  740,  737,   69,   69,
-      736,   69,   69,  741,  745,   69,  739,  735,   69,  742,
-      747,   69,  746,  743,  748,   69,   69,   69,  751,   69,
-       69,  744,   69,   69,  752,   69,   69,   69,   69,   69,
-      750,  754,   69,  758,   69,  749,  756,  762,   69,  753,
-
-       69,  755,   69,  761,   69,  757,  760,   69,   69,  759,
-       69,   69,  766,  767,   69,  768,   69,  763,  764,  765,
-      769,   69,  770,  771,   69,  774,   69,  772,   69,  775,
-       69,   69,  773,   69,  776,   69,   69,  777,  778,   69,
-      779,   69,  783,   69,  780,   69,  781,   69,   69,   69,
-      786,   69,  787,   69,  788,   69,  782,  790,   69,  785,
-      791,   69,  784,   69,  792,  789,  794,   69,   69,   69,
-       69,  793,   69,   69,   69,  799,  795,  800,   69,  805,
-       69,  802,  798,   69,   69,  803,  796,   69,  797,  806,
-       69,  801,  804,   69,   69,  808,   69,  812,  807,   69,
-
-       69,   69,   69,   69,  810,  811,  809,   69,   69,  814,
-       69,   69,  138,  821,  822,   69,   69,  813,   69,   69,
-      823,  815,  818,   69,   69,  819,  817,   69,  816,  824,
-      825,  820,  827,   69,   69,   69,   69,  826,   69,  833,
-       69,   69,  830,   69,   69,   69,   69,  838,  828,   69,
-      836,  831,   69,  829,  839,  834,   69,  832,   69,  840,
-       69,  835,   69,  842,   69,  837,   69,   69,   69,  845,
-      841,  844,  847,   69,   69,   69,  843,  849,   69,   69,
-       69,   69,   69,  850,   69,  846,  853,  848,   69,   69,
-      851,   69,  854,  852,  858,   69,   69,   69,   69,   69,
-
-      855,  862,  857,  856,  859,  861,   69,  864,   69,  863,
-      867,  860,   69,  866,  868,   69,   69,  865,  869,   69,
-       69,  872,   69,  875,   69,  874,   69,  876,   69,  871,
-       69,  870,   69,   69,   69,  873,   69,  877,  878,   69,
-      879,  881,  883,  880,  882,  884,  885,   69,   69,   69,
-       69,   69,  886,  887,   69,   69,  893,   69,   69,  895,
-       69,  896,   69,  888,   69,  136,   69,   69,  889,   69,
-      890,  899,  891,  897,  892,  900,   69,  904,  898,  901,
-       69,  902,   69,  903,  907,   69,  909,   69,   69,   69,
-      905,  906,  911,   69,   69,   69,   69,  912,  915,   69,
-
-      913,  917,   69,  910,   69,  919,   69,   69,  914,  918,
-      908,   69,   69,   69,   69,  924,  916,  921,  923,  922,
-       69,  928,   69,   69,  929,   69,   69,  920,  926,   69,
-      927,   69,  931,   69,  932,   69,  930,   69,  925,  935,
-       69,   69,   69,   69,  939,   69,  934,   69,   69,   69,
-       69,   69,  933,   69,  945,   69,   69,   69,   69,  940,
-      943,  936,  937,  949,   69,  941,  938,  942,  944,  950,
-       69,  946,   69,   69,  948,   69,  953,  952,  954,   69,
-      947,  957,  955,   69,  956,  960,   69,  951,  958,   69,
-       69,   69,   69,  959,   69,  961,   69,   69,   69,   69,
-
-      962,   69,  966,   69,   69,  969,   69,   69,   69,   69,
-       69,  963,   69,  977,  965,   69,  967,  976,   69,  968,
-      964,  970,  972,  971,  973,  974,  975,   69,   69,   69,
-       69,   69,  978,  979,  134,   69,  982,  980,  985,  983,
-      984,  986,   69,   69,  981,  993,   69,   69,  987,   69,
-      988,  989,   69,   69,   69,   69,   69,  990,  995,  992,
-      991,  997,  996,   69,   69,  998,   69,   69,   69,   69,
-       69,   69, 1004,   69,  994,  999, 1003,   69,   69,   69,
-       69,   69,   69, 1000,   69, 1012,   69, 1002, 1005, 1013,
-     1006,   69, 1007, 1001, 1009, 1018, 1011, 1008, 1015,   69,
-
-     1010,   69,   69, 1014,   69,   69, 1016,   69, 1017, 1021,
-       69, 1019,   69, 1022, 1025,   69,   69, 1026, 1020,   69,
-     1027,   69, 1030,   69,   69,   69, 1023,   69, 1032, 1034,
-     1024,   69, 1033,   69,   69, 1035,   69, 1028, 1036,   69,
-       69, 1029, 1031, 1037,   69, 1038,   69,   69, 1039,   69,
-     1040,   69, 1042, 1044,   69,   69, 1046,   69,   69,   69,
-     1041,   69,   69, 1049, 1043, 1052,   69, 1051,   69, 1048,
-       69, 1045,   69, 1055,   69,   69,   69,   69,   69, 1047,
-     1050, 1056,   69,   69, 1054, 1061, 1053, 1059,   69,   69,
-       69, 1063,   69, 1062, 1057, 1058,   69, 1060, 1065, 1067,
-
-       69,   69, 1064,   69, 1066,   69, 1071, 1069, 1068,   69,
-       69,   69,   69, 1077, 1074,   69, 1070, 1075,   69,   69,
-     1078, 1072,   69,   69,   69, 1084, 1082, 1080, 1079, 1076,
-     1073, 1083,   69,   69,   69,   69,   69, 1081, 1089,   69,
-     1088,   69,   69,   69, 1092,   69, 1091, 1093,   69,   69,
-     1085,   69, 1086,   69, 1087, 1100,   69,   69,   69,   69,
-       69,   69, 1090,   69, 1105,   69, 1094, 1097, 1098, 1095,
-     1099, 1096,   69,   69,   69, 1103,   69, 1106, 1101, 1102,
-       69, 1108,   69,   69, 1104, 1114,   69,   69, 1107, 1109,
-     1115, 1112, 1110,   69,   69,   69, 1113,   69, 1111, 1116,
-
-     1123,   69, 1119,   69, 1118,   69, 1122, 1124,   69, 1117,
-     1120,   69,   69, 1121,   69,   69,   69,   69,   69,   69,
-     1133,   69,   69, 1125, 1126,   69,   69, 1136, 1128, 1130,
-     1127, 1129,   69, 1137, 1135, 1139, 1132, 1134, 1140,   69,
-     1142, 1131,   69,   69, 1145,   69,   69, 1138, 1144,   69,
-       69, 1148, 1146,   69,   69,   69,   69, 1141, 1150,   69,
-     1143,   69, 1152,   69, 1151,   69, 1149,   69, 1156,   69,
-     1147,   69, 1153,   69,   69, 1160, 1167,   69,   69, 1154,
-       69, 1157, 1155, 1161,   69, 1158,   69,   69,   69, 1159,
-       69, 1162, 1163, 1164,   69, 1166,   69, 1165,   69, 1173,
-
-       69, 1169, 1168,   69,   69,   69, 1177,   69, 1170, 1172,
-     1171, 1176, 1174,   69, 1179,   69, 1178,   69,   69, 1182,
-       69, 1175, 1180,   69,   69,   69,   69, 1181,   69, 1184,
-       69,   69,   69,   69, 1185, 1183, 1188, 1194, 1186, 1189,
-     1193,   69,   69, 1187,   69,   69,   69, 1192, 1198,   69,
-       69,  133, 1190, 1191, 1200,   69, 1201,   69,   69,   69,
-       69,  131, 1202, 1203, 1196, 1195, 1197,   69,   69,   69,
-     1199, 1205, 1204, 1207, 1209,   69,   69, 1206,   69,   69,
-     1210, 1211,   69,   69, 1218, 1208,   69, 1216,   69,   69,
-       69,   69, 1222,   69, 1212, 1213, 1214,   69,   69, 1224,
-
-       69, 1215,   69, 1217, 1220,   69, 1227,   69, 1219, 1229,
-       69,   69, 1221,   69,   69,   69, 1228,   69, 1234,   69,
-     1225, 1231, 1232, 1223, 1226,   69, 1230,   69, 1238,   69,
-     1237,   69, 1241,   69, 1242, 1243,   69,   69, 1240,   69,
-       69, 1233,   69, 1236,   69, 1235,   69, 1244,   69, 1239,
-       69, 1249,   69, 1245,   69,   69, 1252,   69,   69,   69,
-     1246, 1265, 1248,   69,   69, 1247,   69, 1256,   69,   69,
-     1250,   69, 1253, 1258, 1255, 1257,   69, 1254, 1259,   69,
-     1251,   69, 1260, 1262,   69, 1266,   69, 1261, 1267, 1263,
-     1264, 1269, 1268,   69,   69, 1272,   69,   69,   69,   69,
-
-       69,   69, 1274, 1277,   69,   69, 1271, 1270,   69, 1273,
-     1279, 1275,   69, 1282,   69,   69, 1280, 1281, 1283,   69,
-     1284,   69,   69,   69,   69,   69, 1276, 1278,   69, 1286,
-     1287,   69,   69, 1289, 1288, 1291, 1290,   69,   69, 1294,
-       69,   69, 1285,   69,   69,   69,   69,   69,   69, 1292,
-     1293, 1299, 1296, 1300, 1301,   69, 1303,   69,   69,   69,
-     1302, 1295, 1297,   69, 1298,   69,   69, 1304, 1308,   69,
-       69, 1311, 1306, 1309, 1307, 1305,   69,   69, 1313,   69,
-     1310, 1314, 1315,   69,   69,   69,   69, 1312,   69, 1318,
-       69, 1316,   69,   69,   69, 1319,   69,   69,   69,   69,
-
-       69, 1329,   69,   69, 1321, 1317, 1322, 1328, 1323,   69,
-       69, 1320, 1325,   69, 1331,   69,   69, 1332, 1326, 1324,
-     1327, 1330, 1333, 1335,   69,   69,   69,   69, 1338, 1334,
-     1337,   69, 1339,   69,   69, 1343, 1340,   69,   69,   69,
-       69,   69, 1336, 1344,   69, 1349,   69, 1346,   69, 1350,
-     1345, 1341,   69,   69, 1342,   69, 1353,   69, 1348,   69,
-     1347,   69, 1354,   69, 1361, 1355,   69, 1351,   69,   69,
-     1359, 1356,   69, 1352,   69, 1357, 1360,   69, 1358, 1363,
-       69, 1362,   69,   69,   69, 1364,   69,   69,   69,   69,
-     1368,   69, 1366, 1369,   69, 1365, 1373,   69, 1372, 1367,
-
-     1374, 1370, 1375,   69,   69,   69,   69, 1379,   69, 1377,
-     1380, 1378,   69, 1371, 1381,   69, 1382, 1384,   69,   69,
-     1386,   69,   69, 1376,   69, 1387,   69,   69, 1385,   69,
-     1390,   69, 1383,   69, 1388,   69, 1391, 1392,   69,   69,
-       69,   69,   69,   69, 1389, 1394, 1397, 1398, 1400,   69,
-       69,   69, 1393,   69, 1396, 1401, 1395,   69, 1399,   69,
-       69,   69, 1403,   69,   69, 1402,   69, 1412,   69, 1404,
-       69,   69, 1405, 1413,   69, 1410,   69,   69,   69, 1417,
-     1408,  129, 1406,   69, 1407, 1409, 1420, 1411, 1415, 1414,
-     1416, 1418,   69, 1419,   69,   69, 1421, 1422,   69, 1423,
-
-       69, 1424,   69, 1426,   69,   69, 1428,   69, 1429,   69,
-       69,   69, 1432,   69, 1425,   69, 1431, 1434,   69,   69,
-       69,   69,   69, 1427, 1437,   69, 1436,   69, 1438, 1430,
-     1440,   69,   69,   69, 1433, 1444,   69, 1435,   69,   69,
-     1442, 1441,   69, 1439, 1449,   69, 1448,   69, 1451,   69,
-       69, 1443,   69, 1445, 1447,   69, 1453,   69,   69,   69,
-       69, 1446, 1456,   69, 1455,   69, 1450, 1454, 1460,   69,
-       69,   69, 1465, 1458,   69,   69, 1452,   69, 1462, 1466,
-     1463,   69,   69,   69, 1457, 1461, 1459, 1470, 1464,   69,
-     1469, 1468,   69,   69, 1471,   69,   69,   69,   69,   69,
-
-       69, 1467, 1472, 1473,   69, 1474, 1476, 1478, 1477,   69,
-     1475, 1481, 1482,   69, 1479, 1483,   69,   69, 1480,   69,
-     1485,   69,   69,   69,   69, 1489,   69, 1492,   69,   69,
-     1490, 1484, 1491, 1486,   69,   69, 1487,   69,   69, 1493,
-       69,   69, 1488, 1499, 1496,   69, 1498,   69,   69,   69,
-     1912, 1495, 1503, 1500, 1502, 1494,   69,   69, 1497,   69,
-       69, 1501, 1505,   69, 1504,   69, 1507, 1508,   69,   69,
-     1511,   69, 1513, 1506, 1510, 1512,   69,   69,   69, 1514,
-       69, 1509,   69,   69,   69,   69, 1520,   69, 1517,   69,
-     1522,   69,   69, 1525,   69,   69, 1515, 1519, 1521,   69,
-
-       69, 1527,   69, 1518, 1516, 1526,   69, 1524,   69, 1523,
-       69, 1529, 1530,   69, 1531,   69, 1528, 1532,   69,   69,
-     1533,   69,   69,   69,   69, 1540,   69,   69, 1534, 1538,
-       69, 1535,   69, 1536, 1537,   69, 1541,   69,   69,   69,
-       69, 1547,   69, 1539,   69,   69,   69, 1548, 1544,   69,
-     1551, 1552, 1543, 1546, 1553,   69, 1542, 1554,   69,   69,
-     1549, 1545,   69, 1555,   69,   69, 1550,   69,   69, 1556,
-       69,   69,   69, 1563, 1564,   69, 1560, 1557,   69, 1565,
-       69,   69,   69,   69,   69, 1559, 1558, 1566, 1561, 1562,
-       69, 1572,   69, 1567,   69,   69, 1573,   69,   69, 1568,
-
-     1569,   69, 1571, 1576,   69,   69, 1570, 1579,   69, 1577,
-     1575,   69, 1574,   69, 1582, 1583,   69, 1578,   69, 1586,
-       69,   69,   69,   69, 1580, 1587,   69, 1589, 1581, 1590,
-       69, 1585,   69, 1584, 1592,   69,   69, 1588,   69, 1591,
-     1594,   69, 1595,   69,   69, 1596,   69, 1598,   69,   69,
-       69, 1593,   69, 1599, 1600,   69,   69,   69, 1597,   69,
-     1602, 1604, 1605, 1607,   69, 1601, 1608,   69,   69, 1631,
-     1603,   69, 1611,   69, 1606, 1609, 1610,   69, 1612, 1613,
-       69, 1614,   69,   69, 1616,   69,   69,   69,   69,   69,
-     1617,   69, 1618,   69, 1619,   69, 1615,   69, 1622, 1621,
-
-     1624,   69,   69, 1620,   69,   69,   69, 1623,   69, 1629,
-       69,   69,   69, 1627, 1628, 1626, 1634,   69,   69, 1625,
-     1630,   69, 1638,   69,   69, 1637, 1632, 1636,   69, 1633,
-       69, 1635, 1639, 1640,   69,   69,   69,   69,   69, 1641,
-     1643,   69, 1646, 1647,   69,   69, 1649, 1642,   69, 1644,
-       69, 1650, 1645, 1651,   69, 1652,   69,   69, 1648, 1653,
-       69, 1656, 1657,   69,   69,   69,   69,   69, 1654, 1658,
-     1659, 1655, 1663, 1662, 1660,   69,   69,   69,   69,   69,
-       69, 1664,   69,   69, 1667, 1671,   69, 1661,   69,   69,
-       69,   69,   69, 1675,   69, 1665, 1666, 1670, 1668, 1673,
-
-       69, 1676, 1669,   69,   69,   69, 1677, 1672, 1674, 1678,
-       69,   69, 1684,   69, 1679,   69,   69,   69, 1685, 1681,
-       69, 1686, 1688,   69, 1689, 1682,   69,   69, 1692, 1680,
-       69, 1683, 1693,   69,   69, 1687, 1690,   69,   69,   69,
-       69, 1691,   69, 1694,   69, 1699, 1695, 1696,   69, 1700,
-       69, 1697,   69, 1701,   69, 1702,   69, 1703,   69, 1698,
-     1704, 1705,   69, 1706, 1708,   69,   69, 1713, 1712,   69,
-     1710,   69, 1707,   69, 1714,   69,   69, 1717,   69, 1709,
-       69,   69,   69,   69, 1711, 1718,   69,   69,   69, 1719,
-     1715, 1716, 1723,   69, 1722, 1725,   69,   69, 1720, 1727,
-
-       69,   69, 1721, 1728,   69,   69, 1729, 1730,   69,   69,
-       69,   69, 1726,   69, 1724,   69, 1734, 1731, 1737,   69,
-     1738,   69,   69, 1735,   69, 1742,   69,   69, 1732, 1733,
-     1743,   69, 1739, 1736, 1740,   69, 1744,   69,   69,   69,
-       69, 1747, 1750, 1745, 1741, 1748,   69,   69, 1753,   69,
-     1754,   69,   69,   69,   69,   69, 1912, 1746, 1749, 1756,
-     1758, 1759,   69, 1751, 1752, 1760,   69, 1757, 1761,   69,
-       69, 1755, 1763,   69,   69, 1762,   69, 1764, 1765,   69,
-       69,   69, 1769,   69,   69,   69, 1772,   69, 1766, 1770,
-     1768,   69,   69, 1771,   69,   69, 1773,   69,   69,   69,
-
-     1767, 1912, 1776,   69,   69,   69, 1778, 1777,   69,   69,
-     1786,   69, 1774, 1784, 1775, 1787,   69, 1779,   69, 1780,
-       69, 1781, 1782,   69, 1788,   69, 1783, 1789,   69, 1785,
-       69, 1791,   69,   69, 1790,   69, 1792, 1793, 1794,   69,
-     1795,   69, 1798,   69, 1797, 1799,   69, 1800,   69,   69,
-       69, 1796,   69,   69, 1801,   69,   69, 1912, 1805,   69,
-     1806, 1808,   69, 1809,   69, 1803, 1810,   69, 1802,   69,
-     1812,   69,   69, 1804, 1815, 1807,   69, 1814, 1811, 1816,
-       69, 1818,   69,   69, 1813, 1817,   69,   69,   69,   69,
-       69,   69, 1820,   69, 1824,   69,   69, 1819,   69, 1825,
-
-       69,   69,   69,   69,   69, 1823,   69, 1821, 1822, 1828,
-     1827,   69,   69, 1826, 1829, 1836,   69, 1838,   69, 1830,
-     1831, 1837, 1832,   69, 1835,   69, 1834,   69, 1833, 1839,
-       69,   69, 1840, 1844,   69,   69, 1841,   69,   69, 1849,
-     1843, 1846,   69,   69,   69, 1850,   69,   69, 1842, 1845,
-       69,   69, 1847, 1848,   69,   69,   69, 1851,   69, 1852,
-       69, 1912,   69,   69, 1862, 1854, 1853, 1859, 1856, 1857,
-       69,   69,   69, 1855,   69, 1860, 1863, 1858,   69, 1861,
-       69, 1867,   69, 1864,   69, 1865,   69, 1868,   69, 1869,
-     1872, 1866,   69, 1870,   69,   69,   69,   69,   69,   69,
-
-       69, 1875,   69, 1871,   69, 1879, 1912, 1874,   69,   69,
-     1882, 1873, 1878, 1880,   69, 1883, 1876, 1877,   69, 1881,
-       69, 1886,   69, 1884, 1887,   69,   69, 1885,   69, 1888,
-       69,   69,   69, 1889,   69, 1891,   69, 1893,   69, 1894,
-       69, 1897,   69,   69,   69, 1900,   69, 1890, 1901,   69,
-     1892, 1903,   69, 1902,   69, 1895,   69, 1896, 1904,   69,
-       69, 1898, 1899, 1905,   69, 1906,   69, 1910,   69, 1907,
-     1911,   69, 1912, 1908, 1912, 1912, 1912, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1909,   41,   41,   41,   41,
-       41,   41,   41,   46,   46,   46,   46,   46,   46,   46,
-
-       51,   51,   51,   51,   51,   51,   51,   57,   57,   57,
-       57,   57,   57,   57,   62,   62,   62,   62,   62,   62,
-       62,   72,   72, 1912,   72,   72,   72,   72,  128,  128,
-     1912, 1912, 1912,  128,  128,  130,  130, 1912, 1912,  130,
-     1912,  130,  132, 1912, 1912, 1912, 1912, 1912,  132,  135,
-      135, 1912, 1912, 1912,  135,  135,  137, 1912, 1912, 1912,
-     1912, 1912,  137,  139,  139, 1912,  139,  139,  139,  139,
-       73,   73, 1912,   73,   73,   73,   73,   13, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-
-     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912, 1912
+       68,   97,   69,   77,   69,   68,   86,  143,   67,   15,
+       16,   17,   63,   64,   65,   69,   69,   78,   69,   90,
+       66,   69,   88,   69,   79,  131,   87,   91,  131,   67,
+       73,   80,   73,   73,   69,   73,   89,  154,   96,   69,
+       73,   74,   69,   92,  136,  136,   93,   81,   69,   98,
+       69,   82,  139,   94,   83,   95,   84,   85,   69,   99,
+       69,  103,  112,  180,   69,  104,  142,  100,   70,  117,
+       69,  113,   71,  101,   69,  114,   69,  102,  144,  118,
+       69,  105,   69,  119,  120,  115,   69,  107,  116,  146,
+       69,  108,   69,  121,  124,  122,  145,  109,  139,  125,
+
+      110,   69,  147,   69,  126,   69,  164,  111,  127,  155,
+      123,  133,  128,  133,  133,   73,  133,   73,   73,  138,
+       73,  138,  138,  148,  138,   68,  141,   68,   68,   69,
+       68,   69,   69,   69,  139,   68,   73,   69,   73,   73,
+      156,   73,   69,  149,  160,   69,   73,   74,  150,  152,
+      153,  158,  159,   69,  151,   69,   69,   69,  157,   69,
+      163,   69,  166,  170,   69,  167,   69,   69,   69,  172,
+      174,  161,   69,  162,  175,  165,  171,   69,  168,  169,
+       69,  178,   69,   69,   69,   69,  177,  179,   69,  173,
+      176,  181,   69,   69,   69,  182,  185,   69,  190,   69,
+
+       69,   69,   69,  183,  187,  189,  184,   69,  188,   69,
+      196,  186,   69,  192,  191,   69,  193,   69,  198,   69,
+       69,  194,   69,   69,  197,  195,   69,  200,  203,   69,
+       69,   69,  129,  129,  205,  201,  208,  237,  199,  137,
+      207,  202,  206,  133,  139,  133,  133,  209,  133,  204,
+      136,  136,  138,   69,  138,  138,   73,  138,   73,   73,
+       69,   73,   69,  211,   69,  210,   69,  141,   69,   69,
+       69,   69,  213,  216,  135,  218,  220,  212,   69,  217,
+       69,  219,   69,  221,  215,  214,  222,  223,   69,   69,
+       69,   69,   69,  230,   69,  232,   69,  231,   69,  233,
+
+      235,   69,   69,  236,   69,   69,  241,  242,   69,  224,
+       69,  260,   69,  243,  225,   69,  238,  239,   69,  226,
+      240,   69,  244,  249,  227,   69,  250,  245,   69,   69,
+      228,  229,  247,  251,  248,  253,   69,  256,   69,  672,
+       69,  246,   69,   69,  252,  254,  258,  259,  257,   69,
+      255,   69,   69,   69,   69,   69,   69,   69,   69,  262,
+       69,  264,  261,   69,   69,  266,   69,   69,  268,   69,
+      134,  267,  271,   69,  263,  269,  275,   69,  265,  277,
+       69,   69,   69,   69,  270,  279,   69,  278,  272,  276,
+       69,  273,  274,   69,  282,  281,  139,  283,  285,   69,
+
+       69,  280,   69,   69,   69,   69,  286,  292,  289,  288,
+       69,  294,   69,  291,   69,  293,   69,   69,  290,   69,
+      284,   69,   69,  287,  300,  299,   69,   69,  301,  295,
+      298,   69,  302,  297,  303,  296,   69,   69,   69,  304,
+       69,  305,   69,  306,   69,  308,   69,  311,  309,   69,
+       69,  307,   69,  313,   69,  310,   69,  314,   69,  315,
+      316,   69,   69,  312,   69,   69,   69,  321,   69,   69,
+      317,  322,   69,   69,   69,  328,  324,  320,   69,  318,
+       69,   69,   69,  319,  329,   69,   69,  323,   69,   69,
+      327,  325,  326,   69,  330,  333,   69,   69,  337,  338,
+
+      340,  336,  331,  339,   69,  332,  335,   69,   69,  334,
+       69,   69,  346,   69,   69,  348,   69,   69,   69,  344,
+      345,  347,   69,  343,  341,   69,  353,  342,   69,   69,
+      350,   69,  349,   69,  351,   69,   69,   69,  352,  356,
+      355,  357,  363,  358,   69,   69,  362,   69,  354,  359,
+      364,   69,  360,   69,  361,   69,   69,  365,   69,  370,
+      139,   69,   69,   69,   69,  366,   69,   69,  368,  369,
+      381,  367,  372,  420,   69,  371,   69,  380,  373,  374,
+      382,  384,  385,   69,  383,   69,  387,  389,  375,  386,
+      376,  377,  378,  388,   69,  379,   69,   69,   69,  394,
+
+       69,  392,   69,  390,   69,   69,  398,   69,   69,  391,
+       69,   69,  393,  400,  396,  401,  402,   69,   69,  397,
+      395,   69,   69,  399,   69,   69,  407,   69,   69,  408,
+      403,  409,   69,  404,   69,   69,  406,  405,   69,   69,
+      132,  412,   69,  415,  414,   69,  410,  418,  411,  416,
+       69,  417,   69,   69,  413,  422,   69,  421,   69,  423,
+      419,  424,   69,   69,  426,  427,   69,   69,   69,   69,
+       69,   69,  432,  431,   69,  425,  429,   69,   69,  433,
+      430,   69,  435,   69,  436,   69,   69,  428,   69,   69,
+       69,   69,   69,  438,   69,  439,   69,  446,  434,  437,
+
+       69,  441,   69,  447,  449,  448,  445,  450,  440,  442,
+      444,  443,   69,  451,   69,   69,   69,   69,   69,   69,
+      455,   69,   69,   69,  457,   69,   69,   69,   69,   69,
+      470,  480,  456,   69,  472,  454,  452,  453,  458,   69,
+      459,   69,  460,  465,  466,  467,  468,  461,  471,  462,
+       69,   69,   69,  474,   69,   69,  469,  463,   69,   69,
+       69,   69,   69,   69,  473,  475,  476,  464,  484,  481,
+      477,  139,   69,   69,  486,  485,   69,  478,  483,   69,
+      482,  479,   69,   69,  487,  491,   69,  493,   69,  489,
+      490,  488,   69,   69,   69,  492,  495,   69,   69,   69,
+
+      494,  498,  497,  501,   69,  504,   69,  502,   69,  496,
+      505,   69,  507,   69,  506,  499,   69,  503,  500,   69,
+      508,   69,  509,   69,   69,   69,  514,   69,  511,  513,
+       69,   69,   69,   69,  515,  518,   69,  510,  516,   69,
+       69,  519,   69,  512,   69,  521,   69,  525,   69,   69,
+      522,   69,  517,  520,  523,  529,  527,   69,   69,   69,
+       69,   69,  524,  528,  531,   69,  526,  530,   69,  532,
+      535,   69,   69,  534,  539,  537,  536,   69,   69,   69,
+       69,  541,   69,  540,  538,  542,   69,   69,  546,   69,
+      548,  533,  543,   69,  547,   69,   69,   69,  544,  549,
+
+      545,  551,  550,   69,   69,  552,   69,  555,   69,   69,
+       69,  557,   69,   69,   69,  559,  553,  554,  556,  560,
+       69,   69,  562,  561,   69,   69,  558,  564,   69,   69,
+       69,   69,  563,  567,  569,   69,   69,   69,  574,  565,
+      570,   69,   69,   69,   69,  577,  566,   69,   69,  568,
+      571,  578,  573,   69,  572,   69,   69,   69,  580,  579,
+      575,  576,   69,   69,   69,   69,   69,  130,  585,  584,
+      583,  581,  586,   69,   69,  582,   69,   69,  587,  588,
+      592,   69,  589,  590,  139,   69,  591,   69,  595,  594,
+      593,  596,   69,   69,  598,   69,  601,   69,   69,   69,
+
+       69,   69,  599,  603,  600,   69,  606,   69,   69,   69,
+      604,   69,   69,  597,   69,  607,   69,  602,  605,   69,
+      618,   69,   69,  608,  615,  617,  619,   69,  620,  616,
+      621,   69,   69,  609,   69,   69,  629,  630,   69,  610,
+       69,   69,   69,  611,  632,  702,  612,  633,   69,  634,
+       69,  635,   69,  613,  641,  636,  614,   69,  622,  623,
+       69,  624,   69,  631,  625,   69,  637,  638,   69,  626,
+       69,  639,   69,   69,   69,  627,  628,  640,   69,  642,
+       69,  646,  645,   69,   69,  650,   69,   69,   69,  649,
+      643,  651,  644,  647,  652,   69,   69,   69,  653,   69,
+
+       69,  648,   69,  654,   69,  657,   69,  660,  655,  658,
+      656,  661,   69,  659,   69,  664,   69,   69,   69,   69,
+       69,   69,   69,  662,  663,  668,   69,  666,  667,   69,
+      670,   69,   69,   69,  673,  669,  665,   69,  676,   69,
+       69,  671,  674,   69,   69,   69,   69,   69,  682,  139,
+       69,   69,   69,  675,  681,   69,  687,   69,  677,  678,
+      685,   69,  679,  680,  683,  691,  684,  688,   69,  686,
+       69,  690,  689,  692,   69,   69,   69,   69,   69,  693,
+      694,  696,   69,  698,  699,   69,  695,   69,  700,   69,
+      703,   69,  705,   69,   69,   69,  707,  139,  697,   69,
+
+       69,   69,   69,   69,  709,  701,   69,   69,   69,  720,
+      721,  704,  706,   69,  708,   69,   69,  712,   69,   69,
+      710,  726,  724,  902,   69,   69,  711,  713,   69,   69,
+      722,  714,   69,  715,  725,   69,   69,  716,  723,  717,
+      729,   69,   69,  727,  718,  735,  728,  731,   69,  719,
+      730,   69,   69,  733,  738,  734,  137,  732,  737,   69,
+      739,   69,   69,  740,   69,  736,   69,   69,  741,   69,
+      742,  745,   69,   69,  748,   69,  744,  750,   69,   69,
+      749,  746,  753,   69,  747,   69,  755,   69,  743,  754,
+      756,   69,  751,   69,   69,  759,   69,   69,  752,   69,
+
+       69,  760,   69,   69,   69,   69,   69,  758,  762,   69,
+      766,   69,  757,  764,  770,   69,  761,   69,  763,   69,
+      769,   69,  765,  768,   69,   69,  767,   69,   69,  774,
+      775,   69,  776,   69,  771,  772,  773,  777,   69,  778,
+      779,   69,  782,   69,  780,   69,  783,   69,   69,  781,
+       69,  784,   69,   69,  785,  786,   69,  787,   69,  791,
+       69,  788,   69,  789,   69,   69,   69,  794,   69,  795,
+       69,  796,   69,  790,  798,   69,  793,  799,   69,  792,
+       69,  800,  797,  802,   69,   69,   69,   69,  801,   69,
+       69,   69,  807,  803,  808,   69,  813,   69,  810,  806,
+
+       69,   69,  811,  804,   69,  805,  814,   69,  809,  812,
+       69,   69,  816,   69,  820,  815,   69,   69,   69,   69,
+       69,  818,  819,  817,   69,   69,  822,   69,   69,  135,
+      829,  830,   69,   69,  821,   69,   69,  831,  823,  826,
+       69,   69,  827,  825,   69,  824,  832,  833,  828,  835,
+       69,   69,   69,   69,  834,   69,  841,   69,   69,  838,
+       69,   69,   69,   69,  846,  836,   69,  844,  839,   69,
+      837,  847,  842,   69,  840,   69,  848,   69,  843,   69,
+      850,   69,  845,   69,   69,   69,  853,  849,  852,  855,
+       69,   69,   69,  851,  857,   69,   69,   69,   69,   69,
+
+      858,   69,  854,  861,  856,   69,   69,  859,   69,  862,
+      860,  866,   69,   69,   69,   69,   69,  863,  870,  865,
+      864,  867,  869,   69,  872,   69,  871,  875,  868,   69,
+      874,  876,   69,   69,  873,  877,   69,   69,  880,   69,
+      883,   69,  882,   69,  884,   69,  879,   69,  878,   69,
+       69,   69,  881,   69,  885,  886,   69,  887,  889,  891,
+      888,  890,  892,  893,   69,   69,   69,   69,   69,  894,
+      895,   69,   69,  901,   69,   69,  903,   69,  904,   69,
+      896,   69,  134,   69,   69,  897,   69,  898,  907,  899,
+      905,  900,  908,   69,  912,  906,  909,   69,  910,   69,
+
+      911,  915,   69,  917,   69,   69,   69,  913,  914,  919,
+       69,   69,   69,   69,  920,  923,   69,  921,  925,   69,
+      918,   69,  927,   69,   69,  922,  926,  916,   69,   69,
+       69,   69,  932,  924,  929,  931,  930,   69,  936,   69,
+       69,  937,   69,   69,  928,  934,   69,  935,   69,  939,
+       69,  940,   69,  938,   69,  933,  943,   69,   69,   69,
+       69,  947,   69,  942,   69,   69,   69,   69,   69,  941,
+       69,  953,   69,   69,   69,   69,  948,  951,  944,  945,
+      957,   69,  949,  946,  950,  952,  958,   69,  954,   69,
+       69,  956,   69,  961,  960,  962,   69,  955,  965,  963,
+
+       69,  964,  968,   69,  959,  966,   69,   69,   69,   69,
+      967,   69,  969,   69,   69,   69,   69,  970,   69,  974,
+       69,   69,  977,   69,   69,   69,   69,   69,  971,   69,
+      985,  973,   69,  975,  984,   69,  976,  972,  978,  980,
+      979,  981,  982,  983,   69,   69,   69,   69,   69,  986,
+      987,  132,   69,  990,  988,  993,  991,  992,  994,   69,
+       69,  989, 1001,   69,   69,  995,   69,  996,  997,   69,
+       69,   69,   69,   69,  998, 1003, 1000,  999, 1005, 1004,
+       69,   69, 1006,   69,   69,   69,   69,   69,   69, 1012,
+       69, 1002, 1007, 1011,   69,   69,   69,   69,   69,   69,
+
+     1008,   69, 1020,   69, 1010, 1013, 1021, 1014,   69, 1015,
+     1009, 1017, 1026, 1019, 1016, 1023,   69, 1018,   69,   69,
+     1022,   69,   69, 1024,   69, 1025, 1029,   69, 1027,   69,
+     1030, 1033,   69,   69, 1034, 1028,   69, 1035,   69, 1038,
+       69,   69,   69, 1031,   69, 1040, 1042, 1032,   69, 1041,
+       69,   69, 1043,   69, 1036, 1044,   69,   69, 1037, 1039,
+     1045,   69, 1046,   69,   69, 1047,   69, 1048,   69, 1050,
+     1052,   69,   69, 1054,   69,   69,   69, 1049,   69,   69,
+     1057, 1051, 1060,   69, 1059,   69, 1056,   69, 1053,   69,
+     1063,   69,   69,   69,   69,   69, 1055, 1058, 1064,   69,
+
+       69, 1062, 1069, 1061, 1067,   69,   69,   69, 1071,   69,
+     1070, 1065, 1066,   69, 1068, 1073, 1075,   69,   69, 1072,
+       69, 1074,   69, 1079, 1077, 1076,   69,   69,   69,   69,
+     1085, 1082,   69, 1078, 1083,   69,   69, 1086, 1080,   69,
+       69,   69, 1092, 1090, 1088, 1087, 1084, 1081, 1091,   69,
+       69,   69,   69,   69, 1089, 1097,   69, 1096,   69,   69,
+       69, 1100,   69, 1099, 1101,   69,   69, 1093,   69, 1094,
+       69, 1095, 1108,   69,   69,   69,   69,   69,   69, 1098,
+       69, 1113,   69, 1102, 1105, 1106, 1103, 1107, 1104,   69,
+       69,   69, 1111,   69, 1114, 1109, 1110,   69, 1116,   69,
+
+       69, 1112, 1122,   69,   69, 1115, 1117, 1123, 1120, 1118,
+       69,   69,   69, 1121,   69, 1119, 1124, 1131,   69, 1127,
+       69, 1126,   69, 1130, 1132,   69, 1125, 1128,   69,   69,
+     1129,   69,   69,   69,   69,   69,   69, 1141,   69,   69,
+     1133, 1134,   69,   69, 1144, 1136, 1138, 1135, 1137,   69,
+     1145, 1143, 1147, 1140, 1142, 1148,   69, 1150, 1139,   69,
+       69, 1153,   69,   69, 1146, 1152,   69,   69, 1156, 1154,
+       69,   69,   69,   69, 1149, 1158,   69, 1151,   69, 1160,
+       69, 1159,   69, 1157,   69, 1164,   69, 1155,   69, 1161,
+       69,   69, 1168, 1175,   69,   69, 1162,   69, 1165, 1163,
+
+     1169,   69, 1166,   69,   69,   69, 1167,   69, 1170, 1171,
+     1172,   69, 1174,   69, 1173,   69, 1181,   69, 1177, 1176,
+       69,   69,   69, 1185,   69, 1178, 1180, 1179, 1184, 1182,
+       69, 1187,   69, 1186,   69,   69, 1190,   69, 1183, 1188,
+       69,   69,   69,   69, 1189,   69, 1192,   69,   69,   69,
+       69, 1193, 1191, 1196, 1202, 1194, 1197, 1201,   69,   69,
+     1195,   69,   69,   69, 1200, 1206,   69,   69,  130, 1198,
+     1199, 1208,   69, 1209,   69,   69,   69,   69,   69, 1210,
+     1211, 1204, 1203, 1205,   69,   69,   69, 1207, 1213, 1212,
+     1215, 1217,   69,   69, 1214,   69,   69, 1218, 1219,   69,
+
+       69, 1226, 1216,   69, 1224,   69,   69,   69,   69, 1230,
+       69, 1220, 1221, 1222,   69,   69, 1232,   69, 1223,   69,
+     1225, 1228,   69, 1235,   69, 1227, 1237,   69,   69, 1229,
+       69,   69,   69, 1236,   69, 1242,   69, 1233, 1239, 1240,
+     1231, 1234,   69, 1238,   69, 1246,   69, 1245,   69, 1249,
+       69, 1250, 1251,   69,   69, 1248,   69,   69, 1241,   69,
+     1244,   69, 1243,   69, 1252,   69, 1247,   69, 1257,   69,
+     1253,   69,   69, 1260,   69,   69,   69, 1254, 1273, 1256,
+       69,   69, 1255,   69, 1264,   69,   69, 1258,   69, 1261,
+     1266, 1263, 1265,   69, 1262, 1267,   69, 1259,   69, 1268,
+
+     1270,   69, 1274,   69, 1269, 1275, 1271, 1272, 1277, 1276,
+       69,   69, 1280,   69,   69,   69,   69,   69,   69, 1282,
+     1285,   69,   69, 1279, 1278,   69, 1281, 1287, 1283,   69,
+     1290,   69,   69, 1288, 1289, 1291,   69, 1292,   69,   69,
+       69,   69,   69, 1284, 1286,   69, 1294, 1295,   69,   69,
+     1297, 1296, 1299, 1298,   69,   69, 1302,   69,   69, 1293,
+       69,   69,   69,   69,   69,   69, 1300, 1301, 1307, 1304,
+     1308, 1309,   69, 1311,   69,   69,   69, 1310, 1303, 1305,
+       69, 1306,   69,   69, 1312, 1316,   69,   69, 1319, 1314,
+     1317, 1315, 1313,   69,   69, 1321,   69, 1318, 1322, 1323,
+
+       69,   69,   69,   69, 1320,   69, 1326,   69, 1324,   69,
+       69,   69, 1327,   69,   69,   69,   69,   69, 1337,   69,
+       69, 1329, 1325, 1330, 1336, 1331,   69,   69, 1328, 1333,
+       69, 1339,   69,   69, 1340, 1334, 1332, 1335, 1338, 1341,
+     1343,   69,   69,   69,   69, 1346, 1342, 1345,   69, 1347,
+       69,   69, 1351, 1348,   69,   69,   69,   69,   69, 1344,
+     1352,   69, 1357,   69, 1354,   69, 1358, 1353, 1349,   69,
+       69, 1350,   69, 1361,   69, 1356,   69, 1355,   69, 1362,
+       69, 1369, 1363,   69, 1359,   69,   69, 1367, 1364,   69,
+     1360,   69, 1365, 1368,   69, 1366, 1371,   69, 1370,   69,
+
+       69,   69, 1372,   69,   69,   69,   69, 1376,   69, 1374,
+     1377,   69, 1373, 1381,   69, 1380, 1375, 1382, 1378, 1383,
+       69,   69,   69,   69, 1387,   69, 1385, 1388, 1386,   69,
+     1379, 1389,   69, 1390, 1392,   69,   69, 1394,   69,   69,
+     1384,   69, 1395,   69,   69, 1393,   69, 1398,   69, 1391,
+       69, 1396,   69, 1399, 1400,   69,   69,   69,   69,   69,
+       69, 1397, 1402, 1405, 1406, 1408,   69,   69,   69, 1401,
+       69, 1404, 1409, 1403,   69, 1407,   69,   69,   69, 1411,
+       69,   69, 1410,   69, 1420,   69, 1412,   69,   69, 1413,
+     1421,   69, 1418,   69,   69,   69, 1425, 1416, 1920, 1414,
+
+       69, 1415, 1417, 1428, 1419, 1423, 1422, 1424, 1426,   69,
+     1427,   69,   69, 1429, 1430,   69, 1431,   69, 1432,   69,
+     1434,   69,   69, 1436,   69, 1437,   69,   69,   69, 1440,
+       69, 1433,   69, 1439, 1442,   69,   69,   69,   69,   69,
+     1435, 1445,   69, 1444,   69, 1446, 1438, 1448,   69,   69,
+       69, 1441, 1452,   69, 1443,   69,   69, 1450, 1449,   69,
+     1447, 1457,   69, 1456,   69, 1459,   69,   69, 1451,   69,
+     1453, 1455,   69, 1461,   69,   69,   69,   69, 1454, 1464,
+       69, 1463,   69, 1458, 1462, 1468,   69,   69,   69, 1473,
+     1466,   69,   69, 1460,   69, 1470, 1474, 1471,   69,   69,
+
+       69, 1465, 1469, 1467, 1478, 1472,   69, 1477, 1476,   69,
+       69, 1479,   69,   69,   69,   69,   69, 1920, 1475, 1480,
+     1481,   69, 1482, 1484, 1486, 1485,   69, 1483, 1489, 1490,
+       69, 1487, 1491,   69,   69, 1488,   69, 1493,   69,   69,
+       69,   69, 1497,   69, 1500,   69,   69, 1498, 1492, 1499,
+     1494,   69,   69, 1495,   69,   69, 1501,   69,   69, 1496,
+     1507, 1504,   69, 1506,   69,   69,   69, 1920, 1503, 1511,
+     1508, 1510, 1502,   69,   69, 1505,   69,   69, 1509, 1513,
+       69, 1512,   69, 1515, 1516,   69,   69, 1519,   69, 1521,
+     1514, 1518, 1520,   69,   69,   69, 1522,   69, 1517,   69,
+
+       69,   69,   69, 1528,   69, 1525,   69, 1530,   69,   69,
+     1533,   69,   69, 1523, 1527, 1529,   69,   69, 1535,   69,
+     1526, 1524, 1534,   69, 1532,   69, 1531,   69, 1537, 1538,
+       69, 1539,   69, 1536, 1540,   69,   69, 1541,   69,   69,
+       69,   69, 1548,   69,   69, 1542, 1546,   69, 1543,   69,
+     1544, 1545,   69, 1549,   69,   69,   69,   69, 1555,   69,
+     1547,   69,   69,   69, 1556, 1552,   69, 1559, 1560, 1551,
+     1554, 1561,   69, 1550, 1562,   69,   69, 1557, 1553,   69,
+     1563,   69,   69, 1558,   69,   69, 1564,   69,   69,   69,
+     1571, 1572,   69, 1568, 1565,   69, 1573,   69,   69,   69,
+
+       69,   69, 1567, 1566, 1574, 1569, 1570,   69, 1580,   69,
+     1575,   69,   69, 1581,   69,   69, 1576, 1577,   69, 1579,
+     1584,   69,   69, 1578, 1587,   69, 1585, 1583,   69, 1582,
+       69, 1590, 1591,   69, 1586,   69, 1594,   69,   69,   69,
+       69, 1588, 1595,   69, 1597, 1589, 1598,   69, 1593,   69,
+     1592, 1600,   69,   69, 1596,   69, 1599, 1602,   69, 1603,
+       69,   69, 1604,   69, 1606,   69,   69,   69, 1601,   69,
+     1607, 1608,   69,   69,   69, 1605,   69, 1610, 1612, 1613,
+     1615,   69, 1609, 1616,   69,   69, 1639, 1611,   69, 1619,
+       69, 1614, 1617, 1618,   69, 1620, 1621,   69, 1622,   69,
+
+       69, 1624,   69,   69,   69,   69,   69, 1625,   69, 1626,
+       69, 1627,   69, 1623,   69, 1630, 1629, 1632,   69,   69,
+     1628,   69,   69,   69, 1631,   69, 1637,   69,   69,   69,
+     1635, 1636, 1634, 1642,   69,   69, 1633, 1638,   69, 1646,
+       69,   69, 1645, 1640, 1644,   69, 1641,   69, 1643, 1647,
+     1648,   69,   69,   69,   69,   69, 1649, 1651,   69, 1654,
+     1655,   69,   69, 1657, 1650,   69, 1652,   69, 1658, 1653,
+     1659,   69, 1660,   69,   69, 1656, 1661,   69, 1664, 1665,
+       69,   69,   69,   69,   69, 1662, 1666, 1667, 1663, 1671,
+     1670, 1668,   69,   69,   69,   69,   69,   69, 1672,   69,
+
+       69, 1675, 1679,   69, 1669,   69,   69,   69,   69,   69,
+     1683,   69, 1673, 1674, 1678, 1676, 1681,   69, 1684, 1677,
+       69,   69,   69, 1685, 1680, 1682, 1686,   69,   69, 1692,
+       69, 1687,   69,   69,   69, 1693, 1689,   69, 1694, 1696,
+       69, 1697, 1690,   69,   69, 1700, 1688,   69, 1691, 1701,
+       69,   69, 1695, 1698,   69,   69,   69,   69, 1699,   69,
+     1702,   69, 1707, 1703, 1704,   69, 1708,   69, 1705,   69,
+     1709,   69, 1710,   69, 1711,   69, 1706, 1712, 1713,   69,
+     1714, 1716,   69,   69, 1721, 1720,   69, 1718,   69, 1715,
+       69, 1722,   69,   69, 1725,   69, 1717,   69,   69,   69,
+
+       69, 1719, 1726,   69,   69,   69, 1727, 1723, 1724, 1731,
+       69, 1730, 1733,   69,   69, 1728, 1735,   69,   69, 1729,
+     1736,   69,   69, 1737, 1738,   69,   69,   69,   69, 1734,
+       69, 1732,   69, 1742, 1739, 1745,   69, 1746,   69,   69,
+     1743,   69, 1750,   69,   69, 1740, 1741, 1751,   69, 1747,
+     1744, 1748,   69, 1752,   69,   69,   69,   69, 1755, 1758,
+     1753, 1749, 1756,   69,   69, 1761,   69, 1762,   69,   69,
+       69,   69,   69, 1920, 1754, 1757, 1764, 1766, 1767,   69,
+     1759, 1760, 1768,   69, 1765, 1769,   69,   69, 1763, 1771,
+       69,   69, 1770,   69, 1772, 1773,   69,   69,   69, 1777,
+
+       69,   69,   69, 1780,   69, 1774, 1778, 1776,   69,   69,
+     1779,   69,   69, 1781,   69,   69,   69, 1775, 1920, 1784,
+       69,   69,   69, 1786, 1785,   69,   69, 1794,   69, 1782,
+     1792, 1783, 1795,   69, 1787,   69, 1788,   69, 1789, 1790,
+       69, 1796,   69, 1791, 1797,   69, 1793,   69, 1799,   69,
+       69, 1798,   69, 1800, 1801, 1802,   69, 1803,   69, 1806,
+       69, 1805, 1807,   69, 1808,   69,   69,   69, 1804,   69,
+       69, 1809,   69,   69, 1920, 1813,   69, 1814, 1816,   69,
+     1817,   69, 1811, 1818,   69, 1810,   69, 1820,   69,   69,
+     1812, 1823, 1815,   69, 1822, 1819, 1824,   69, 1826,   69,
+
+       69, 1821, 1825,   69,   69,   69,   69,   69,   69, 1828,
+       69, 1832,   69,   69, 1827,   69, 1833,   69,   69,   69,
+       69,   69, 1831,   69, 1829, 1830, 1836, 1835,   69,   69,
+     1834, 1837, 1844,   69, 1846,   69, 1838, 1839, 1845, 1840,
+       69, 1843,   69, 1842,   69, 1841, 1847,   69,   69, 1848,
+     1852,   69,   69, 1849,   69,   69, 1857, 1851, 1854,   69,
+       69,   69, 1858,   69,   69, 1850, 1853,   69,   69, 1855,
+     1856,   69,   69,   69, 1859,   69, 1860,   69, 1920,   69,
+       69, 1870, 1862, 1861, 1867, 1864, 1865,   69,   69,   69,
+     1863,   69, 1868, 1871, 1866,   69, 1869,   69, 1875,   69,
+
+     1872,   69, 1873,   69, 1876,   69, 1877, 1880, 1874,   69,
+     1878,   69,   69,   69,   69,   69,   69,   69, 1883,   69,
+     1879,   69, 1887, 1920, 1882,   69,   69, 1890, 1881, 1886,
+     1888,   69, 1891, 1884, 1885,   69, 1889,   69, 1894,   69,
+     1892, 1895,   69,   69, 1893,   69, 1896,   69,   69,   69,
+     1897,   69, 1899,   69, 1901,   69, 1902,   69, 1905,   69,
+       69,   69, 1908,   69, 1898, 1909,   69, 1900, 1911,   69,
+     1910,   69, 1903,   69, 1904, 1912,   69,   69, 1906, 1907,
+     1913,   69, 1914,   69, 1918,   69, 1915, 1919,   69, 1920,
+     1916, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+
+     1920, 1920, 1917,   41,   41,   41,   41,   41,   41,   41,
+       46,   46,   46,   46,   46,   46,   46,   51,   51,   51,
+       51,   51,   51,   51,   57,   57,   57,   57,   57,   57,
+       57,   62,   62,   62,   62,   62,   62,   62,   72,   72,
+     1920,   72,   72,   72,   72,  129,  129, 1920, 1920, 1920,
+      129,  129,  131,  131, 1920, 1920,  131, 1920,  131,  133,
+     1920, 1920, 1920, 1920, 1920,  133,  136,  136, 1920, 1920,
+     1920,  136,  136,  138, 1920, 1920, 1920, 1920, 1920,  138,
+      140,  140, 1920,  140,  140,  140,  140,   73,   73, 1920,
+       73,   73,   73,   73,   13, 1920, 1920, 1920, 1920, 1920,
+
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920
     } ;
 
-static yyconst flex_int16_t yy_chk[3818] =
+static yyconst flex_int16_t yy_chk[3835] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1506,420 +1510,422 @@ static yyconst flex_int16_t yy_chk[3818] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
         3,    3,    4,    4,    4,   50,    5,    5,   50,    3,
         5,   15,    4,    6,    6,   15,    5,    6,    9,    9,
-        9,  159,   33,    6,    7,    7,    7,    7,    9,    7,
+        9,  161,   33,    6,    7,    7,    7,    7,    9,    7,
        10,   10,   10,   45,   45,    7,    8,    8,    8,    8,
-       10,    8,   21,   33,  159,   21,   21,    8,   11,   11,
-       11,   11,   11,   11, 1918,   20,   29,   20,   20,   11,
-
-       20,   29,   24,   21,   25,   20,   24,   28,   11,   12,
-       12,   12,   12,   12,   12,   75,   22,   22,   75,   25,
-       12,   70,   28,   30,   22,   70,   24,   26,   26,   12,
-       19,   22,   19,   19,   35,   19,   26,   83,   30,   27,
-       19,   19,   23,   27,   61,   61,   27,   23,   35,   31,
-       31,   23,   39,   27,   23,   27,   23,   23,   31,   83,
-       32,   32,   36,   36,   31,   32,   39,   36,   31,   37,
-      700,   39,   38,   38,   37,   38,   77,   36,   67,   76,
-       36,   32,   34,   76,   37,   80,   84,   34,   37,   37,
-       38,   34,   67,   40,   40,  122,   77,   34,   40,   80,
-
-       34,   56,   40,   56,   56,   84,   56,   34,   64,   79,
-       64,   64,   66,   64,   66,   66,  122,   66,   69,   64,
-       69,   69,   78,   69,   81,   78,   82,   79,   69,   72,
-       81,   72,   72,   86,   72,   88,   81,   85,   78,   72,
-       72,   87,   85,   92,   82,   82,   89,   86,   90,   91,
-       95,  176,   90,   88,   91,   85,   93,   92,   94,   93,
-       96,   87,   93,   94,   89,   96,   98,   97,   99,   95,
-       97,  101,  176,  100,   97,   93,   93,  100,  101,  102,
-      103,  104,   99,  105,  106,   96,  108,  103,  110,  107,
-       98,  109,  102,  107,  104,  112,  109,  111,  111,  113,
-
-      109,  114,  106,  105,  108,  115,  117,  116,  110,  118,
-      120,  117,  113,  119,  119,  112,  114,  121,  123,  125,
-      123,  118,  124,  137,  115,  116,  126,  124,  120,  131,
-      127,  125,  131,  121,  119,  127,  129,  129,  136,  136,
-      133,  123,  133,  133,  126,  133,  138,  144,  138,  138,
-      139,  138,  139,  139,  141,  139,  146,  141,  142,  143,
-      145,  139,  144,  142,  143,  147,  148,  149,  145,  151,
-      152,  152,  150,  157,  151,  146,  149,  150,  150,  153,
-      147,  154,  163,  154,  153,  158,  148,  156,  156,  160,
-      158,  161,  157,  160,  165,  162,  161,  163,  135,  164,
-
-      166,  167,  169,  154,  155,  166,  167,  170,  155,  162,
-      181,  164,  165,  155,  164,  168,  168,  181,  155,  172,
-      172,  168,  169,  170,  155,  155,  171,  173,  174,  177,
-      175,  171,  173,  174,  177,  168,  178,  179,  173,  175,
-      180,  178,  179,  182,  183,  180,  184,  185,  186,  187,
-      183,  188,  190,  185,  189,  191,  182,  187,  192,  189,
-      193,  194,  134,  192,  188,  196,  184,  190,  195,  197,
-      186,  197,  199,  195,  198,  191,  200,  199,  201,  194,
-      194,  198,  193,  202,  202,  196,  203,  204,  206,  207,
-      201,  203,  204,  208,  205,  200,  205,  209,  210,  211,
-
-      213,  207,  212,  210,  211,  209,  214,  212,  215,  203,
-      216,  206,  208,  205,  217,  213,  218,  221,  216,  218,
-      221,  219,  215,  219,  214,  220,  220,  222,  222,  223,
-      223,  224,  226,  225,  227,  226,  228,  229,  227,  217,
-      230,  232,  229,  231,  231,  228,  232,  224,  225,  234,
-      233,  236,  235,  237,  230,  233,  238,  238,  239,  240,
-      241,  239,  242,  243,  241,  248,  237,  244,  245,  234,
-      235,  246,  236,  245,  246,  247,  250,  240,  251,  244,
-      242,  243,  248,  249,  252,  248,  253,  247,  253,  253,
-      256,  251,  249,  254,  254,  255,  252,  250,  255,  257,
-
-      258,  261,  259,  260,  260,  263,  261,  256,  266,  258,
-      256,  259,  262,  262,  257,  265,  264,  267,  268,  269,
-      263,  264,  267,  271,  269,  272,  270,  265,  266,  270,
-      273,  270,  276,  278,  277,  274,  279,  271,  268,  273,
-      274,  272,  275,  281,  272,  276,  272,  275,  278,  280,
-      279,  283,  280,  276,  277,  284,  285,  281,  286,  287,
-      285,  285,  288,  291,  284,  290,  283,  289,  280,  282,
-      290,  282,  282,  292,  293,  294,  295,  288,  287,  286,
-      294,  282,  297,  282,  282,  282,  291,  289,  282,  293,
-      296,  295,  298,  292,  299,  296,  300,  301,  302,  304,
-
-      305,  300,  297,  302,  298,  306,  303,  303,  299,  303,
-      307,  309,  308,  301,  308,  309,  305,  310,  311,  304,
-      312,  306,  313,  314,  307,  316,  315,  318,  314,  312,
-      315,  313,  311,  317,  316,  310,  320,  319,  317,  321,
-      320,  324,  312,  319,  321,  322,  322,  323,  318,  325,
-      325,  326,  323,  327,  324,  328,  326,  329,  330,  331,
-      331,  332,  330,  333,  328,  337,  332,  334,  334,  329,
-      336,  336,  338,  339,  327,  340,  341,  344,  343,  345,
-      338,  352,  339,  347,  333,  346,  337,  353,  341,  348,
-      346,  349,  347,  345,  348,  340,  343,  344,  343,  349,
-
-      350,  351,  355,  352,  356,  350,  351,  354,  353,  356,
-      357,  354,  358,  362,  360,  363,  361,  355,  364,  365,
-      363,  364,  366,  366,  351,  363,  357,  367,  369,  362,
-      370,  358,  359,  359,  360,  361,  368,  368,  359,  365,
-      359,  371,  370,  369,  372,  373,  374,  376,  359,  377,
-      375,  374,  367,  380,  378,  384,  371,  380,  359,  375,
-      378,  382,  383,  372,  377,  381,  376,  373,  384,  385,
-      381,  386,  386,  382,  387,  389,  388,  385,  391,  390,
-      383,  388,  390,  392,  394,  396,  387,  389,  392,  393,
-      395,  403,  393,  391,  395,  395,  397,  397,  396,  399,
-
-      394,  398,  398,  394,  399,  400,  400,  401,  401,  402,
-      404,  406,  403,  405,  402,  404,  406,  405,  407,  408,
-      409,  410,  407,  411,  408,  412,  410,  414,  411,  413,
-      415,  415,  413,  416,  418,  420,  132,  413,  417,  412,
-      409,  413,  419,  417,  420,  414,  421,  419,  418,  421,
-      422,  416,  423,  424,  422,  425,  426,  423,  427,  428,
-      425,  429,  430,  433,  428,  430,  424,  429,  431,  432,
-      427,  431,  426,  434,  432,  435,  422,  436,  437,  439,
-      435,  433,  436,  437,  439,  438,  440,  434,  438,  441,
-      440,  440,  442,  443,  444,  446,  445,  449,  443,  445,
-
-      446,  451,  441,  444,  447,  442,  452,  453,  447,  447,
-      448,  450,  448,  450,  445,  454,  449,  455,  456,  451,
-      458,  455,  457,  460,  452,  459,  453,  456,  460,  461,
-      462,  463,  463,  465,  467,  454,  466,  457,  458,  464,
-      459,  466,  468,  464,  465,  469,  470,  471,  461,  462,
-      467,  473,  471,  470,  474,  472,  473,  475,  469,  474,
-      476,  468,  472,  477,  478,  479,  480,  476,  483,  130,
-      481,  480,  477,  481,  479,  475,  482,  485,  478,  487,
-      482,  484,  484,  488,  487,  490,  485,  489,  491,  483,
-      484,  489,  493,  492,  494,  495,  498,  490,  492,  501,
-
-      493,  504,  505,  488,  510,  506,  491,  511,  505,  506,
-      504,  498,  494,  507,  509,  521,  501,  521,  507,  509,
-      495,  496,  510,  773,  512,  773,  496,  512,  513,  513,
-      496,  514,  511,  496,  515,  515,  519,  516,  514,  519,
-      496,  517,  517,  496,  508,  508,  508,  522,  508,  518,
-      520,  508,  516,  523,  518,  520,  508,  524,  128,  525,
-      526,  526,  508,  508,  527,  528,  522,  525,  537,  529,
-      530,  530,  531,  523,  529,  532,  524,  531,  533,  527,
-      532,  533,  534,  528,  535,  536,  537,  540,  534,  538,
-      539,  542,  535,  536,  538,  541,  541,  539,  544,  543,
-
-      542,  545,  547,  544,  548,  549,  540,  543,  549,  550,
-      552,  547,  553,  548,  551,  551,  554,  556,  558,  554,
-      545,  557,  559,  550,  560,  552,  557,  554,  561,  563,
-      565,  562,  564,  563,  566,  568,  553,  567,  556,  558,
-      562,  568,  559,  566,  569,  569,  560,  570,  561,  565,
-      564,  567,  571,  572,  573,  575,  574,  576,  572,  573,
-      574,  578,  582,  577,  579,  579,  571,  570,  577,  576,
-      580,  583,  584,  581,  575,  580,  581,  584,  585,  587,
-      582,  589,  578,  591,  583,  586,  586,  588,  588,  590,
-      592,  593,  594,  590,  596,  596,  589,  587,  585,  597,
-
-      599,  598,  591,  597,  600,  593,  601,  605,  600,  603,
-       68,  605,  594,  604,  592,  595,  598,  602,  595,  606,
-      595,  601,  602,  603,  595,  599,  595,  604,  607,  610,
-      608,  595,  609,  607,  606,  608,  595,  611,  612,  617,
-      613,  614,  614,  607,  612,  613,  609,  614,  615,  614,
-      610,  611,  616,  617,  618,  619,  619,  616,  620,  622,
-      615,  621,  623,  620,  624,  624,  618,  614,  625,  621,
-      627,  628,  625,  622,  628,  627,  629,  630,  631,  632,
-      633,  623,  634,  631,  632,  635,  637,  636,  638,  639,
-      630,  634,  640,  638,  641,  629,  636,  642,  644,  633,
-
-      645,  635,  642,  641,  646,  637,  640,  647,  648,  639,
-      649,  650,  647,  648,  653,  649,  655,  644,  645,  646,
-      650,  651,  651,  652,  660,  656,  659,  653,  652,  656,
-      656,  661,  655,  657,  657,  658,  662,  657,  658,  663,
-      659,  664,  663,  665,  660,  666,  661,  667,  668,  669,
-      666,  670,  667,  673,  668,  672,  662,  670,  675,  665,
-      671,  671,  664,  674,  672,  669,  674,  676,  677,  678,
-      679,  673,  680,  682,  684,  679,  675,  680,  683,  686,
-      685,  683,  678,  688,  686,  684,  676,  690,  677,  687,
-      691,  682,  685,  692,  687,  689,  689,  693,  688,  694,
-
-      695,  693,  696,  697,  691,  692,  690,  699,  701,  695,
-      702,  703,   62,  704,  705,  706,  708,  694,  704,  705,
-      706,  696,  701,  709,  707,  702,  699,  710,  697,  707,
-      708,  703,  710,  711,  712,  713,  714,  709,  715,  716,
-      716,  717,  713,  718,  719,  720,  721,  721,  711,  722,
-      719,  714,  723,  712,  722,  717,  724,  715,  726,  723,
-      725,  718,  727,  725,  728,  720,  729,  730,  731,  728,
-      724,  727,  730,  732,  733,  734,  726,  732,  735,  736,
-      737,  738,  739,  733,  740,  729,  736,  731,  741,  742,
-      734,  743,  737,  735,  741,  747,  744,  749,  751,  748,
-
-      738,  746,  740,  739,  742,  744,  746,  748,  750,  747,
-      751,  743,  753,  750,  752,  754,  757,  749,  752,  752,
-      755,  755,  756,  758,  766,  757,  759,  759,  758,  754,
-      765,  753,  760,  761,  763,  756,  764,  760,  761,  762,
-      762,  764,  766,  763,  765,  767,  768,  769,  774,  770,
-      767,  768,  769,  770,  771,  772,  772,  776,  777,  774,
-      778,  776,  779,  771,  782,   57,  786,  781,  771,  783,
-      771,  779,  771,  777,  771,  780,  784,  783,  778,  780,
-      780,  781,  785,  782,  786,  787,  788,  788,  789,  794,
-      784,  785,  790,  790,  792,  793,  796,  792,  795,  795,
-
-      793,  797,  797,  789,  798,  799,  799,  800,  794,  798,
-      787,  802,  801,  803,  804,  804,  796,  801,  803,  802,
-      805,  809,  806,  807,  810,  813,  809,  800,  806,  810,
-      807,  811,  812,  814,  813,  815,  811,  812,  805,  816,
-      816,  817,  818,  819,  820,  821,  815,  822,  823,  820,
-      824,  826,  814,  825,  825,  827,  828,  834,  829,  821,
-      823,  817,  818,  829,  831,  821,  819,  822,  824,  830,
-      830,  826,  832,  837,  828,  836,  834,  832,  835,  839,
-      827,  837,  835,  835,  836,  840,  838,  831,  838,  842,
-      840,  841,  843,  839,  844,  841,  845,  846,  847,  848,
-
-      842,  849,  846,  850,  851,  849,  857,  855,  852,  853,
-      854,  843,  856,  857,  845,  859,  847,  856,  863,  848,
-      844,  850,  852,  851,  853,  854,  855,  858,  860,  861,
-      862,  874,  858,  859,   52,  864,  862,  860,  865,  863,
-      864,  866,  872,  865,  861,  874,  866,  867,  867,  868,
-      868,  870,  870,  871,  873,  875,  878,  871,  876,  873,
-      872,  877,  876,  876,  879,  877,  877,  880,  881,  884,
-      882,  885,  883,  886,  875,  878,  882,  883,  887,  889,
-      888,  890,  897,  879,  891,  891,  892,  881,  884,  892,
-      885,  893,  886,  880,  888,  897,  890,  887,  894,  894,
-
-      889,  895,  898,  893,  896,  899,  895,  900,  896,  900,
-      902,  898,  904,  900,  903,  903,  905,  904,  899,  906,
-      905,  907,  908,  912,  910,  923,  900,  908,  912,  914,
-      902,  913,  913,  922,  914,  916,  916,  906,  918,  918,
-      920,  907,  910,  920,  921,  921,  924,  925,  922,  926,
-      923,  928,  925,  927,  927,  929,  929,  930,  931,  932,
-      924,  933,  934,  932,  926,  936,  936,  934,  937,  931,
-      938,  928,  939,  939,  941,  942,  940,  944,  943,  930,
-      933,  940,  948,  945,  938,  945,  937,  943,  946,  953,
-      951,  947,  956,  946,  941,  942,  947,  944,  949,  952,
-
-      952,  954,  948,  949,  951,  957,  957,  954,  953,  958,
-      959,  960,  965,  961,  960,  962,  956,  960,  961,  963,
-      962,  958,  964,  966,  968,  968,  966,  964,  963,  960,
-      959,  967,  969,  970,  971,  972,  967,  965,  973,  974,
-      972,  975,  977,  973,  976,  976,  975,  977,  978,  979,
-      969,  980,  970,  981,  971,  984,  982,  983,  985,  986,
-      984,  987,  974,  988,  990,  990,  978,  981,  982,  979,
-      983,  980,  991,  992,  993,  987,  997,  991,  985,  986,
-      994,  993,  995, 1004,  988,  999,  999, 1000,  992,  994,
-     1000,  997,  994, 1002, 1001, 1003,  997, 1006,  995, 1001,
-
-     1007, 1005, 1004, 1009, 1003, 1007, 1006, 1008, 1008, 1002,
-     1005, 1010, 1011, 1005, 1012, 1013, 1016, 1014, 1017, 1018,
-     1018, 1019, 1021, 1009, 1010, 1020, 1023, 1021, 1012, 1014,
-     1011, 1013, 1022, 1022, 1020, 1023, 1017, 1019, 1023, 1024,
-     1026, 1016, 1027, 1028, 1029, 1026, 1030, 1022, 1028, 1029,
-     1031, 1032, 1030, 1033, 1037, 1034, 1032, 1024, 1034, 1038,
-     1027, 1039, 1037, 1040, 1034, 1042, 1033, 1043, 1041, 1045,
-     1031, 1046, 1038, 1041, 1051, 1046, 1054, 1054, 1047, 1039,
-     1053, 1042, 1040, 1047, 1050, 1043, 1048, 1049, 1055, 1045,
-     1059, 1048, 1049, 1050, 1056, 1053, 1057, 1051, 1058, 1060,
-
-     1061, 1056, 1055, 1062, 1060, 1063, 1064, 1064, 1057, 1059,
-     1058, 1063, 1061, 1065, 1066, 1066, 1065, 1068, 1069, 1070,
-     1070, 1062, 1068, 1071, 1072, 1073, 1074, 1069, 1075, 1072,
-     1077, 1076, 1079, 1078, 1073, 1071, 1076, 1081, 1074, 1077,
-     1080, 1080, 1081, 1075, 1082, 1083, 1084, 1079, 1085, 1085,
-     1086,   51, 1077, 1078, 1087, 1087, 1088, 1088, 1089, 1094,
-     1096,   46, 1089, 1090, 1083, 1082, 1084, 1101, 1090, 1091,
-     1086, 1093, 1091, 1095, 1097, 1097, 1093, 1094, 1095, 1098,
-     1098, 1099, 1100, 1102, 1103, 1096, 1099, 1101, 1104, 1103,
-     1106, 1107, 1108, 1108, 1100, 1100, 1100, 1109, 1110, 1110,
-
-     1111, 1100, 1112, 1102, 1106, 1113, 1113, 1115, 1104, 1116,
-     1116, 1117, 1107, 1119, 1118, 1120, 1115, 1121, 1121, 1122,
-     1111, 1118, 1119, 1109, 1112, 1125, 1117, 1123, 1126, 1127,
-     1125, 1128, 1129, 1126, 1130, 1131, 1131, 1129, 1128, 1130,
-     1134, 1120, 1132, 1123, 1133, 1122, 1135, 1132, 1137, 1127,
-     1136, 1137, 1138, 1133, 1139, 1140, 1140, 1141, 1142, 1143,
-     1134, 1152, 1136, 1144, 1146, 1135, 1152, 1144, 1150, 1145,
-     1138, 1148, 1141, 1146, 1143, 1145, 1151, 1142, 1147, 1147,
-     1139, 1156, 1148, 1149, 1149, 1153, 1153, 1148, 1154, 1150,
-     1151, 1155, 1154, 1154, 1157, 1158, 1155, 1159, 1160, 1161,
-
-     1158, 1162, 1160, 1163, 1166, 1164, 1157, 1156, 1163, 1159,
-     1165, 1161, 1169, 1169, 1168, 1165, 1166, 1168, 1170, 1170,
-     1171, 1171, 1172, 1173, 1176, 1174, 1162, 1164, 1175, 1173,
-     1174, 1178, 1180, 1176, 1175, 1180, 1178, 1181, 1183, 1184,
-     1184, 1185, 1172, 1186, 1187, 1188, 1192, 1189, 1190, 1181,
-     1183, 1189, 1186, 1190, 1191, 1194, 1194, 1195, 1202, 1191,
-     1192, 1185, 1187, 1196, 1188, 1197, 1203, 1194, 1199, 1199,
-     1205, 1204, 1196, 1202, 1197, 1195, 1204, 1206, 1206, 1207,
-     1203, 1207, 1208, 1208, 1210, 1211, 1213, 1205, 1212, 1212,
-     1214, 1210, 1215, 1218, 1216, 1213, 1217, 1219, 1220, 1224,
-
-     1221, 1224, 1223, 1225, 1215, 1211, 1216, 1223, 1217, 1226,
-     1227, 1214, 1219, 1228, 1226, 1230, 1232, 1227, 1220, 1218,
-     1221, 1225, 1228, 1231, 1231, 1233, 1234, 1235, 1234, 1230,
-     1233, 1236, 1235, 1237, 1238, 1239, 1236, 1241, 1240, 1242,
-     1239, 1244, 1232, 1240, 1245, 1246, 1246, 1242, 1247, 1247,
-     1241, 1237, 1248, 1249, 1238, 1257, 1250, 1251, 1245, 1253,
-     1244, 1250, 1251, 1252, 1257, 1252, 1254, 1248, 1255, 1258,
-     1255, 1253, 1264, 1249, 1260, 1254, 1256, 1256, 1254, 1260,
-     1261, 1258, 1263, 1265, 1267, 1261, 1270, 1269, 1271, 1272,
-     1267, 1274, 1264, 1269, 1279, 1263, 1273, 1273, 1272, 1265,
-
-     1274, 1270, 1275, 1275, 1276, 1277, 1278, 1279, 1281, 1277,
-     1280, 1278, 1282, 1271, 1280, 1280, 1281, 1285, 1285, 1286,
-     1287, 1287, 1289, 1276, 1288, 1288, 1290, 1295, 1286, 1300,
-     1291, 1292, 1282, 1297, 1289, 1291, 1292, 1293, 1293, 1298,
-     1296, 1299, 1301, 1306, 1290, 1296, 1299, 1300, 1302, 1302,
-     1304, 1303, 1295, 1307, 1298, 1303, 1297, 1305, 1301, 1309,
-     1310, 1311, 1305, 1313, 1312, 1304, 1314, 1316, 1316, 1306,
-     1317, 1324, 1307, 1317, 1319, 1313, 1318, 1320, 1321, 1321,
-     1311,   41, 1309, 1325, 1310, 1312, 1324, 1314, 1319, 1318,
-     1320, 1322, 1322, 1323, 1323, 1329, 1325, 1326, 1326, 1327,
-
-     1327, 1328, 1328, 1330, 1330, 1331, 1332, 1332, 1333, 1333,
-     1334, 1336, 1337, 1337, 1329, 1338, 1336, 1339, 1339, 1340,
-     1341, 1342, 1345, 1331, 1342, 1346, 1341, 1343, 1343, 1334,
-     1344, 1344, 1347, 1350, 1338, 1348, 1348, 1340, 1351, 1352,
-     1346, 1345, 1353, 1343, 1354, 1354, 1353, 1355, 1356, 1356,
-     1357, 1347, 1361, 1350, 1352, 1358, 1358, 1362, 1359, 1363,
-     1364, 1351, 1362, 1366, 1361, 1365, 1355, 1359, 1366, 1368,
-     1367, 1369, 1371, 1364, 1370, 1372, 1357, 1371, 1368, 1372,
-     1369, 1374, 1376, 1380, 1363, 1367, 1365, 1378, 1370, 1377,
-     1377, 1376, 1378, 1379, 1379, 1382, 1385, 1383, 1389, 1390,
-
-       14, 1374, 1379, 1380, 1387, 1380, 1383, 1387, 1385, 1388,
-     1382, 1390, 1391, 1391, 1388, 1393, 1393, 1394, 1389, 1395,
-     1395, 1396, 1397, 1398, 1399, 1399, 1401, 1403, 1403, 1402,
-     1401, 1394, 1402, 1396, 1404, 1405, 1397, 1406, 1408, 1404,
-     1407, 1409, 1398, 1410, 1407, 1413, 1409, 1411, 1410, 1414,
-       13, 1406, 1415, 1411, 1414, 1405, 1416, 1415, 1408, 1420,
-     1417, 1413, 1417, 1427, 1416, 1421, 1421, 1425, 1425, 1430,
-     1431, 1431, 1435, 1420, 1430, 1433, 1433, 1435, 1436, 1436,
-     1437, 1427, 1438, 1439, 1441, 1442, 1443, 1443, 1439, 1445,
-     1446, 1447, 1448, 1450, 1450, 1446, 1437, 1442, 1445, 1453,
-
-     1452, 1453, 1454, 1441, 1438, 1452, 1455, 1448, 1459, 1447,
-     1460, 1455, 1456, 1456, 1457, 1457, 1454, 1458, 1458, 1461,
-     1459, 1462, 1463, 1465, 1464, 1466, 1466, 1467, 1460, 1464,
-     1468, 1461, 1469, 1462, 1463, 1470, 1467, 1471, 1474, 1472,
-     1473, 1473, 1475, 1465, 1476, 1477, 1478, 1474, 1470, 1484,
-     1477, 1478, 1469, 1472, 1479, 1479, 1468, 1480, 1480, 1485,
-     1475, 1471, 1481, 1481, 1486, 1487, 1476, 1488, 1489, 1484,
-     1494, 1490, 1491, 1491, 1493, 1493, 1488, 1485, 1496, 1494,
-     1495, 1497, 1498, 1500, 1505, 1487, 1486, 1495, 1489, 1490,
-     1499, 1501, 1501, 1496, 1503, 1504, 1502, 1507, 1509, 1497,
-
-     1498, 1502, 1500, 1505, 1506, 1510, 1499, 1509, 1513, 1506,
-     1504, 1514, 1503, 1517, 1514, 1515, 1515, 1507, 1516, 1518,
-     1518, 1519, 1521, 1522, 1510, 1519, 1524, 1522, 1513, 1523,
-     1523, 1517, 1527, 1516, 1526, 1526, 1534, 1521, 1535, 1524,
-     1528, 1528, 1529, 1529, 1533, 1533, 1538, 1535, 1536, 1537,
-     1573, 1527, 1539, 1536, 1537, 1541, 1542, 1543, 1534, 1544,
-     1539, 1542, 1543, 1545, 1545, 1538, 1546, 1546, 1547, 1573,
-     1541, 1548, 1549, 1550, 1544, 1547, 1548, 1549, 1550, 1551,
-     1551, 1552, 1552, 1555, 1556, 1559, 1557, 1558, 1560, 1556,
-     1557, 1561, 1558, 1562, 1559, 1563, 1555, 1565, 1562, 1561,
-
-     1565, 1566, 1567, 1560, 1568, 1569, 1574, 1563, 1570, 1570,
-     1575, 1571, 1577, 1568, 1569, 1567, 1576, 1576, 1578, 1566,
-     1571, 1579, 1580, 1580, 1581, 1579, 1574, 1578, 1582, 1575,
-     1584, 1577, 1581, 1582, 1585, 1588, 1587, 1589, 1596, 1584,
-     1587, 1591, 1591, 1593, 1593, 1597, 1597, 1585, 1598, 1588,
-     1602, 1598, 1589, 1599, 1599, 1600, 1600, 1603, 1596, 1601,
-     1601, 1604, 1605, 1605, 1610, 1606, 1604, 1611, 1602, 1606,
-     1609, 1603, 1612, 1611, 1609, 1609, 1615, 1612, 1616, 1617,
-     1618, 1615, 1619, 1620, 1617, 1621, 1621, 1610, 1622, 1624,
-     1627, 1623, 1625, 1625, 1629, 1616, 1616, 1620, 1618, 1623,
-
-     1626, 1626, 1619, 1630, 1628, 1632, 1627, 1622, 1624, 1628,
-     1631, 1633, 1635, 1635, 1629, 1636, 1637, 1639, 1636, 1631,
-     1641, 1637, 1640, 1640, 1641, 1632, 1643, 1642, 1644, 1630,
-     1645, 1633, 1644, 1644, 1650, 1639, 1642, 1646, 1648, 1649,
-     1654, 1643, 1669, 1645, 1656, 1654, 1646, 1648, 1655, 1655,
-     1658, 1649, 1663, 1656, 1662, 1658, 1659, 1659, 1665, 1650,
-     1659, 1661, 1661, 1662, 1664, 1666, 1667, 1669, 1668, 1664,
-     1666, 1672, 1663, 1668, 1670, 1670, 1673, 1674, 1674, 1665,
-     1676, 1675, 1677, 1678, 1667, 1675, 1679, 1680, 1681, 1676,
-     1672, 1673, 1680, 1683, 1679, 1682, 1682, 1690, 1677, 1685,
-
-     1685, 1687, 1678, 1686, 1686, 1691, 1687, 1689, 1689, 1695,
-     1692, 1696, 1683, 1699, 1681, 1694, 1694, 1690, 1697, 1697,
-     1698, 1698, 1700, 1695, 1701, 1702, 1702, 1703, 1691, 1692,
-     1703, 1706, 1699, 1696, 1700, 1704, 1704, 1707, 1708, 1710,
-     1709, 1708, 1711, 1706, 1701, 1709, 1712, 1711, 1713, 1713,
-     1715, 1715, 1716, 1719, 1718, 1720,    0, 1707, 1710, 1718,
-     1720, 1721, 1721, 1712, 1712, 1722, 1722, 1719, 1723, 1723,
-     1724, 1716, 1726, 1726, 1732, 1724, 1729, 1729, 1731, 1731,
-     1733, 1734, 1735, 1735, 1736, 1739, 1740, 1740, 1732, 1736,
-     1734, 1741, 1743, 1739, 1744, 1746, 1741, 1745, 1747, 1748,
-
-     1733,    0, 1745, 1749, 1750, 1751, 1747, 1746, 1752, 1755,
-     1756, 1756, 1743, 1752, 1744, 1757, 1757, 1748, 1767, 1749,
-     1758, 1750, 1750, 1768, 1758, 1771, 1751, 1762, 1762, 1755,
-     1764, 1766, 1766, 1773, 1764, 1774, 1767, 1768, 1770, 1770,
-     1771, 1775, 1775, 1779, 1774, 1776, 1776, 1777, 1777, 1778,
-     1780, 1773, 1781, 1782, 1778, 1783, 1784,    0, 1782, 1797,
-     1783, 1785, 1785, 1788, 1788, 1780, 1790, 1790, 1779, 1792,
-     1793, 1793, 1795, 1781, 1797, 1784, 1796, 1796, 1792, 1798,
-     1798, 1802, 1801, 1803, 1795, 1801, 1802, 1804, 1805, 1807,
-     1806, 1811, 1804, 1814, 1811, 1813, 1815, 1803, 1817, 1813,
-
-     1819, 1818, 1820, 1822, 1824, 1807, 1821, 1805, 1806, 1817,
-     1815, 1823, 1826, 1814, 1818, 1825, 1825, 1827, 1827, 1819,
-     1820, 1826, 1821, 1831, 1824, 1832, 1823, 1829, 1822, 1828,
-     1828, 1830, 1829, 1833, 1840, 1834, 1830, 1837, 1833, 1841,
-     1832, 1835, 1835, 1843, 1841, 1842, 1844, 1845, 1831, 1834,
-     1842, 1847, 1837, 1840, 1848, 1849, 1850, 1843, 1851, 1844,
-     1854,    0, 1852, 1855, 1855, 1847, 1845, 1852, 1849, 1850,
-     1853, 1856, 1859, 1848, 1863, 1853, 1856, 1851, 1857, 1854,
-     1858, 1860, 1862, 1857, 1864, 1858, 1860, 1861, 1861, 1862,
-     1865, 1859, 1866, 1863, 1867, 1865, 1869, 1870, 1871, 1872,
-
-     1875, 1869, 1880, 1864, 1873, 1873,    0, 1867, 1874, 1876,
-     1876, 1866, 1872, 1874, 1877, 1877, 1870, 1871, 1878, 1875,
-     1879, 1880, 1882, 1878, 1881, 1881, 1883, 1879, 1884, 1882,
-     1885, 1886, 1888, 1883, 1889, 1885, 1890, 1888, 1891, 1889,
-     1892, 1892, 1893, 1894, 1895, 1895, 1897, 1884, 1896, 1896,
-     1886, 1898, 1898, 1897, 1906, 1890, 1900, 1891, 1899, 1899,
-     1902, 1893, 1894, 1900, 1905, 1902, 1907, 1908, 1908, 1905,
-     1909, 1909,    0, 1906,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0, 1907, 1913, 1913, 1913, 1913,
-     1913, 1913, 1913, 1914, 1914, 1914, 1914, 1914, 1914, 1914,
-
-     1915, 1915, 1915, 1915, 1915, 1915, 1915, 1916, 1916, 1916,
-     1916, 1916, 1916, 1916, 1917, 1917, 1917, 1917, 1917, 1917,
-     1917, 1919, 1919,    0, 1919, 1919, 1919, 1919, 1920, 1920,
-        0,    0,    0, 1920, 1920, 1921, 1921,    0,    0, 1921,
-        0, 1921, 1922,    0,    0,    0,    0,    0, 1922, 1923,
-     1923,    0,    0,    0, 1923, 1923, 1924,    0,    0,    0,
-        0,    0, 1924, 1925, 1925,    0, 1925, 1925, 1925, 1925,
-     1926, 1926,    0, 1926, 1926, 1926, 1926, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-
-     1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
-     1912, 1912, 1912, 1912, 1912, 1912, 1912
+       10,    8,   21,   33,  161,   21,   21,    8,   11,   11,
+       11,   11,   11,   11, 1926,   20,   29,   20,   20,   11,
+
+       20,   29,   24,   21,   75,   20,   24,   75,   11,   12,
+       12,   12,   12,   12,   12,   83,   22,   22,   26,   26,
+       12,   25,   25,   28,   22,  132,   24,   26,  132,   12,
+       19,   22,   19,   19,   30,   19,   25,   83,   28,   27,
+       19,   19,   23,   27,   61,   61,   27,   23,   35,   30,
+      103,   23,   67,   27,   23,   27,   23,   23,   31,   31,
+       32,   32,   35,  103,   37,   32,   67,   31,   70,   37,
+       36,   36,   70,   31,   76,   36,   77,   31,   76,   37,
+       39,   32,   34,   37,   37,   36,   78,   34,   36,   78,
+       84,   34,   38,   38,   39,   38,   77,   34,  707,   39,
+
+       34,   92,   78,   40,   40,   79,   92,   34,   40,   84,
+       38,   56,   40,   56,   56,   64,   56,   64,   64,   66,
+       64,   66,   66,   79,   66,   69,   64,   69,   69,   80,
+       69,   82,   87,   88,  138,   69,   72,   86,   72,   72,
+       85,   72,   81,   80,   88,   85,   72,   72,   81,   82,
+       82,   86,   87,   89,   81,   90,   91,   96,   85,   94,
+       91,   93,   94,   95,   97,   94,   99,   98,   95,   97,
+       98,   89,  100,   90,   98,   93,   96,  101,   94,   94,
+      102,  101,  105,  106,  104,  111,  100,  102,  107,   97,
+       99,  104,  108,  109,  113,  105,  108,  112,  112,  110,
+
+      114,  115,  116,  106,  110,  111,  107,  117,  110,  121,
+      118,  109,  119,  114,  113,  118,  115,  120,  120,  122,
+      123,  116,  127,  164,  119,  117,  124,  121,  124,  125,
+      126,  128,  130,  130,  125,  122,  128,  164,  120,  136,
+      127,  123,  126,  134,  142,  134,  134,  142,  134,  124,
+      137,  137,  139,  149,  139,  139,  140,  139,  140,  140,
+      143,  140,  145,  144,  146,  143,  147,  140,  144,  148,
+      150,  152,  146,  149,  135,  151,  152,  145,  158,  150,
+      151,  151,  153,  153,  148,  147,  154,  155,  167,  155,
+      159,  154,  157,  157,  160,  159,  162,  158,  163,  160,
+
+      162,  165,  168,  163,  183,  166,  167,  168,  169,  155,
+      156,  183,  171,  169,  156,  559,  165,  166,  172,  156,
+      166,  170,  170,  173,  156,  174,  174,  170,  173,  178,
+      156,  156,  171,  175,  172,  176,  177,  179,  175,  559,
+      176,  170,  179,  180,  175,  177,  181,  182,  180,  184,
+      178,  181,  182,  185,  186,  187,  188,  189,  190,  185,
+      192,  187,  184,  191,  193,  189,  195,  194,  191,  198,
+      133,  190,  194,  196,  186,  192,  197,  199,  188,  199,
+      200,  197,  202,  203,  193,  201,  208,  200,  195,  198,
+      201,  196,  196,  204,  204,  203,  209,  205,  206,  210,
+
+      219,  202,  205,  206,  207,  211,  207,  212,  209,  208,
+      213,  214,  212,  211,  215,  213,  214,  216,  210,  217,
+      205,  220,  218,  207,  220,  219,  221,  226,  221,  215,
+      218,  222,  222,  217,  223,  216,  227,  223,  224,  224,
+      225,  225,  228,  226,  229,  228,  230,  231,  229,  232,
+      237,  227,  231,  233,  235,  230,  234,  234,  233,  235,
+      236,  238,  239,  232,  240,  236,  241,  241,  242,  243,
+      237,  242,  244,  245,  246,  248,  244,  240,  247,  238,
+      248,  249,  250,  239,  249,  251,  252,  243,  253,  255,
+      247,  245,  246,  254,  250,  252,  256,  258,  256,  256,
+
+      258,  255,  251,  257,  257,  251,  254,  259,  260,  253,
+      261,  262,  263,  263,  265,  265,  264,  266,  269,  261,
+      262,  264,  268,  260,  259,  267,  270,  259,  271,  274,
+      267,  270,  266,  275,  268,  272,  273,  276,  269,  273,
+      272,  273,  277,  274,  279,  278,  276,  277,  271,  275,
+      278,  280,  275,  281,  275,  282,  283,  279,  284,  283,
+      289,  287,  286,  290,  294,  279,  292,  323,  281,  282,
+      287,  280,  284,  323,  291,  283,  285,  286,  285,  285,
+      288,  289,  290,  295,  288,  288,  292,  294,  285,  291,
+      285,  285,  285,  293,  296,  285,  297,  298,  293,  299,
+
+      300,  297,  301,  295,  299,  302,  303,  304,  305,  296,
+      307,  303,  298,  305,  301,  306,  306,  308,  306,  302,
+      300,  309,  310,  304,  311,  312,  311,  313,  314,  312,
+      307,  313,  316,  308,  315,  317,  310,  309,  318,  322,
+      131,  316,  320,  318,  317,  319,  314,  321,  315,  319,
+      325,  320,  321,  324,  316,  325,  327,  324,  326,  326,
+      322,  327,  328,  329,  329,  330,  331,  332,  333,  334,
+      330,  335,  335,  334,  336,  328,  332,  337,  341,  336,
+      333,  338,  338,  340,  340,  342,  343,  331,  344,  345,
+      348,  347,  349,  342,  351,  343,  353,  350,  337,  341,
+
+      352,  345,  350,  351,  353,  352,  349,  354,  344,  347,
+      348,  347,  354,  355,  357,  356,  358,  359,  355,  360,
+      358,  362,  361,  364,  360,  365,  378,  368,  369,  366,
+      368,  378,  359,  370,  370,  357,  355,  356,  361,  371,
+      362,  363,  363,  364,  365,  366,  367,  363,  369,  363,
+      373,  367,  372,  372,  374,  375,  367,  363,  376,  377,
+      379,  380,  382,  381,  371,  373,  374,  363,  382,  379,
+      375,  384,  386,  387,  385,  384,  388,  376,  381,  385,
+      380,  377,  389,  391,  386,  390,  390,  392,  393,  388,
+      389,  387,  392,  394,  395,  391,  394,  396,  397,  398,
+
+      393,  397,  396,  399,  400,  401,  401,  399,  399,  395,
+      402,  402,  404,  404,  403,  398,  407,  400,  398,  403,
+      405,  405,  406,  408,  409,  410,  411,  406,  408,  410,
+      412,  411,  414,  413,  412,  415,  416,  407,  413,  417,
+      415,  416,  418,  409,  419,  418,  420,  420,  421,  423,
+      418,  422,  414,  417,  418,  424,  422,  429,  425,  431,
+      424,  426,  419,  423,  426,  427,  421,  425,  428,  427,
+      429,  430,  432,  428,  433,  431,  430,  434,  435,  433,
+      438,  435,  436,  434,  432,  436,  439,  437,  440,  441,
+      442,  427,  437,  440,  441,  442,  443,  444,  438,  443,
+
+      439,  445,  444,  446,  447,  445,  445,  448,  450,  449,
+      451,  450,  448,  454,  458,  451,  446,  447,  449,  452,
+      453,  456,  453,  452,  452,  455,  450,  455,  457,  459,
+      460,  461,  454,  458,  460,  462,  463,  464,  465,  456,
+      461,  466,  467,  465,  468,  468,  457,  469,  470,  459,
+      462,  469,  464,  471,  463,  472,  473,  474,  471,  470,
+      466,  467,  475,  476,  480,  477,  483,  129,  476,  475,
+      474,  472,  477,  478,  479,  473,  481,  482,  478,  479,
+      483,  484,  480,  481,  485,  486,  482,  487,  486,  485,
+      484,  487,  488,  489,  489,  490,  492,  493,  495,  494,
+
+      496,  492,  489,  494,  490,  499,  497,  498,  500,  503,
+      495,  497,  506,  488,  510,  498,  509,  493,  496,  516,
+      510,   68,  511,  499,  503,  509,  511,  512,  512,  506,
+      513,  515,  589,  500,  501,  513,  515,  516,  517,  501,
+      522,  518,  520,  501,  518,  589,  501,  519,  519,  520,
+      521,  521,  527,  501,  527,  522,  501,  514,  514,  514,
+      528,  514,  524,  517,  514,  523,  523,  524,  525,  514,
+      529,  525,  526,  530,  531,  514,  514,  526,  533,  528,
+      532,  532,  531,  534,  535,  536,  536,  543,  546,  535,
+      529,  537,  530,  533,  538,  539,  537,  540,  539,  538,
+
+      541,  534,  542,  540,  544,  543,  545,  546,  541,  544,
+      542,  547,  547,  545,  548,  550,  549,  551,  553,  554,
+      550,  556,  555,  548,  549,  555,  558,  553,  554,  557,
+      557,  560,  562,  563,  560,  556,  551,  564,  563,  565,
+      566,  558,  560,  567,  569,  568,  570,  571,  569,   62,
+      574,  572,  576,  562,  568,  573,  574,  577,  564,  565,
+      572,  581,  566,  567,  570,  578,  571,  575,  575,  573,
+      578,  577,  576,  579,  582,  580,  583,  584,  579,  580,
+      581,  583,  585,  585,  586,  587,  582,  588,  587,  586,
+      590,  591,  592,  592,  593,  590,  594,  594,  584,  595,
+
+      596,  597,  598,  599,  596,  588,  603,  600,  602,  602,
+      603,  591,  593,  605,  595,  604,  608,  599,  606,  607,
+      597,  608,  606,  781,  616,  781,  598,  600,  601,  609,
+      604,  601,  610,  601,  607,  612,  611,  601,  605,  601,
+      611,  615,  613,  609,  601,  616,  610,  613,  614,  601,
+      612,  617,  618,  614,  619,  615,   57,  613,  618,  619,
+      620,  620,  621,  621,  622,  617,  623,  624,  621,  628,
+      621,  623,  625,  626,  626,  627,  622,  628,  629,  630,
+      627,  624,  631,  631,  625,  632,  634,  635,  621,  632,
+      635,  634,  629,  636,  637,  638,  639,  640,  630,  641,
+
+      638,  639,  642,  644,  643,  645,  646,  637,  641,  647,
+      645,  648,  636,  643,  649,  651,  640,  652,  642,  649,
+      648,  653,  644,  647,  654,  655,  646,  656,  657,  654,
+      655,  660,  656,  662,  651,  652,  653,  657,  658,  658,
+      659,  667,  663,  666,  660,  659,  663,  663,  668,  662,
+      664,  664,  665,  669,  664,  665,  670,  666,  671,  670,
+      672,  667,  673,  668,  674,  675,  676,  673,  677,  674,
+      680,  675,  679,  669,  677,  682,  672,  678,  678,  671,
+      681,  679,  676,  681,  683,  684,  685,  686,  680,  687,
+      689,  691,  686,  682,  687,  690,  693,  692,  690,  685,
+
+      695,  693,  691,  683,  697,  684,  694,  698,  689,  692,
+      699,  694,  696,  696,  700,  695,  701,  702,  700,  703,
+      704,  698,  699,  697,  706,  708,  702,  709,  710,   52,
+      711,  712,  713,  715,  701,  711,  712,  713,  703,  708,
+      716,  714,  709,  706,  717,  704,  714,  715,  710,  717,
+      718,  719,  720,  721,  716,  722,  723,  723,  724,  720,
+      725,  726,  727,  728,  728,  718,  729,  726,  721,  730,
+      719,  729,  724,  731,  722,  733,  730,  732,  725,  734,
+      732,  735,  727,  736,  737,  738,  735,  731,  734,  737,
+      740,  741,  742,  733,  740,  743,  744,  745,  746,  747,
+
+      741,  748,  736,  744,  738,  749,  750,  742,  751,  745,
+      743,  749,  755,  752,  757,  759,  756,  746,  754,  748,
+      747,  750,  752,  754,  756,  758,  755,  759,  751,  761,
+      758,  760,  762,  765,  757,  760,  760,  763,  763,  764,
+      766,  774,  765,  767,  767,  766,  762,  773,  761,  768,
+      769,  771,  764,  772,  768,  769,  770,  770,  772,  774,
+      771,  773,  775,  776,  777,  782,  778,  775,  776,  777,
+      778,  779,  780,  780,  784,  785,  782,  786,  784,  787,
+      779,  790,   51,  794,  789,  779,  791,  779,  787,  779,
+      785,  779,  788,  792,  791,  786,  788,  788,  789,  793,
+
+      790,  794,  795,  796,  796,  797,  802,  792,  793,  798,
+      798,  800,  801,  804,  800,  803,  803,  801,  805,  805,
+      797,  806,  807,  807,  808,  802,  806,  795,  810,  809,
+      811,  812,  812,  804,  809,  811,  810,  813,  817,  814,
+      815,  818,  821,  817,  808,  814,  818,  815,  819,  820,
+      822,  821,  823,  819,  820,  813,  824,  824,  825,  826,
+      827,  828,  829,  823,  830,  831,  828,  832,  834,  822,
+      833,  833,  835,  836,  842,  837,  829,  831,  825,  826,
+      837,  839,  829,  827,  830,  832,  838,  838,  834,  840,
+      845,  836,  844,  842,  840,  843,  847,  835,  845,  843,
+
+      843,  844,  848,  846,  839,  846,  850,  848,  849,  851,
+      847,  852,  849,  853,  854,  855,  856,  850,  857,  854,
+      858,  859,  857,  865,  863,  860,  861,  862,  851,  864,
+      865,  853,  867,  855,  864,  871,  856,  852,  858,  860,
+      859,  861,  862,  863,  866,  868,  869,  870,  882,  866,
+      867,   46,  872,  870,  868,  873,  871,  872,  874,  880,
+      873,  869,  882,  874,  875,  875,  876,  876,  878,  878,
+      879,  881,  883,  886,  879,  884,  881,  880,  885,  884,
+      884,  887,  885,  885,  888,  889,  892,  890,  893,  891,
+      894,  883,  886,  890,  891,  895,  897,  896,  898,  905,
+
+      887,  899,  899,  900,  889,  892,  900,  893,  901,  894,
+      888,  896,  905,  898,  895,  902,  902,  897,  903,  906,
+      901,  904,  907,  903,  908,  904,  908,  910,  906,  912,
+      908,  911,  911,  913,  912,  907,  914,  913,  915,  916,
+      920,  918,  931,  908,  916,  920,  922,  910,  921,  921,
+      930,  922,  924,  924,  914,  926,  926,  928,  915,  918,
+      928,  929,  929,  932,  933,  930,  934,  931,  936,  933,
+      935,  935,  937,  937,  938,  939,  940,  932,  941,  942,
+      940,  934,  944,  944,  942,  945,  939,  946,  936,  947,
+      947,  949,  950,  948,  952,  951,  938,  941,  948,  956,
+
+      953,  946,  953,  945,  951,  954,  961,  959,  955,  964,
+      954,  949,  950,  955,  952,  957,  960,  960,  962,  956,
+      957,  959,  965,  965,  962,  961,  966,  967,  968,  973,
+      969,  968,  970,  964,  968,  969,  971,  970,  966,  972,
+      974,  976,  976,  974,  972,  971,  968,  967,  975,  977,
+      978,  979,  980,  975,  973,  981,  982,  980,  983,  985,
+      981,  984,  984,  983,  985,  986,  987,  977,  988,  978,
+      989,  979,  992,  990,  991,  993,  994,  992,  995,  982,
+      996,  998,  998,  986,  989,  990,  987,  991,  988,  999,
+     1000, 1001,  995, 1005,  999,  993,  994, 1002, 1001, 1003,
+
+     1012,  996, 1007, 1007, 1008, 1000, 1002, 1008, 1005, 1002,
+     1010, 1009, 1011, 1005, 1014, 1003, 1009, 1015, 1013, 1012,
+     1017, 1011, 1015, 1014, 1016, 1016, 1010, 1013, 1018, 1019,
+     1013, 1020, 1021, 1024, 1022, 1025, 1026, 1026, 1027, 1029,
+     1017, 1018, 1028, 1031, 1029, 1020, 1022, 1019, 1021, 1030,
+     1030, 1028, 1031, 1025, 1027, 1031, 1032, 1034, 1024, 1035,
+     1036, 1037, 1034, 1038, 1030, 1036, 1037, 1039, 1040, 1038,
+     1041, 1045, 1042, 1040, 1032, 1042, 1046, 1035, 1047, 1045,
+     1048, 1042, 1050, 1041, 1051, 1049, 1053, 1039, 1054, 1046,
+     1049, 1059, 1054, 1062, 1062, 1055, 1047, 1061, 1050, 1048,
+
+     1055, 1058, 1051, 1056, 1057, 1063, 1053, 1067, 1056, 1057,
+     1058, 1064, 1061, 1065, 1059, 1066, 1068, 1069, 1064, 1063,
+     1070, 1068, 1071, 1072, 1072, 1065, 1067, 1066, 1071, 1069,
+     1073, 1074, 1074, 1073, 1076, 1077, 1078, 1078, 1070, 1076,
+     1079, 1080, 1081, 1082, 1077, 1083, 1080, 1085, 1084, 1087,
+     1086, 1081, 1079, 1084, 1089, 1082, 1085, 1088, 1088, 1089,
+     1083, 1090, 1091, 1092, 1087, 1093, 1093, 1094,   41, 1085,
+     1086, 1095, 1095, 1096, 1096, 1097, 1102, 1104,   14, 1097,
+     1098, 1091, 1090, 1092, 1109, 1098, 1099, 1094, 1101, 1099,
+     1103, 1105, 1105, 1101, 1102, 1103, 1106, 1106, 1107, 1108,
+
+     1110, 1111, 1104, 1107, 1109, 1112, 1111, 1114, 1115, 1116,
+     1116, 1108, 1108, 1108, 1117, 1118, 1118, 1119, 1108, 1120,
+     1110, 1114, 1121, 1121, 1123, 1112, 1124, 1124, 1125, 1115,
+     1127, 1126, 1128, 1123, 1129, 1129, 1130, 1119, 1126, 1127,
+     1117, 1120, 1133, 1125, 1131, 1134, 1135, 1133, 1136, 1137,
+     1134, 1138, 1139, 1139, 1137, 1136, 1138, 1142, 1128, 1140,
+     1131, 1141, 1130, 1143, 1140, 1145, 1135, 1144, 1145, 1146,
+     1141, 1147, 1148, 1148, 1149, 1150, 1151, 1142, 1160, 1144,
+     1152, 1154, 1143, 1160, 1152, 1158, 1153, 1146, 1156, 1149,
+     1154, 1151, 1153, 1159, 1150, 1155, 1155, 1147, 1164, 1156,
+
+     1157, 1157, 1161, 1161, 1156, 1162, 1158, 1159, 1163, 1162,
+     1162, 1165, 1166, 1163, 1167, 1168, 1169, 1166, 1170, 1168,
+     1171, 1174, 1172, 1165, 1164, 1171, 1167, 1173, 1169, 1177,
+     1177, 1176, 1173, 1174, 1176, 1178, 1178, 1179, 1179, 1180,
+     1181, 1184, 1182, 1170, 1172, 1183, 1181, 1182, 1186, 1188,
+     1184, 1183, 1188, 1186, 1189, 1191, 1192, 1192, 1193, 1180,
+     1194, 1195, 1196, 1200, 1197, 1198, 1189, 1191, 1197, 1194,
+     1198, 1199, 1202, 1202, 1203, 1210, 1199, 1200, 1193, 1195,
+     1204, 1196, 1205, 1211, 1202, 1207, 1207, 1213, 1212, 1204,
+     1210, 1205, 1203, 1212, 1214, 1214, 1215, 1211, 1215, 1216,
+
+     1216, 1218, 1219, 1221, 1213, 1220, 1220, 1222, 1218, 1223,
+     1226, 1224, 1221, 1225, 1227, 1228, 1232, 1229, 1232, 1231,
+     1233, 1223, 1219, 1224, 1231, 1225, 1234, 1235, 1222, 1227,
+     1236, 1234, 1238, 1240, 1235, 1228, 1226, 1229, 1233, 1236,
+     1239, 1239, 1241, 1242, 1243, 1242, 1238, 1241, 1244, 1243,
+     1245, 1246, 1247, 1244, 1249, 1248, 1250, 1247, 1252, 1240,
+     1248, 1253, 1254, 1254, 1250, 1255, 1255, 1249, 1245, 1256,
+     1257, 1246, 1265, 1258, 1259, 1253, 1261, 1252, 1258, 1259,
+     1260, 1265, 1260, 1262, 1256, 1263, 1266, 1263, 1261, 1272,
+     1257, 1268, 1262, 1264, 1264, 1262, 1268, 1269, 1266, 1271,
+
+     1273, 1275, 1269, 1278, 1277, 1279, 1280, 1275, 1282, 1272,
+     1277, 1287, 1271, 1281, 1281, 1280, 1273, 1282, 1278, 1283,
+     1283, 1284, 1285, 1286, 1287, 1289, 1285, 1288, 1286, 1290,
+     1279, 1288, 1288, 1289, 1293, 1293, 1294, 1295, 1295, 1297,
+     1284, 1296, 1296, 1298, 1303, 1294, 1308, 1299, 1300, 1290,
+     1305, 1297, 1299, 1300, 1301, 1301, 1306, 1304, 1307, 1309,
+     1314, 1298, 1304, 1307, 1308, 1310, 1310, 1312, 1311, 1303,
+     1315, 1306, 1311, 1305, 1313, 1309, 1317, 1318, 1319, 1313,
+     1321, 1320, 1312, 1322, 1324, 1324, 1314, 1325, 1332, 1315,
+     1325, 1327, 1321, 1326, 1328, 1329, 1329, 1319,   13, 1317,
+
+     1333, 1318, 1320, 1332, 1322, 1327, 1326, 1328, 1330, 1330,
+     1331, 1331, 1337, 1333, 1334, 1334, 1335, 1335, 1336, 1336,
+     1338, 1338, 1339, 1340, 1340, 1341, 1341, 1342, 1344, 1345,
+     1345, 1337, 1346, 1344, 1347, 1347, 1348, 1349, 1350, 1353,
+     1339, 1350, 1354, 1349, 1351, 1351, 1342, 1352, 1352, 1355,
+     1358, 1346, 1356, 1356, 1348, 1359, 1360, 1354, 1353, 1361,
+     1351, 1362, 1362, 1361, 1363, 1364, 1364, 1365, 1355, 1369,
+     1358, 1360, 1366, 1366, 1370, 1367, 1371, 1372, 1359, 1370,
+     1374, 1369, 1373, 1363, 1367, 1374, 1376, 1375, 1377, 1379,
+     1372, 1378, 1380, 1365, 1379, 1376, 1380, 1377, 1382, 1384,
+
+     1388, 1371, 1375, 1373, 1386, 1378, 1385, 1385, 1384, 1386,
+     1387, 1387, 1390, 1393, 1391, 1397, 1398,    0, 1382, 1387,
+     1388, 1395, 1388, 1391, 1395, 1393, 1396, 1390, 1398, 1399,
+     1399, 1396, 1401, 1401, 1402, 1397, 1403, 1403, 1404, 1405,
+     1406, 1407, 1407, 1409, 1411, 1411, 1410, 1409, 1402, 1410,
+     1404, 1412, 1413, 1405, 1414, 1416, 1412, 1415, 1417, 1406,
+     1418, 1415, 1421, 1417, 1419, 1418, 1422,    0, 1414, 1423,
+     1419, 1422, 1413, 1424, 1423, 1416, 1428, 1425, 1421, 1425,
+     1435, 1424, 1429, 1429, 1433, 1433, 1438, 1439, 1439, 1443,
+     1428, 1438, 1441, 1441, 1443, 1444, 1444, 1445, 1435, 1446,
+
+     1447, 1449, 1450, 1451, 1451, 1447, 1453, 1454, 1455, 1456,
+     1458, 1458, 1454, 1445, 1450, 1453, 1461, 1460, 1461, 1462,
+     1449, 1446, 1460, 1463, 1456, 1467, 1455, 1468, 1463, 1464,
+     1464, 1465, 1465, 1462, 1466, 1466, 1469, 1467, 1470, 1471,
+     1473, 1472, 1474, 1474, 1475, 1468, 1472, 1476, 1469, 1477,
+     1470, 1471, 1478, 1475, 1479, 1482, 1480, 1481, 1481, 1483,
+     1473, 1484, 1485, 1486, 1482, 1478, 1492, 1485, 1486, 1477,
+     1480, 1487, 1487, 1476, 1488, 1488, 1493, 1483, 1479, 1489,
+     1489, 1494, 1495, 1484, 1496, 1497, 1492, 1502, 1498, 1499,
+     1499, 1501, 1501, 1496, 1493, 1504, 1502, 1503, 1505, 1506,
+
+     1508, 1513, 1495, 1494, 1503, 1497, 1498, 1507, 1509, 1509,
+     1504, 1511, 1512, 1510, 1515, 1517, 1505, 1506, 1510, 1508,
+     1513, 1514, 1518, 1507, 1517, 1521, 1514, 1512, 1522, 1511,
+     1525, 1522, 1523, 1523, 1515, 1524, 1526, 1526, 1527, 1529,
+     1530, 1518, 1527, 1532, 1530, 1521, 1531, 1531, 1525, 1535,
+     1524, 1534, 1534, 1542, 1529, 1543, 1532, 1536, 1536, 1537,
+     1537, 1541, 1541, 1546, 1543, 1544, 1545, 1581, 1535, 1547,
+     1544, 1545, 1549, 1550, 1551, 1542, 1552, 1547, 1550, 1551,
+     1553, 1553, 1546, 1554, 1554, 1555, 1581, 1549, 1556, 1557,
+     1558, 1552, 1555, 1556, 1557, 1558, 1559, 1559, 1560, 1560,
+
+     1563, 1564, 1567, 1565, 1566, 1568, 1564, 1565, 1569, 1566,
+     1570, 1567, 1571, 1563, 1573, 1570, 1569, 1573, 1574, 1575,
+     1568, 1576, 1577, 1582, 1571, 1578, 1578, 1583, 1579, 1585,
+     1576, 1577, 1575, 1584, 1584, 1586, 1574, 1579, 1587, 1588,
+     1588, 1589, 1587, 1582, 1586, 1590, 1583, 1592, 1585, 1589,
+     1590, 1593, 1596, 1595, 1597, 1604, 1592, 1595, 1599, 1599,
+     1601, 1601, 1605, 1605, 1593, 1606, 1596, 1610, 1606, 1597,
+     1607, 1607, 1608, 1608, 1611, 1604, 1609, 1609, 1612, 1613,
+     1613, 1618, 1614, 1612, 1619, 1610, 1614, 1617, 1611, 1620,
+     1619, 1617, 1617, 1623, 1620, 1624, 1625, 1626, 1623, 1627,
+
+     1628, 1625, 1629, 1629, 1618, 1630, 1632, 1635, 1631, 1633,
+     1633, 1637, 1624, 1624, 1628, 1626, 1631, 1634, 1634, 1627,
+     1638, 1636, 1640, 1635, 1630, 1632, 1636, 1639, 1641, 1643,
+     1643, 1637, 1644, 1645, 1647, 1644, 1639, 1649, 1645, 1648,
+     1648, 1649, 1640, 1651, 1650, 1652, 1638, 1653, 1641, 1652,
+     1652, 1658, 1647, 1650, 1654, 1656, 1657, 1662, 1651, 1677,
+     1653, 1664, 1662, 1654, 1656, 1663, 1663, 1666, 1657, 1671,
+     1664, 1670, 1666, 1667, 1667, 1673, 1658, 1667, 1669, 1669,
+     1670, 1672, 1674, 1675, 1677, 1676, 1672, 1674, 1680, 1671,
+     1676, 1678, 1678, 1681, 1682, 1682, 1673, 1684, 1683, 1685,
+
+     1686, 1675, 1683, 1687, 1688, 1689, 1684, 1680, 1681, 1688,
+     1691, 1687, 1690, 1690, 1698, 1685, 1693, 1693, 1695, 1686,
+     1694, 1694, 1699, 1695, 1697, 1697, 1703, 1700, 1704, 1691,
+     1707, 1689, 1702, 1702, 1698, 1705, 1705, 1706, 1706, 1708,
+     1703, 1709, 1710, 1710, 1711, 1699, 1700, 1711, 1714, 1707,
+     1704, 1708, 1712, 1712, 1715, 1716, 1718, 1717, 1716, 1719,
+     1714, 1709, 1717, 1720, 1719, 1721, 1721, 1723, 1723, 1724,
+     1727, 1726, 1728,    0, 1715, 1718, 1726, 1728, 1729, 1729,
+     1720, 1720, 1730, 1730, 1727, 1731, 1731, 1732, 1724, 1734,
+     1734, 1740, 1732, 1737, 1737, 1739, 1739, 1741, 1742, 1743,
+
+     1743, 1744, 1747, 1748, 1748, 1740, 1744, 1742, 1749, 1751,
+     1747, 1752, 1754, 1749, 1753, 1755, 1756, 1741,    0, 1753,
+     1757, 1758, 1759, 1755, 1754, 1760, 1763, 1764, 1764, 1751,
+     1760, 1752, 1765, 1765, 1756, 1775, 1757, 1766, 1758, 1758,
+     1776, 1766, 1779, 1759, 1770, 1770, 1763, 1772, 1774, 1774,
+     1781, 1772, 1782, 1775, 1776, 1778, 1778, 1779, 1783, 1783,
+     1787, 1782, 1784, 1784, 1785, 1785, 1786, 1788, 1781, 1789,
+     1790, 1786, 1791, 1792,    0, 1790, 1805, 1791, 1793, 1793,
+     1796, 1796, 1788, 1798, 1798, 1787, 1800, 1801, 1801, 1803,
+     1789, 1805, 1792, 1804, 1804, 1800, 1806, 1806, 1810, 1809,
+
+     1811, 1803, 1809, 1810, 1812, 1813, 1815, 1814, 1819, 1812,
+     1822, 1819, 1821, 1823, 1811, 1825, 1821, 1827, 1826, 1828,
+     1830, 1832, 1815, 1829, 1813, 1814, 1825, 1823, 1831, 1834,
+     1822, 1826, 1833, 1833, 1835, 1835, 1827, 1828, 1834, 1829,
+     1839, 1832, 1840, 1831, 1837, 1830, 1836, 1836, 1838, 1837,
+     1841, 1848, 1842, 1838, 1845, 1841, 1849, 1840, 1843, 1843,
+     1851, 1849, 1850, 1852, 1853, 1839, 1842, 1850, 1855, 1845,
+     1848, 1856, 1857, 1858, 1851, 1859, 1852, 1862,    0, 1860,
+     1863, 1863, 1855, 1853, 1860, 1857, 1858, 1861, 1864, 1867,
+     1856, 1871, 1861, 1864, 1859, 1865, 1862, 1866, 1868, 1870,
+
+     1865, 1872, 1866, 1868, 1869, 1869, 1870, 1873, 1867, 1874,
+     1871, 1875, 1873, 1877, 1878, 1879, 1880, 1883, 1877, 1888,
+     1872, 1881, 1881,    0, 1875, 1882, 1884, 1884, 1874, 1880,
+     1882, 1885, 1885, 1878, 1879, 1886, 1883, 1887, 1888, 1890,
+     1886, 1889, 1889, 1891, 1887, 1892, 1890, 1893, 1894, 1896,
+     1891, 1897, 1893, 1898, 1896, 1899, 1897, 1900, 1900, 1901,
+     1902, 1903, 1903, 1905, 1892, 1904, 1904, 1894, 1906, 1906,
+     1905, 1914, 1898, 1908, 1899, 1907, 1907, 1910, 1901, 1902,
+     1908, 1913, 1910, 1915, 1916, 1916, 1913, 1917, 1917,    0,
+     1914,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0, 1915, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+     1922, 1922, 1922, 1922, 1922, 1922, 1922, 1923, 1923, 1923,
+     1923, 1923, 1923, 1923, 1924, 1924, 1924, 1924, 1924, 1924,
+     1924, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1927, 1927,
+        0, 1927, 1927, 1927, 1927, 1928, 1928,    0,    0,    0,
+     1928, 1928, 1929, 1929,    0,    0, 1929,    0, 1929, 1930,
+        0,    0,    0,    0,    0, 1930, 1931, 1931,    0,    0,
+        0, 1931, 1931, 1932,    0,    0,    0,    0,    0, 1932,
+     1933, 1933,    0, 1933, 1933, 1933, 1933, 1934, 1934,    0,
+     1934, 1934, 1934, 1934, 1920, 1920, 1920, 1920, 1920, 1920,
+
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
+     1920, 1920, 1920, 1920
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2130,7 +2136,7 @@ static void config_end_include(void)
 #define YY_NO_INPUT 1
 #endif
 
-#line 2132 "<stdout>"
+#line 2138 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -2353,7 +2359,7 @@ YY_DECL
        {
 #line 207 "./util/configlexer.lex"
 
-#line 2355 "<stdout>"
+#line 2361 "<stdout>"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2386,13 +2392,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 1913 )
+                               if ( yy_current_state >= 1921 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 3778 );
+               while ( yy_base[yy_current_state] != 3795 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -2962,365 +2968,370 @@ YY_RULE_SETUP
 case 109:
 YY_RULE_SETUP
 #line 319 "./util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
+{ YDVAR(1, VAR_FAKE_DSA) }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
 #line 320 "./util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
+{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
 #line 321 "./util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
+{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
 #line 322 "./util/configlexer.lex"
-{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
+{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
 #line 323 "./util/configlexer.lex"
-{ 
-                                 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
+{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 325 "./util/configlexer.lex"
-{ YDVAR(1, VAR_ADD_HOLDDOWN) }
+#line 324 "./util/configlexer.lex"
+{ 
+                                 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
 #line 326 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DEL_HOLDDOWN) }
+{ YDVAR(1, VAR_ADD_HOLDDOWN) }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
 #line 327 "./util/configlexer.lex"
-{ YDVAR(1, VAR_KEEP_MISSING) }
+{ YDVAR(1, VAR_DEL_HOLDDOWN) }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
 #line 328 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
+{ YDVAR(1, VAR_KEEP_MISSING) }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
 #line 329 "./util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSLOG) }
+{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
 #line 330 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_USE_SYSLOG) }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
 #line 331 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
 #line 332 "./util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 333 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
 #line 334 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
 #line 335 "./util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
 #line 336 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
 #line 337 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
 #line 338 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
 #line 339 "./util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
 #line 340 "./util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
 #line 341 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
        YY_BREAK
 case 131:
 YY_RULE_SETUP
 #line 342 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
 #line 343 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
 #line 344 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
 #line 345 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 346 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
 #line 347 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
        YY_BREAK
 case 137:
 YY_RULE_SETUP
 #line 348 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
 #line 349 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
        YY_BREAK
 case 139:
 YY_RULE_SETUP
 #line 350 "./util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
 #line 351 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(0, VAR_PYTHON) }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
 #line 352 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
        YY_BREAK
 case 142:
 YY_RULE_SETUP
 #line 353 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 354 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 355 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
 #line 356 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
 #line 357 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
 #line 358 "./util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
 #line 359 "./util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
 #line 360 "./util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
 #line 361 "./util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
 #line 362 "./util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
 #line 363 "./util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
 #line 364 "./util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
 #line 365 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(0, VAR_DNSTAP) }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
 #line 366 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
        YY_BREAK
 case 156:
 YY_RULE_SETUP
 #line 367 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 368 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 369 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
 #line 370 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
 #line 371 "./util/configlexer.lex"
-{
-               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 373 "./util/configlexer.lex"
+#line 372 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 375 "./util/configlexer.lex"
+#line 374 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 377 "./util/configlexer.lex"
+#line 376 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 379 "./util/configlexer.lex"
+#line 378 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 381 "./util/configlexer.lex"
+#line 380 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 383 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+#line 382 "./util/configlexer.lex"
+{
+               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
        YY_BREAK
 case 167:
 YY_RULE_SETUP
 #line 384 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
        YY_BREAK
 case 168:
 YY_RULE_SETUP
 #line 385 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
        YY_BREAK
 case 169:
 YY_RULE_SETUP
 #line 386 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
        YY_BREAK
 case 170:
 YY_RULE_SETUP
 #line 387 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
        YY_BREAK
 case 171:
 YY_RULE_SETUP
 #line 388 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
        YY_BREAK
 case 172:
 YY_RULE_SETUP
 #line 389 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
        YY_BREAK
 case 173:
-/* rule 173 can match eol */
 YY_RULE_SETUP
 #line 390 "./util/configlexer.lex"
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+       YY_BREAK
+case 174:
+/* rule 174 can match eol */
+YY_RULE_SETUP
+#line 391 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 393 "./util/configlexer.lex"
+#line 394 "./util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 394 "./util/configlexer.lex"
+#line 395 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 399 "./util/configlexer.lex"
+#line 400 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 176:
-/* rule 176 can match eol */
+case 177:
+/* rule 177 can match eol */
 YY_RULE_SETUP
-#line 400 "./util/configlexer.lex"
+#line 401 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end \""); 
                          cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 402 "./util/configlexer.lex"
+#line 403 "./util/configlexer.lex"
 {
         LEXOUT(("QE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3333,34 +3344,34 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 414 "./util/configlexer.lex"
+#line 415 "./util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 415 "./util/configlexer.lex"
+#line 416 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 420 "./util/configlexer.lex"
+#line 421 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 180:
-/* rule 180 can match eol */
+case 181:
+/* rule 181 can match eol */
 YY_RULE_SETUP
-#line 421 "./util/configlexer.lex"
+#line 422 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end '"); 
                             cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 423 "./util/configlexer.lex"
+#line 424 "./util/configlexer.lex"
 {
         LEXOUT(("SQE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3373,38 +3384,38 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 435 "./util/configlexer.lex"
+#line 436 "./util/configlexer.lex"
 { 
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 437 "./util/configlexer.lex"
+#line 438 "./util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 183:
-YY_RULE_SETUP
-#line 441 "./util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
-       YY_BREAK
 case 184:
-/* rule 184 can match eol */
 YY_RULE_SETUP
 #line 442 "./util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
 case 185:
+/* rule 185 can match eol */
 YY_RULE_SETUP
 #line 443 "./util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 case 186:
 YY_RULE_SETUP
 #line 444 "./util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+       YY_BREAK
+case 187:
+YY_RULE_SETUP
+#line 445 "./util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext);
@@ -3412,27 +3423,27 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 449 "./util/configlexer.lex"
+#line 450 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 187:
+case 188:
 YY_RULE_SETUP
-#line 453 "./util/configlexer.lex"
+#line 454 "./util/configlexer.lex"
 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 188:
-/* rule 188 can match eol */
+case 189:
+/* rule 189 can match eol */
 YY_RULE_SETUP
-#line 454 "./util/configlexer.lex"
+#line 455 "./util/configlexer.lex"
 { yyerror("newline before \" in include name"); 
                                  cfg_parser->line++; BEGIN(inc_prev); }
        YY_BREAK
-case 189:
+case 190:
 YY_RULE_SETUP
-#line 456 "./util/configlexer.lex"
+#line 457 "./util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -3442,7 +3453,7 @@ YY_RULE_SETUP
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(val):
-#line 462 "./util/configlexer.lex"
+#line 463 "./util/configlexer.lex"
 {
        LEXOUT(("LEXEOF "));
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
@@ -3454,33 +3465,33 @@ case YY_STATE_EOF(val):
        }
 }
        YY_BREAK
-case 190:
+case 191:
 YY_RULE_SETUP
-#line 473 "./util/configlexer.lex"
+#line 474 "./util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        if(--num_args == 0) { BEGIN(INITIAL); }
                        yylval.str = strdup(yytext); return STRING_ARG; }
        YY_BREAK
-case 191:
+case 192:
 YY_RULE_SETUP
-#line 477 "./util/configlexer.lex"
+#line 478 "./util/configlexer.lex"
 {
        ub_c_error_msg("unknown keyword '%s'", yytext);
        }
        YY_BREAK
-case 192:
+case 193:
 YY_RULE_SETUP
-#line 481 "./util/configlexer.lex"
+#line 482 "./util/configlexer.lex"
 {
        ub_c_error_msg("stray '%s'", yytext);
        }
        YY_BREAK
-case 193:
+case 194:
 YY_RULE_SETUP
-#line 485 "./util/configlexer.lex"
+#line 486 "./util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 3482 "<stdout>"
+#line 3493 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -3771,7 +3782,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 1913 )
+                       if ( yy_current_state >= 1921 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3799,11 +3810,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 1913 )
+               if ( yy_current_state >= 1921 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 1912);
+       yy_is_jam = (yy_current_state == 1920);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4442,7 +4453,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 485 "./util/configlexer.lex"
+#line 486 "./util/configlexer.lex"
 
 
 
index a0637a9eec349e04bdd3a1d2303f145f4a4cd7d7..35b7ecb69ae5e83a7416cb0282f0c8de43a8594a 100644 (file)
@@ -316,6 +316,7 @@ val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
 val-permissive-mode{COLON}     { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
 ignore-cd-flag{COLON}          { YDVAR(1, VAR_IGNORE_CD_FLAG) }
 serve-expired{COLON}           { YDVAR(1, VAR_SERVE_EXPIRED) }
+fake-dsa{COLON}                        { YDVAR(1, VAR_FAKE_DSA) }
 val-log-level{COLON}           { YDVAR(1, VAR_VAL_LOG_LEVEL) }
 key-cache-size{COLON}          { YDVAR(1, VAR_KEY_CACHE_SIZE) }
 key-cache-slabs{COLON}         { YDVAR(1, VAR_KEY_CACHE_SLABS) }
index a1b0e0596196b7bf14852c97c6968f519372d0ee..ee7eba88e1df151afb6246b3d4a8516247498085 100644 (file)
@@ -300,7 +300,8 @@ extern int yydebug;
     VAR_VIEW = 431,
     VAR_ACCESS_CONTROL_VIEW = 432,
     VAR_VIEW_FIRST = 433,
-    VAR_SERVE_EXPIRED = 434
+    VAR_SERVE_EXPIRED = 434,
+    VAR_FAKE_DSA = 435
   };
 #endif
 /* Tokens.  */
@@ -481,6 +482,7 @@ extern int yydebug;
 #define VAR_ACCESS_CONTROL_VIEW 432
 #define VAR_VIEW_FIRST 433
 #define VAR_SERVE_EXPIRED 434
+#define VAR_FAKE_DSA 435
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -491,7 +493,7 @@ union YYSTYPE
 
        char*   str;
 
-#line 495 "util/configparser.c" /* yacc.c:355  */
+#line 497 "util/configparser.c" /* yacc.c:355  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -508,7 +510,7 @@ int yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 512 "util/configparser.c" /* yacc.c:358  */
+#line 514 "util/configparser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -750,21 +752,21 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   355
+#define YYLAST   357
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  180
+#define YYNTOKENS  181
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  190
+#define YYNNTS  191
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  363
+#define YYNRULES  365
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  544
+#define YYNSTATES  547
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   434
+#define YYMAXUTOK   435
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -816,7 +818,7 @@ static const yytype_uint8 yytranslate[] =
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179
+     175,   176,   177,   178,   179,   180
 };
 
 #if YYDEBUG
@@ -837,29 +839,29 @@ static const yytype_uint16 yyrline[] =
      191,   191,   191,   192,   192,   192,   193,   193,   194,   194,
      195,   195,   196,   196,   197,   197,   197,   198,   198,   199,
      199,   200,   200,   201,   201,   202,   202,   202,   203,   203,
-     204,   204,   205,   205,   206,   206,   208,   220,   221,   222,
-     222,   222,   222,   222,   224,   236,   237,   238,   238,   238,
-     238,   240,   254,   255,   256,   256,   256,   256,   258,   267,
-     276,   287,   296,   305,   314,   327,   342,   351,   360,   369,
-     378,   387,   396,   405,   414,   423,   432,   441,   450,   459,
-     468,   477,   484,   491,   500,   509,   523,   532,   541,   548,
-     555,   579,   587,   594,   601,   608,   615,   623,   631,   639,
-     646,   653,   662,   671,   678,   685,   693,   701,   711,   721,
-     731,   744,   755,   763,   776,   785,   794,   803,   813,   823,
-     831,   844,   853,   861,   870,   878,   891,   900,   907,   917,
-     927,   937,   947,   957,   967,   977,   987,   994,  1001,  1008,
-    1017,  1026,  1035,  1042,  1052,  1069,  1076,  1094,  1107,  1120,
-    1129,  1138,  1147,  1156,  1166,  1176,  1185,  1194,  1203,  1210,
-    1219,  1228,  1237,  1246,  1254,  1267,  1275,  1303,  1310,  1325,
-    1335,  1345,  1352,  1359,  1368,  1382,  1401,  1420,  1432,  1444,
-    1456,  1467,  1476,  1484,  1497,  1510,  1523,  1532,  1542,  1552,
-    1562,  1569,  1576,  1585,  1595,  1605,  1612,  1619,  1628,  1638,
-    1667,  1676,  1685,  1690,  1691,  1692,  1692,  1692,  1693,  1693,
-    1693,  1694,  1694,  1696,  1706,  1715,  1722,  1732,  1739,  1746,
-    1753,  1760,  1765,  1766,  1767,  1767,  1768,  1768,  1769,  1769,
-    1770,  1771,  1772,  1773,  1774,  1775,  1777,  1785,  1792,  1800,
-    1808,  1815,  1822,  1831,  1840,  1849,  1858,  1867,  1876,  1881,
-    1882,  1883,  1885,  1891
+     204,   204,   205,   205,   206,   206,   207,   209,   221,   222,
+     223,   223,   223,   223,   223,   225,   237,   238,   239,   239,
+     239,   239,   241,   255,   256,   257,   257,   257,   257,   259,
+     268,   277,   288,   297,   306,   315,   328,   343,   352,   361,
+     370,   379,   388,   397,   406,   415,   424,   433,   442,   451,
+     460,   469,   478,   485,   492,   501,   510,   524,   533,   542,
+     549,   556,   580,   588,   595,   602,   609,   616,   624,   632,
+     640,   647,   654,   663,   672,   679,   686,   694,   702,   712,
+     722,   732,   745,   756,   764,   777,   786,   795,   804,   814,
+     824,   832,   845,   854,   862,   871,   879,   892,   901,   908,
+     918,   928,   938,   948,   958,   968,   978,   988,   995,  1002,
+    1009,  1018,  1027,  1036,  1043,  1053,  1070,  1077,  1095,  1108,
+    1121,  1130,  1139,  1148,  1157,  1167,  1177,  1186,  1195,  1206,
+    1215,  1222,  1231,  1240,  1249,  1258,  1266,  1279,  1287,  1315,
+    1322,  1337,  1347,  1357,  1364,  1371,  1380,  1394,  1413,  1432,
+    1444,  1456,  1468,  1479,  1488,  1496,  1509,  1522,  1535,  1544,
+    1554,  1564,  1574,  1581,  1588,  1597,  1607,  1617,  1624,  1631,
+    1640,  1650,  1679,  1688,  1697,  1702,  1703,  1704,  1704,  1704,
+    1705,  1705,  1705,  1706,  1706,  1708,  1718,  1727,  1734,  1744,
+    1751,  1758,  1765,  1772,  1777,  1778,  1779,  1779,  1780,  1780,
+    1781,  1781,  1782,  1783,  1784,  1785,  1786,  1787,  1789,  1797,
+    1804,  1812,  1820,  1827,  1834,  1843,  1852,  1861,  1870,  1879,
+    1888,  1893,  1894,  1895,  1897,  1903
 };
 #endif
 
@@ -931,30 +933,30 @@ static const char *const yytname[] =
   "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG",
   "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION",
   "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW",
-  "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "$accept", "toplevelvars",
-  "toplevelvar", "serverstart", "contents_server", "content_server",
-  "stubstart", "contents_stub", "content_stub", "forwardstart",
-  "contents_forward", "content_forward", "viewstart", "contents_view",
-  "content_view", "server_num_threads", "server_verbosity",
-  "server_statistics_interval", "server_statistics_cumulative",
-  "server_extended_statistics", "server_port", "server_interface",
-  "server_outgoing_interface", "server_outgoing_range",
-  "server_outgoing_port_permit", "server_outgoing_port_avoid",
-  "server_outgoing_num_tcp", "server_incoming_num_tcp",
-  "server_interface_automatic", "server_do_ip4", "server_do_ip6",
-  "server_do_udp", "server_do_tcp", "server_prefer_ip6", "server_tcp_mss",
-  "server_outgoing_tcp_mss", "server_tcp_upstream", "server_ssl_upstream",
-  "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port",
-  "server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
-  "server_log_queries", "server_chroot", "server_username",
-  "server_directory", "server_logfile", "server_pidfile",
-  "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor",
-  "server_auto_trust_anchor_file", "server_trust_anchor_file",
-  "server_trusted_keys_file", "server_trust_anchor",
-  "server_domain_insecure", "server_hide_identity", "server_hide_version",
-  "server_identity", "server_version", "server_so_rcvbuf",
-  "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent",
-  "server_ip_freebind", "server_edns_buffer_size",
+  "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "$accept",
+  "toplevelvars", "toplevelvar", "serverstart", "contents_server",
+  "content_server", "stubstart", "contents_stub", "content_stub",
+  "forwardstart", "contents_forward", "content_forward", "viewstart",
+  "contents_view", "content_view", "server_num_threads",
+  "server_verbosity", "server_statistics_interval",
+  "server_statistics_cumulative", "server_extended_statistics",
+  "server_port", "server_interface", "server_outgoing_interface",
+  "server_outgoing_range", "server_outgoing_port_permit",
+  "server_outgoing_port_avoid", "server_outgoing_num_tcp",
+  "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
+  "server_do_ip6", "server_do_udp", "server_do_tcp", "server_prefer_ip6",
+  "server_tcp_mss", "server_outgoing_tcp_mss", "server_tcp_upstream",
+  "server_ssl_upstream", "server_ssl_service_key",
+  "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
+  "server_use_syslog", "server_log_time_ascii", "server_log_queries",
+  "server_chroot", "server_username", "server_directory", "server_logfile",
+  "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
+  "server_dlv_anchor", "server_auto_trust_anchor_file",
+  "server_trust_anchor_file", "server_trusted_keys_file",
+  "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
+  "server_hide_version", "server_identity", "server_version",
+  "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport",
+  "server_ip_transparent", "server_ip_freebind", "server_edns_buffer_size",
   "server_msg_buffer_size", "server_msg_cache_size",
   "server_msg_cache_slabs", "server_num_queries_per_thread",
   "server_jostle_timeout", "server_delay_close",
@@ -977,7 +979,7 @@ static const char *const yytname[] =
   "server_cache_max_negative_ttl", "server_cache_min_ttl",
   "server_bogus_ttl", "server_val_clean_additional",
   "server_val_permissive_mode", "server_ignore_cd_flag",
-  "server_serve_expired", "server_val_log_level",
+  "server_serve_expired", "server_fake_dsa", "server_val_log_level",
   "server_val_nsec3_keysize_iterations", "server_add_holddown",
   "server_del_holddown", "server_keep_missing",
   "server_permit_small_holddown", "server_key_cache_size",
@@ -1034,7 +1036,8 @@ static const yytype_uint16 yytoknum[] =
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,   428,   429,   430,   431,   432,   433,   434
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435
 };
 # endif
 
@@ -1067,7 +1070,7 @@ static const yytype_int16 yypact[] =
      125,   126,   127,   128,   130,   131,   134,   163,   164,   165,
      170,   171,   172,   214,   215,   216,   217,   218,   219,   220,
      221,   222,   226,   230,   231,   254,   255,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,  -128,  -128,  -128,
+     268,   269,   270,   271,   272,   273,   274,   275,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
@@ -1081,32 +1084,32 @@ static const yytype_int16 yypact[] =
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-     275,   276,   277,   299,   301,  -128,  -128,  -128,  -128,  -128,
-    -128,   303,   304,   305,   306,  -128,  -128,  -128,  -128,  -128,
-     307,   308,   309,   310,  -128,  -128,  -128,  -128,  -128,   311,
-     312,   313,   314,   315,   316,   317,   318,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,   319,   320,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,  -128,  -128,
+    -128,  -128,   276,   277,   299,   301,   304,  -128,  -128,  -128,
+    -128,  -128,  -128,   305,   306,   307,   308,  -128,  -128,  -128,
+    -128,  -128,   309,   310,   311,   312,  -128,  -128,  -128,  -128,
+    -128,   313,   314,   315,   316,   317,   318,   319,   320,  -128,
+    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   321,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,   331,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,  -128,   333,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-     332,   333,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,   334,   335,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   334,
-     335,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   336,
-     337,   338,   339,   340,   341,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,   342,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,   336,   337,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,   338,   339,   340,   341,   342,   343,  -128,  -128,  -128,
+    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   344,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,   343,   344,   345,  -128,
-    -128,  -128,  -128,  -128
+    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   345,
+     346,   347,  -128,  -128,  -128,  -128,  -128
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1114,8 +1117,8 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       2,     0,     1,    11,   146,   154,   312,   358,   331,   161,
-       3,    13,   148,   156,   163,   314,   333,   360,     4,     5,
+       2,     0,     1,    11,   147,   155,   314,   360,   333,   162,
+       3,    13,   149,   157,   164,   316,   335,   362,     4,     5,
        6,    10,     8,     9,     7,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -1129,46 +1132,46 @@ static const yytype_uint16 yydefact[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    12,    14,    15,
-      74,    77,    86,    16,    25,    65,    17,    78,    79,    36,
-      58,    73,    18,    19,    21,    22,    20,    23,    24,   108,
-     109,   110,   111,   112,    75,    64,    90,   107,    26,    27,
-      28,    29,    30,    66,    80,    81,    96,    52,    62,    53,
-      91,    46,    47,    48,    49,   100,   104,   116,   124,   135,
-     101,    59,    31,    32,    33,    88,   117,   118,   119,    34,
-      35,    37,    38,    40,    41,    39,   122,    42,    43,    44,
-      50,    69,   105,    83,   123,    76,   131,    84,    85,   102,
-     103,    89,    45,    67,    70,    51,    54,    92,    93,    68,
-     132,    94,    55,    56,    57,   106,   145,    95,    63,    97,
-      98,    99,   133,    60,    61,    82,    71,    72,    87,   113,
-     114,   115,   120,   121,   136,   137,   139,   141,   142,   140,
-     143,   125,   127,   126,   128,   129,   130,   134,   144,   138,
-       0,     0,     0,     0,     0,   147,   149,   150,   151,   153,
-     152,     0,     0,     0,     0,   155,   157,   158,   159,   160,
-       0,     0,     0,     0,   162,   164,   165,   166,   167,     0,
-       0,     0,     0,     0,     0,     0,     0,   313,   315,   317,
-     316,   322,   318,   319,   320,   321,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   332,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,     0,   359,   361,   169,   168,   173,   176,   174,   182,
-     183,   186,   184,   185,   187,   188,   198,   199,   200,   201,
-     202,   222,   223,   224,   229,   230,   179,   231,   232,   235,
-     233,   234,   237,   238,   239,   252,   211,   212,   213,   214,
-     240,   255,   207,   209,   256,   262,   263,   264,   180,   221,
-     273,   274,   208,   268,   195,   175,   203,   253,   259,   241,
-       0,     0,   277,   181,   170,   194,   245,   171,   177,   178,
-     204,   205,   275,   243,   247,   248,   172,   278,   225,   251,
-     196,   210,   257,   258,   261,   267,   206,   271,   269,   270,
-     215,   220,   249,   250,   216,   217,   242,   265,   197,   189,
-     190,   191,   192,   193,   279,   280,   281,   226,   227,   228,
-     236,   282,   283,   244,   218,   363,   291,   293,   292,     0,
-       0,   296,   246,   260,   272,   297,   298,   219,   284,     0,
-       0,     0,     0,     0,     0,   266,   299,   300,   301,   303,
-     302,   304,   305,   306,   307,   308,     0,   310,   311,   323,
-     325,   324,   327,   328,   329,   330,   326,   346,   347,   348,
-     349,   350,   351,   352,   353,   354,   355,   356,   357,   362,
-     254,   276,   294,   295,   285,   286,     0,     0,     0,   290,
-     309,   289,   287,   288
+       0,     0,     0,     0,     0,     0,     0,     0,    12,    14,
+      15,    74,    77,    86,    16,    25,    65,    17,    78,    79,
+      36,    58,    73,    18,    19,    21,    22,    20,    23,    24,
+     108,   109,   110,   111,   112,    75,    64,    90,   107,    26,
+      27,    28,    29,    30,    66,    80,    81,    96,    52,    62,
+      53,    91,    46,    47,    48,    49,   100,   104,   116,   124,
+     135,   101,    59,    31,    32,    33,    88,   117,   118,   119,
+      34,    35,    37,    38,    40,    41,    39,   122,    42,    43,
+      44,    50,    69,   105,    83,   123,    76,   131,    84,    85,
+     102,   103,    89,    45,    67,    70,    51,    54,    92,    93,
+      68,   132,    94,    55,    56,    57,   106,   145,   146,    95,
+      63,    97,    98,    99,   133,    60,    61,    82,    71,    72,
+      87,   113,   114,   115,   120,   121,   136,   137,   139,   141,
+     142,   140,   143,   125,   127,   126,   128,   129,   130,   134,
+     144,   138,     0,     0,     0,     0,     0,   148,   150,   151,
+     152,   154,   153,     0,     0,     0,     0,   156,   158,   159,
+     160,   161,     0,     0,     0,     0,   163,   165,   166,   167,
+     168,     0,     0,     0,     0,     0,     0,     0,     0,   315,
+     317,   319,   318,   324,   320,   321,   322,   323,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     334,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,     0,   361,   363,   170,   169,   174,   177,
+     175,   183,   184,   187,   185,   186,   188,   189,   199,   200,
+     201,   202,   203,   223,   224,   225,   230,   231,   180,   232,
+     233,   236,   234,   235,   238,   239,   240,   253,   212,   213,
+     214,   215,   241,   256,   208,   210,   257,   263,   264,   265,
+     181,   222,   275,   276,   209,   270,   196,   176,   204,   254,
+     260,   242,     0,     0,   279,   182,   171,   195,   246,   172,
+     178,   179,   205,   206,   277,   244,   248,   249,   173,   280,
+     226,   252,   197,   211,   258,   259,   262,   269,   207,   273,
+     271,   272,   216,   221,   250,   251,   217,   218,   243,   266,
+     198,   190,   191,   192,   193,   194,   281,   282,   283,   227,
+     228,   229,   237,   284,   285,   245,   219,   365,   293,   295,
+     294,     0,     0,   298,   247,   261,   274,   299,   300,   220,
+     286,     0,     0,     0,     0,     0,     0,   267,   268,   301,
+     302,   303,   305,   304,   306,   307,   308,   309,   310,     0,
+     312,   313,   325,   327,   326,   329,   330,   331,   332,   328,
+     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
+     358,   359,   364,   255,   278,   296,   297,   287,   288,     0,
+       0,     0,   292,   311,   291,   289,   290
 };
 
   /* YYPGOTO[NTERM-NUM].  */
@@ -1192,31 +1195,33 @@ static const yytype_int8 yypgoto[] =
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128
+    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,    10,    11,    18,   157,    12,    19,   295,    13,
-      20,   305,    14,    21,   314,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
-     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   296,   297,   298,   299,
-     300,   306,   307,   308,   309,   315,   316,   317,   318,    15,
-      22,   327,   328,   329,   330,   331,   332,   333,   334,   335,
-      16,    23,   348,   349,   350,   351,   352,   353,   354,   355,
-     356,   357,   358,   359,   360,    17,    24,   362,   363,   289
+      -1,     1,    10,    11,    18,   158,    12,    19,   297,    13,
+      20,   307,    14,    21,   316,   159,   160,   161,   162,   163,
+     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
+     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
+     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
+     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
+     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
+     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
+     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
+     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
+     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
+     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
+     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
+     284,   285,   286,   287,   288,   289,   290,   298,   299,   300,
+     301,   302,   308,   309,   310,   311,   317,   318,   319,   320,
+      15,    22,   329,   330,   331,   332,   333,   334,   335,   336,
+     337,    16,    23,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,    17,    24,   364,   365,
+     291
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1224,42 +1229,42 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_uint16 yytable[] =
 {
-       2,   310,   290,   361,   291,   292,   301,   364,   365,   366,
-       0,     3,   367,   368,   302,   303,   336,   337,   338,   339,
-     340,   341,   342,   343,   344,   345,   346,   347,   319,   320,
-     321,   322,   323,   324,   325,   326,   369,   311,   312,   370,
-     371,     4,   372,   373,   374,   375,   376,     5,   377,   378,
-     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
-     389,   390,   391,   392,   393,   293,   394,   395,   396,   397,
-     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
-     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
-     418,     6,   419,   420,   294,   421,   422,   304,   423,   424,
-     425,   426,   427,   428,   429,   430,   431,     7,   432,   433,
-     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
-     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,   313,
-     463,   464,     8,     0,   465,    25,    26,    27,    28,    29,
+       2,   312,   292,   363,   293,   294,   303,   366,   367,   368,
+       0,     3,   369,   370,   304,   305,   338,   339,   340,   341,
+     342,   343,   344,   345,   346,   347,   348,   349,   321,   322,
+     323,   324,   325,   326,   327,   328,   371,   313,   314,   372,
+     373,     4,   374,   375,   376,   377,   378,     5,   379,   380,
+     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
+     391,   392,   393,   394,   395,   295,   396,   397,   398,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
+     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
+     420,     6,   421,   422,   296,   423,   424,   306,   425,   426,
+     427,   428,   429,   430,   431,   432,   433,     7,   434,   435,
+     436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
+     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,   464,   315,
+     465,   466,     8,     0,   467,    25,    26,    27,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,   466,   467,   468,     9,    53,    54,    55,
-     469,   470,   471,    56,    57,    58,    59,    60,    61,    62,
+      50,    51,    52,   468,   469,   470,     9,    53,    54,    55,
+     471,   472,   473,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,   472,   473,   474,   475,   476,   477,
-     478,   479,   480,    97,    98,    99,   481,   100,   101,   102,
-     482,   483,   103,   104,   105,   106,   107,   108,   109,   110,
+      93,    94,    95,    96,   474,   475,   476,   477,   478,   479,
+     480,   481,   482,    97,    98,    99,   483,   100,   101,   102,
+     484,   485,   103,   104,   105,   106,   107,   108,   109,   110,
      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   484,   485,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   486,   487,   488,   489,   490,
-     491,   492,   493,   494,   495,   496,   497,   498,   134,   135,
+     121,   122,   123,   124,   486,   487,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   488,   489,   490,   491,   492,
+     493,   494,   495,   496,   497,   498,   499,   500,   134,   135,
      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   499,
-     155,   500,   156,   501,   502,   503,   504,   505,   506,   507,
-     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
-     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
-     528,   529,   530,   531,   532,   533,   534,   535,   536,   537,
-     538,   539,   540,   541,   542,   543
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   501,
+     155,   502,   156,   157,   503,   504,   505,   506,   507,   508,
+     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
+     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
+     529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
+     539,   540,   541,   542,   543,   544,   545,   546
 };
 
 static const yytype_int16 yycheck[] =
@@ -1295,20 +1300,20 @@ static const yytype_int16 yycheck[] =
       10,    10,    10,    10,    10,    10,    10,    10,   155,   156,
      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
      167,   168,   169,   170,   171,   172,   173,   174,   175,    10,
-     177,    10,   179,    10,    10,    10,    10,    10,    10,    10,
+     177,    10,   179,   180,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10,    10,    10
+      10,    10,    10,    10,    10,    10,    10,    10
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   181,     0,    11,    41,    47,    91,   107,   142,   176,
-     182,   183,   186,   189,   192,   339,   350,   365,   184,   187,
-     190,   193,   340,   351,   366,    12,    13,    14,    15,    16,
+       0,   182,     0,    11,    41,    47,    91,   107,   142,   176,
+     183,   184,   187,   190,   193,   341,   352,   367,   185,   188,
+     191,   194,   342,   353,   368,    12,    13,    14,    15,    16,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
       37,    38,    39,    44,    45,    46,    50,    51,    52,    53,
@@ -1321,7 +1326,7 @@ static const yytype_uint16 yystos[] =
      126,   127,   128,   129,   130,   133,   134,   135,   136,   137,
      138,   139,   140,   141,   155,   156,   157,   158,   159,   160,
      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   177,   179,   185,   195,   196,
+     171,   172,   173,   174,   175,   177,   179,   180,   186,   196,
      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
@@ -1334,15 +1339,15 @@ static const yytype_uint16 yystos[] =
      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,   319,   320,   321,   322,   323,   324,   325,   369,
-      40,    42,    43,   103,   132,   188,   326,   327,   328,   329,
-     330,    40,    48,    49,   131,   191,   331,   332,   333,   334,
-      40,    76,    77,   178,   194,   335,   336,   337,   338,    92,
-      93,    94,    95,    96,    97,    98,    99,   341,   342,   343,
-     344,   345,   346,   347,   348,   349,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   352,   353,
+     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
+     327,   371,    40,    42,    43,   103,   132,   189,   328,   329,
+     330,   331,   332,    40,    48,    49,   131,   192,   333,   334,
+     335,   336,    40,    76,    77,   178,   195,   337,   338,   339,
+     340,    92,    93,    94,    95,    96,    97,    98,    99,   343,
+     344,   345,   346,   347,   348,   349,   350,   351,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
-     364,   108,   367,   368,    10,    10,    10,    10,    10,    10,
+     364,   365,   366,   108,   369,   370,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
@@ -1360,29 +1365,29 @@ static const yytype_uint16 yystos[] =
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
-      10,    10,    10,    10
+      10,    10,    10,    10,    10,    10,    10
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   180,   181,   181,   182,   182,   182,   182,   182,   182,
-     182,   183,   184,   184,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
-     185,   185,   185,   185,   185,   185,   186,   187,   187,   188,
-     188,   188,   188,   188,   189,   190,   190,   191,   191,   191,
-     191,   192,   193,   193,   194,   194,   194,   194,   195,   196,
+       0,   181,   182,   182,   183,   183,   183,   183,   183,   183,
+     183,   184,   185,   185,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   187,   188,   188,
+     189,   189,   189,   189,   189,   190,   191,   191,   192,   192,
+     192,   192,   193,   194,   194,   195,   195,   195,   195,   196,
      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
@@ -1397,12 +1402,12 @@ static const yytype_uint16 yyr1[] =
      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
-     337,   338,   339,   340,   340,   341,   341,   341,   341,   341,
-     341,   341,   341,   342,   343,   344,   345,   346,   347,   348,
-     349,   350,   351,   351,   352,   352,   352,   352,   352,   352,
-     352,   352,   352,   352,   352,   352,   353,   354,   355,   356,
+     337,   338,   339,   340,   341,   342,   342,   343,   343,   343,
+     343,   343,   343,   343,   343,   344,   345,   346,   347,   348,
+     349,   350,   351,   352,   353,   353,   354,   354,   354,   354,
+     354,   354,   354,   354,   354,   354,   354,   354,   355,   356,
      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
-     366,   367,   368,   369
+     367,   368,   368,   369,   370,   371
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1422,9 +1427,9 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     0,     1,
-       1,     1,     1,     1,     1,     2,     0,     1,     1,     1,
-       1,     1,     2,     0,     1,     1,     1,     1,     2,     2,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
+       1,     1,     1,     1,     1,     1,     2,     0,     1,     1,
+       1,     1,     1,     2,     0,     1,     1,     1,     1,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1433,18 +1438,18 @@ static const yytype_uint8 yyr2[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     3,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     3,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     3,     2,     2,     2,
-       2,     2,     2,     2,     2,     3,     3,     4,     4,     4,
-       3,     2,     2,     2,     3,     3,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
-       2,     2,     1,     2,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
-       2,     1,     2,     0,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     1,     2,
-       0,     1,     2,     2
+       2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
+       2,     2,     2,     2,     2,     2,     2,     3,     3,     4,
+       4,     4,     3,     2,     2,     2,     3,     3,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     3,     2,     2,     1,     2,     0,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
+       2,     2,     2,     1,     2,     0,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       1,     2,     0,     1,     2,     2
 };
 
 
@@ -2125,11 +2130,11 @@ yyreduce:
     { 
                OUTYY(("\nP(server:)\n")); 
        }
-#line 2129 "util/configparser.c" /* yacc.c:1646  */
+#line 2134 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 146:
-#line 209 "./util/configparser.y" /* yacc.c:1646  */
+  case 147:
+#line 210 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -2140,11 +2145,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2144 "util/configparser.c" /* yacc.c:1646  */
+#line 2149 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 154:
-#line 225 "./util/configparser.y" /* yacc.c:1646  */
+  case 155:
+#line 226 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -2155,11 +2160,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2159 "util/configparser.c" /* yacc.c:1646  */
+#line 2164 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 161:
-#line 241 "./util/configparser.y" /* yacc.c:1646  */
+  case 162:
+#line 242 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_view* s;
                OUTYY(("\nP(view:)\n")); 
@@ -2172,11 +2177,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2176 "util/configparser.c" /* yacc.c:1646  */
+#line 2181 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 168:
-#line 259 "./util/configparser.y" /* yacc.c:1646  */
+  case 169:
+#line 260 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2184,11 +2189,11 @@ yyreduce:
                else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2188 "util/configparser.c" /* yacc.c:1646  */
+#line 2193 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 169:
-#line 268 "./util/configparser.y" /* yacc.c:1646  */
+  case 170:
+#line 269 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2196,11 +2201,11 @@ yyreduce:
                else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2200 "util/configparser.c" /* yacc.c:1646  */
+#line 2205 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 170:
-#line 277 "./util/configparser.y" /* yacc.c:1646  */
+  case 171:
+#line 278 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); 
                if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -2210,11 +2215,11 @@ yyreduce:
                else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2214 "util/configparser.c" /* yacc.c:1646  */
+#line 2219 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 171:
-#line 288 "./util/configparser.y" /* yacc.c:1646  */
+  case 172:
+#line 289 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2222,11 +2227,11 @@ yyreduce:
                else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2226 "util/configparser.c" /* yacc.c:1646  */
+#line 2231 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 172:
-#line 297 "./util/configparser.y" /* yacc.c:1646  */
+  case 173:
+#line 298 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2234,11 +2239,11 @@ yyreduce:
                else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2238 "util/configparser.c" /* yacc.c:1646  */
+#line 2243 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 173:
-#line 306 "./util/configparser.y" /* yacc.c:1646  */
+  case 174:
+#line 307 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2246,11 +2251,11 @@ yyreduce:
                else cfg_parser->cfg->port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2250 "util/configparser.c" /* yacc.c:1646  */
+#line 2255 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 174:
-#line 315 "./util/configparser.y" /* yacc.c:1646  */
+  case 175:
+#line 316 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -2262,11 +2267,11 @@ yyreduce:
                else
                        cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
        }
-#line 2266 "util/configparser.c" /* yacc.c:1646  */
+#line 2271 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 175:
-#line 328 "./util/configparser.y" /* yacc.c:1646  */
+  case 176:
+#line 329 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2280,11 +2285,11 @@ yyreduce:
                        cfg_parser->cfg->out_ifs[
                                cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
        }
-#line 2284 "util/configparser.c" /* yacc.c:1646  */
+#line 2289 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 176:
-#line 343 "./util/configparser.y" /* yacc.c:1646  */
+  case 177:
+#line 344 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2292,11 +2297,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2296 "util/configparser.c" /* yacc.c:1646  */
+#line 2301 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 177:
-#line 352 "./util/configparser.y" /* yacc.c:1646  */
+  case 178:
+#line 353 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
                if(!cfg_mark_ports((yyvsp[0].str), 1, 
@@ -2304,11 +2309,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2308 "util/configparser.c" /* yacc.c:1646  */
+#line 2313 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 178:
-#line 361 "./util/configparser.y" /* yacc.c:1646  */
+  case 179:
+#line 362 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
                if(!cfg_mark_ports((yyvsp[0].str), 0, 
@@ -2316,11 +2321,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2320 "util/configparser.c" /* yacc.c:1646  */
+#line 2325 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 179:
-#line 370 "./util/configparser.y" /* yacc.c:1646  */
+  case 180:
+#line 371 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2328,11 +2333,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2332 "util/configparser.c" /* yacc.c:1646  */
+#line 2337 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 180:
-#line 379 "./util/configparser.y" /* yacc.c:1646  */
+  case 181:
+#line 380 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2340,11 +2345,11 @@ yyreduce:
                else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2344 "util/configparser.c" /* yacc.c:1646  */
+#line 2349 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 181:
-#line 388 "./util/configparser.y" /* yacc.c:1646  */
+  case 182:
+#line 389 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2352,11 +2357,11 @@ yyreduce:
                else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2356 "util/configparser.c" /* yacc.c:1646  */
+#line 2361 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 182:
-#line 397 "./util/configparser.y" /* yacc.c:1646  */
+  case 183:
+#line 398 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2364,11 +2369,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2368 "util/configparser.c" /* yacc.c:1646  */
+#line 2373 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 183:
-#line 406 "./util/configparser.y" /* yacc.c:1646  */
+  case 184:
+#line 407 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2376,11 +2381,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2380 "util/configparser.c" /* yacc.c:1646  */
+#line 2385 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 184:
-#line 415 "./util/configparser.y" /* yacc.c:1646  */
+  case 185:
+#line 416 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2388,11 +2393,11 @@ yyreduce:
                else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2392 "util/configparser.c" /* yacc.c:1646  */
+#line 2397 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 185:
-#line 424 "./util/configparser.y" /* yacc.c:1646  */
+  case 186:
+#line 425 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2400,11 +2405,11 @@ yyreduce:
                else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2404 "util/configparser.c" /* yacc.c:1646  */
+#line 2409 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 186:
-#line 433 "./util/configparser.y" /* yacc.c:1646  */
+  case 187:
+#line 434 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2412,11 +2417,11 @@ yyreduce:
                else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2416 "util/configparser.c" /* yacc.c:1646  */
+#line 2421 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 187:
-#line 442 "./util/configparser.y" /* yacc.c:1646  */
+  case 188:
+#line 443 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
                 if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2424,11 +2429,11 @@ yyreduce:
                 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
                 free((yyvsp[0].str));
        }
-#line 2428 "util/configparser.c" /* yacc.c:1646  */
+#line 2433 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 188:
-#line 451 "./util/configparser.y" /* yacc.c:1646  */
+  case 189:
+#line 452 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2436,11 +2441,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2440 "util/configparser.c" /* yacc.c:1646  */
+#line 2445 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 189:
-#line 460 "./util/configparser.y" /* yacc.c:1646  */
+  case 190:
+#line 461 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2448,11 +2453,11 @@ yyreduce:
                else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2452 "util/configparser.c" /* yacc.c:1646  */
+#line 2457 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 190:
-#line 469 "./util/configparser.y" /* yacc.c:1646  */
+  case 191:
+#line 470 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2460,31 +2465,31 @@ yyreduce:
                else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2464 "util/configparser.c" /* yacc.c:1646  */
+#line 2469 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 191:
-#line 478 "./util/configparser.y" /* yacc.c:1646  */
+  case 192:
+#line 479 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->ssl_service_key);
                cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
        }
-#line 2474 "util/configparser.c" /* yacc.c:1646  */
+#line 2479 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 192:
-#line 485 "./util/configparser.y" /* yacc.c:1646  */
+  case 193:
+#line 486 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->ssl_service_pem);
                cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
        }
-#line 2484 "util/configparser.c" /* yacc.c:1646  */
+#line 2489 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 193:
-#line 492 "./util/configparser.y" /* yacc.c:1646  */
+  case 194:
+#line 493 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2492,11 +2497,11 @@ yyreduce:
                else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2496 "util/configparser.c" /* yacc.c:1646  */
+#line 2501 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 194:
-#line 501 "./util/configparser.y" /* yacc.c:1646  */
+  case 195:
+#line 502 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2504,11 +2509,11 @@ yyreduce:
                else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2508 "util/configparser.c" /* yacc.c:1646  */
+#line 2513 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 195:
-#line 510 "./util/configparser.y" /* yacc.c:1646  */
+  case 196:
+#line 511 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2521,11 +2526,11 @@ yyreduce:
 #endif
                free((yyvsp[0].str));
        }
-#line 2525 "util/configparser.c" /* yacc.c:1646  */
+#line 2530 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 196:
-#line 524 "./util/configparser.y" /* yacc.c:1646  */
+  case 197:
+#line 525 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2533,11 +2538,11 @@ yyreduce:
                else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2537 "util/configparser.c" /* yacc.c:1646  */
+#line 2542 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 197:
-#line 533 "./util/configparser.y" /* yacc.c:1646  */
+  case 198:
+#line 534 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2545,31 +2550,31 @@ yyreduce:
                else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2549 "util/configparser.c" /* yacc.c:1646  */
+#line 2554 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 198:
-#line 542 "./util/configparser.y" /* yacc.c:1646  */
+  case 199:
+#line 543 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->chrootdir);
                cfg_parser->cfg->chrootdir = (yyvsp[0].str);
        }
-#line 2559 "util/configparser.c" /* yacc.c:1646  */
+#line 2564 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 199:
-#line 549 "./util/configparser.y" /* yacc.c:1646  */
+  case 200:
+#line 550 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->username);
                cfg_parser->cfg->username = (yyvsp[0].str);
        }
-#line 2569 "util/configparser.c" /* yacc.c:1646  */
+#line 2574 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 200:
-#line 556 "./util/configparser.y" /* yacc.c:1646  */
+  case 201:
+#line 557 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->directory);
@@ -2592,115 +2597,115 @@ yyreduce:
                                        d, strerror(errno));
                }
        }
-#line 2596 "util/configparser.c" /* yacc.c:1646  */
+#line 2601 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 201:
-#line 580 "./util/configparser.y" /* yacc.c:1646  */
+  case 202:
+#line 581 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->logfile);
                cfg_parser->cfg->logfile = (yyvsp[0].str);
                cfg_parser->cfg->use_syslog = 0;
        }
-#line 2607 "util/configparser.c" /* yacc.c:1646  */
+#line 2612 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 202:
-#line 588 "./util/configparser.y" /* yacc.c:1646  */
+  case 203:
+#line 589 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->pidfile);
                cfg_parser->cfg->pidfile = (yyvsp[0].str);
        }
-#line 2617 "util/configparser.c" /* yacc.c:1646  */
+#line 2622 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 203:
-#line 595 "./util/configparser.y" /* yacc.c:1646  */
+  case 204:
+#line 596 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2627 "util/configparser.c" /* yacc.c:1646  */
+#line 2632 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 204:
-#line 602 "./util/configparser.y" /* yacc.c:1646  */
+  case 205:
+#line 603 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dlv_anchor_file);
                cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str);
        }
-#line 2637 "util/configparser.c" /* yacc.c:1646  */
+#line 2642 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 205:
-#line 609 "./util/configparser.y" /* yacc.c:1646  */
+  case 206:
+#line 610 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2647 "util/configparser.c" /* yacc.c:1646  */
+#line 2652 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 206:
-#line 616 "./util/configparser.y" /* yacc.c:1646  */
+  case 207:
+#line 617 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
                        auto_trust_anchor_file_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2658 "util/configparser.c" /* yacc.c:1646  */
+#line 2663 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 207:
-#line 624 "./util/configparser.y" /* yacc.c:1646  */
+  case 208:
+#line 625 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
                        trust_anchor_file_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2669 "util/configparser.c" /* yacc.c:1646  */
+#line 2674 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 208:
-#line 632 "./util/configparser.y" /* yacc.c:1646  */
+  case 209:
+#line 633 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->
                        trusted_keys_file_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2680 "util/configparser.c" /* yacc.c:1646  */
+#line 2685 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 209:
-#line 640 "./util/configparser.y" /* yacc.c:1646  */
+  case 210:
+#line 641 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2690 "util/configparser.c" /* yacc.c:1646  */
+#line 2695 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 210:
-#line 647 "./util/configparser.y" /* yacc.c:1646  */
+  case 211:
+#line 648 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 2700 "util/configparser.c" /* yacc.c:1646  */
+#line 2705 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 211:
-#line 654 "./util/configparser.y" /* yacc.c:1646  */
+  case 212:
+#line 655 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2708,11 +2713,11 @@ yyreduce:
                else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2712 "util/configparser.c" /* yacc.c:1646  */
+#line 2717 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 212:
-#line 663 "./util/configparser.y" /* yacc.c:1646  */
+  case 213:
+#line 664 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2720,53 +2725,53 @@ yyreduce:
                else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2724 "util/configparser.c" /* yacc.c:1646  */
+#line 2729 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 213:
-#line 672 "./util/configparser.y" /* yacc.c:1646  */
+  case 214:
+#line 673 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->identity);
                cfg_parser->cfg->identity = (yyvsp[0].str);
        }
-#line 2734 "util/configparser.c" /* yacc.c:1646  */
+#line 2739 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 214:
-#line 679 "./util/configparser.y" /* yacc.c:1646  */
+  case 215:
+#line 680 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->version);
                cfg_parser->cfg->version = (yyvsp[0].str);
        }
-#line 2744 "util/configparser.c" /* yacc.c:1646  */
+#line 2749 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 215:
-#line 686 "./util/configparser.y" /* yacc.c:1646  */
+  case 216:
+#line 687 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
                        yyerror("buffer size expected");
                free((yyvsp[0].str));
        }
-#line 2755 "util/configparser.c" /* yacc.c:1646  */
+#line 2760 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 216:
-#line 694 "./util/configparser.y" /* yacc.c:1646  */
+  case 217:
+#line 695 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
                        yyerror("buffer size expected");
                free((yyvsp[0].str));
        }
-#line 2766 "util/configparser.c" /* yacc.c:1646  */
+#line 2771 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 217:
-#line 702 "./util/configparser.y" /* yacc.c:1646  */
+  case 218:
+#line 703 "./util/configparser.y" /* yacc.c:1646  */
     {
         OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2775,11 +2780,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2779 "util/configparser.c" /* yacc.c:1646  */
+#line 2784 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 218:
-#line 712 "./util/configparser.y" /* yacc.c:1646  */
+  case 219:
+#line 713 "./util/configparser.y" /* yacc.c:1646  */
     {
         OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2788,11 +2793,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2792 "util/configparser.c" /* yacc.c:1646  */
+#line 2797 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 219:
-#line 722 "./util/configparser.y" /* yacc.c:1646  */
+  case 220:
+#line 723 "./util/configparser.y" /* yacc.c:1646  */
     {
         OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
         if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2801,11 +2806,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2805 "util/configparser.c" /* yacc.c:1646  */
+#line 2810 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 220:
-#line 732 "./util/configparser.y" /* yacc.c:1646  */
+  case 221:
+#line 733 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2817,11 +2822,11 @@ yyreduce:
                else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2821 "util/configparser.c" /* yacc.c:1646  */
+#line 2826 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 221:
-#line 745 "./util/configparser.y" /* yacc.c:1646  */
+  case 222:
+#line 746 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2831,22 +2836,22 @@ yyreduce:
                else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2835 "util/configparser.c" /* yacc.c:1646  */
+#line 2840 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 222:
-#line 756 "./util/configparser.y" /* yacc.c:1646  */
+  case 223:
+#line 757 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 2846 "util/configparser.c" /* yacc.c:1646  */
+#line 2851 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 223:
-#line 764 "./util/configparser.y" /* yacc.c:1646  */
+  case 224:
+#line 765 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2858,11 +2863,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2862 "util/configparser.c" /* yacc.c:1646  */
+#line 2867 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 224:
-#line 777 "./util/configparser.y" /* yacc.c:1646  */
+  case 225:
+#line 778 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2870,11 +2875,11 @@ yyreduce:
                else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2874 "util/configparser.c" /* yacc.c:1646  */
+#line 2879 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 225:
-#line 786 "./util/configparser.y" /* yacc.c:1646  */
+  case 226:
+#line 787 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2882,11 +2887,11 @@ yyreduce:
                else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2886 "util/configparser.c" /* yacc.c:1646  */
+#line 2891 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 226:
-#line 795 "./util/configparser.y" /* yacc.c:1646  */
+  case 227:
+#line 796 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2894,11 +2899,11 @@ yyreduce:
                else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2898 "util/configparser.c" /* yacc.c:1646  */
+#line 2903 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 227:
-#line 804 "./util/configparser.y" /* yacc.c:1646  */
+  case 228:
+#line 805 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2907,11 +2912,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2911 "util/configparser.c" /* yacc.c:1646  */
+#line 2916 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 228:
-#line 814 "./util/configparser.y" /* yacc.c:1646  */
+  case 229:
+#line 815 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2920,22 +2925,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2924 "util/configparser.c" /* yacc.c:1646  */
+#line 2929 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 229:
-#line 824 "./util/configparser.y" /* yacc.c:1646  */
+  case 230:
+#line 825 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 2935 "util/configparser.c" /* yacc.c:1646  */
+#line 2940 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 230:
-#line 832 "./util/configparser.y" /* yacc.c:1646  */
+  case 231:
+#line 833 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2947,11 +2952,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2951 "util/configparser.c" /* yacc.c:1646  */
+#line 2956 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 231:
-#line 845 "./util/configparser.y" /* yacc.c:1646  */
+  case 232:
+#line 846 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2959,22 +2964,22 @@ yyreduce:
                else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2963 "util/configparser.c" /* yacc.c:1646  */
+#line 2968 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 232:
-#line 854 "./util/configparser.y" /* yacc.c:1646  */
+  case 233:
+#line 855 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
                verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
                        "removed, use infra-host-ttl)", (yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2974 "util/configparser.c" /* yacc.c:1646  */
+#line 2979 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 233:
-#line 862 "./util/configparser.y" /* yacc.c:1646  */
+  case 234:
+#line 863 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2982,22 +2987,22 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2986 "util/configparser.c" /* yacc.c:1646  */
+#line 2991 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 234:
-#line 871 "./util/configparser.y" /* yacc.c:1646  */
+  case 235:
+#line 872 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
                verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
                        "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2997 "util/configparser.c" /* yacc.c:1646  */
+#line 3002 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 235:
-#line 879 "./util/configparser.y" /* yacc.c:1646  */
+  case 236:
+#line 880 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3009,11 +3014,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3013 "util/configparser.c" /* yacc.c:1646  */
+#line 3018 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 236:
-#line 892 "./util/configparser.y" /* yacc.c:1646  */
+  case 237:
+#line 893 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3021,21 +3026,21 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3025 "util/configparser.c" /* yacc.c:1646  */
+#line 3030 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 237:
-#line 901 "./util/configparser.y" /* yacc.c:1646  */
+  case 238:
+#line 902 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->target_fetch_policy);
                cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
        }
-#line 3035 "util/configparser.c" /* yacc.c:1646  */
+#line 3040 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 238:
-#line 908 "./util/configparser.y" /* yacc.c:1646  */
+  case 239:
+#line 909 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3044,11 +3049,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3048 "util/configparser.c" /* yacc.c:1646  */
+#line 3053 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 239:
-#line 918 "./util/configparser.y" /* yacc.c:1646  */
+  case 240:
+#line 919 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3057,11 +3062,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3061 "util/configparser.c" /* yacc.c:1646  */
+#line 3066 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 240:
-#line 928 "./util/configparser.y" /* yacc.c:1646  */
+  case 241:
+#line 929 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3070,11 +3075,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3074 "util/configparser.c" /* yacc.c:1646  */
+#line 3079 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 241:
-#line 938 "./util/configparser.y" /* yacc.c:1646  */
+  case 242:
+#line 939 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3083,11 +3088,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3087 "util/configparser.c" /* yacc.c:1646  */
+#line 3092 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 242:
-#line 948 "./util/configparser.y" /* yacc.c:1646  */
+  case 243:
+#line 949 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3096,11 +3101,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3100 "util/configparser.c" /* yacc.c:1646  */
+#line 3105 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 243:
-#line 958 "./util/configparser.y" /* yacc.c:1646  */
+  case 244:
+#line 959 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3109,11 +3114,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3113 "util/configparser.c" /* yacc.c:1646  */
+#line 3118 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 244:
-#line 968 "./util/configparser.y" /* yacc.c:1646  */
+  case 245:
+#line 969 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3122,11 +3127,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3126 "util/configparser.c" /* yacc.c:1646  */
+#line 3131 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 245:
-#line 978 "./util/configparser.y" /* yacc.c:1646  */
+  case 246:
+#line 979 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3135,41 +3140,41 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3139 "util/configparser.c" /* yacc.c:1646  */
+#line 3144 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 246:
-#line 988 "./util/configparser.y" /* yacc.c:1646  */
+  case 247:
+#line 989 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3149 "util/configparser.c" /* yacc.c:1646  */
+#line 3154 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 247:
-#line 995 "./util/configparser.y" /* yacc.c:1646  */
+  case 248:
+#line 996 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3159 "util/configparser.c" /* yacc.c:1646  */
+#line 3164 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 248:
-#line 1002 "./util/configparser.y" /* yacc.c:1646  */
+  case 249:
+#line 1003 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3169 "util/configparser.c" /* yacc.c:1646  */
+#line 3174 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 249:
-#line 1009 "./util/configparser.y" /* yacc.c:1646  */
+  case 250:
+#line 1010 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3177,11 +3182,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3181 "util/configparser.c" /* yacc.c:1646  */
+#line 3186 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 250:
-#line 1018 "./util/configparser.y" /* yacc.c:1646  */
+  case 251:
+#line 1019 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3189,11 +3194,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3193 "util/configparser.c" /* yacc.c:1646  */
+#line 3198 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 251:
-#line 1027 "./util/configparser.y" /* yacc.c:1646  */
+  case 252:
+#line 1028 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3201,21 +3206,21 @@ yyreduce:
                else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3205 "util/configparser.c" /* yacc.c:1646  */
+#line 3210 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 252:
-#line 1036 "./util/configparser.y" /* yacc.c:1646  */
+  case 253:
+#line 1037 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3215 "util/configparser.c" /* yacc.c:1646  */
+#line 3220 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 253:
-#line 1043 "./util/configparser.y" /* yacc.c:1646  */
+  case 254:
+#line 1044 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3224,11 +3229,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3228 "util/configparser.c" /* yacc.c:1646  */
+#line 3233 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 254:
-#line 1053 "./util/configparser.y" /* yacc.c:1646  */
+  case 255:
+#line 1054 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 &&
@@ -3244,21 +3249,21 @@ yyreduce:
                                fatal_exit("out of memory adding acl");
                }
        }
-#line 3248 "util/configparser.c" /* yacc.c:1646  */
+#line 3253 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 255:
-#line 1070 "./util/configparser.y" /* yacc.c:1646  */
+  case 256:
+#line 1071 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->module_conf);
                cfg_parser->cfg->module_conf = (yyvsp[0].str);
        }
-#line 3258 "util/configparser.c" /* yacc.c:1646  */
+#line 3263 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 256:
-#line 1077 "./util/configparser.y" /* yacc.c:1646  */
+  case 257:
+#line 1078 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3275,11 +3280,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3279 "util/configparser.c" /* yacc.c:1646  */
+#line 3284 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 257:
-#line 1095 "./util/configparser.y" /* yacc.c:1646  */
+  case 258:
+#line 1096 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3291,11 +3296,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3295 "util/configparser.c" /* yacc.c:1646  */
+#line 3300 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 258:
-#line 1108 "./util/configparser.y" /* yacc.c:1646  */
+  case 259:
+#line 1109 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
                if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3307,11 +3312,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3311 "util/configparser.c" /* yacc.c:1646  */
+#line 3316 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 259:
-#line 1121 "./util/configparser.y" /* yacc.c:1646  */
+  case 260:
+#line 1122 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3319,11 +3324,11 @@ yyreduce:
                else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3323 "util/configparser.c" /* yacc.c:1646  */
+#line 3328 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 260:
-#line 1130 "./util/configparser.y" /* yacc.c:1646  */
+  case 261:
+#line 1131 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3331,11 +3336,11 @@ yyreduce:
                else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3335 "util/configparser.c" /* yacc.c:1646  */
+#line 3340 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 261:
-#line 1139 "./util/configparser.y" /* yacc.c:1646  */
+  case 262:
+#line 1140 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3343,11 +3348,11 @@ yyreduce:
                else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3347 "util/configparser.c" /* yacc.c:1646  */
+#line 3352 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 262:
-#line 1148 "./util/configparser.y" /* yacc.c:1646  */
+  case 263:
+#line 1149 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3355,11 +3360,11 @@ yyreduce:
                else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3359 "util/configparser.c" /* yacc.c:1646  */
+#line 3364 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 263:
-#line 1157 "./util/configparser.y" /* yacc.c:1646  */
+  case 264:
+#line 1158 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3368,11 +3373,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3372 "util/configparser.c" /* yacc.c:1646  */
+#line 3377 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 264:
-#line 1167 "./util/configparser.y" /* yacc.c:1646  */
+  case 265:
+#line 1168 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3381,11 +3386,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3385 "util/configparser.c" /* yacc.c:1646  */
+#line 3390 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 265:
-#line 1177 "./util/configparser.y" /* yacc.c:1646  */
+  case 266:
+#line 1178 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3393,11 +3398,11 @@ yyreduce:
                else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3397 "util/configparser.c" /* yacc.c:1646  */
+#line 3402 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 266:
-#line 1186 "./util/configparser.y" /* yacc.c:1646  */
+  case 267:
+#line 1187 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3405,11 +3410,25 @@ yyreduce:
                else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3409 "util/configparser.c" /* yacc.c:1646  */
+#line 3414 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 267:
-#line 1195 "./util/configparser.y" /* yacc.c:1646  */
+  case 268:
+#line 1196 "./util/configparser.y" /* yacc.c:1646  */
+    {
+               OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
+               if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+                       yyerror("expected yes or no.");
+               else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0);
+               if(fake_dsa)
+                       log_warn("test option fake_dsa is enabled");
+               free((yyvsp[0].str));
+       }
+#line 3428 "util/configparser.c" /* yacc.c:1646  */
+    break;
+
+  case 269:
+#line 1207 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3417,21 +3436,21 @@ yyreduce:
                else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3421 "util/configparser.c" /* yacc.c:1646  */
+#line 3440 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 268:
-#line 1204 "./util/configparser.y" /* yacc.c:1646  */
+  case 270:
+#line 1216 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->val_nsec3_key_iterations);
                cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
        }
-#line 3431 "util/configparser.c" /* yacc.c:1646  */
+#line 3450 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 269:
-#line 1211 "./util/configparser.y" /* yacc.c:1646  */
+  case 271:
+#line 1223 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3439,11 +3458,11 @@ yyreduce:
                else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3443 "util/configparser.c" /* yacc.c:1646  */
+#line 3462 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 270:
-#line 1220 "./util/configparser.y" /* yacc.c:1646  */
+  case 272:
+#line 1232 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3451,11 +3470,11 @@ yyreduce:
                else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3455 "util/configparser.c" /* yacc.c:1646  */
+#line 3474 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 271:
-#line 1229 "./util/configparser.y" /* yacc.c:1646  */
+  case 273:
+#line 1241 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3463,11 +3482,11 @@ yyreduce:
                else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3467 "util/configparser.c" /* yacc.c:1646  */
+#line 3486 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 272:
-#line 1238 "./util/configparser.y" /* yacc.c:1646  */
+  case 274:
+#line 1250 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3476,22 +3495,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3480 "util/configparser.c" /* yacc.c:1646  */
+#line 3499 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 273:
-#line 1247 "./util/configparser.y" /* yacc.c:1646  */
+  case 275:
+#line 1259 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 3491 "util/configparser.c" /* yacc.c:1646  */
+#line 3510 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 274:
-#line 1255 "./util/configparser.y" /* yacc.c:1646  */
+  case 276:
+#line 1267 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3503,22 +3522,22 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3507 "util/configparser.c" /* yacc.c:1646  */
+#line 3526 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 275:
-#line 1268 "./util/configparser.y" /* yacc.c:1646  */
+  case 277:
+#line 1280 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 3518 "util/configparser.c" /* yacc.c:1646  */
+#line 3537 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 276:
-#line 1276 "./util/configparser.y" /* yacc.c:1646  */
+  case 278:
+#line 1288 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -3545,21 +3564,21 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 3549 "util/configparser.c" /* yacc.c:1646  */
+#line 3568 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 277:
-#line 1304 "./util/configparser.y" /* yacc.c:1646  */
+  case 279:
+#line 1316 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
                        fatal_exit("out of memory adding local-data");
        }
-#line 3559 "util/configparser.c" /* yacc.c:1646  */
+#line 3578 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 278:
-#line 1311 "./util/configparser.y" /* yacc.c:1646  */
+  case 280:
+#line 1323 "./util/configparser.y" /* yacc.c:1646  */
     {
                char* ptr;
                OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -3573,11 +3592,11 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 3577 "util/configparser.c" /* yacc.c:1646  */
+#line 3596 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 279:
-#line 1326 "./util/configparser.y" /* yacc.c:1646  */
+  case 281:
+#line 1338 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3586,11 +3605,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3590 "util/configparser.c" /* yacc.c:1646  */
+#line 3609 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 280:
-#line 1336 "./util/configparser.y" /* yacc.c:1646  */
+  case 282:
+#line 1348 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3599,31 +3618,31 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3603 "util/configparser.c" /* yacc.c:1646  */
+#line 3622 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 281:
-#line 1346 "./util/configparser.y" /* yacc.c:1646  */
+  case 283:
+#line 1358 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
                cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3613 "util/configparser.c" /* yacc.c:1646  */
+#line 3632 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 282:
-#line 1353 "./util/configparser.y" /* yacc.c:1646  */
+  case 284:
+#line 1365 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dns64_prefix);
                cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
        }
-#line 3623 "util/configparser.c" /* yacc.c:1646  */
+#line 3642 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 283:
-#line 1360 "./util/configparser.y" /* yacc.c:1646  */
+  case 285:
+#line 1372 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3631,11 +3650,11 @@ yyreduce:
                else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3635 "util/configparser.c" /* yacc.c:1646  */
+#line 3654 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 284:
-#line 1369 "./util/configparser.y" /* yacc.c:1646  */
+  case 286:
+#line 1381 "./util/configparser.y" /* yacc.c:1646  */
     {
                char* p, *s = (yyvsp[0].str);
                OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -3648,11 +3667,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3652 "util/configparser.c" /* yacc.c:1646  */
+#line 3671 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 285:
-#line 1383 "./util/configparser.y" /* yacc.c:1646  */
+  case 287:
+#line 1395 "./util/configparser.y" /* yacc.c:1646  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -3670,11 +3689,11 @@ yyreduce:
                        }
                }
        }
-#line 3674 "util/configparser.c" /* yacc.c:1646  */
+#line 3693 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 286:
-#line 1402 "./util/configparser.y" /* yacc.c:1646  */
+  case 288:
+#line 1414 "./util/configparser.y" /* yacc.c:1646  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -3692,11 +3711,11 @@ yyreduce:
                        }
                }
        }
-#line 3696 "util/configparser.c" /* yacc.c:1646  */
+#line 3715 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 287:
-#line 1421 "./util/configparser.y" /* yacc.c:1646  */
+  case 289:
+#line 1433 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
@@ -3707,11 +3726,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3711 "util/configparser.c" /* yacc.c:1646  */
+#line 3730 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 288:
-#line 1433 "./util/configparser.y" /* yacc.c:1646  */
+  case 290:
+#line 1445 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
@@ -3722,11 +3741,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3726 "util/configparser.c" /* yacc.c:1646  */
+#line 3745 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 289:
-#line 1445 "./util/configparser.y" /* yacc.c:1646  */
+  case 291:
+#line 1457 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
@@ -3737,11 +3756,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3741 "util/configparser.c" /* yacc.c:1646  */
+#line 3760 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 290:
-#line 1457 "./util/configparser.y" /* yacc.c:1646  */
+  case 292:
+#line 1469 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
@@ -3751,11 +3770,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3755 "util/configparser.c" /* yacc.c:1646  */
+#line 3774 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 291:
-#line 1468 "./util/configparser.y" /* yacc.c:1646  */
+  case 293:
+#line 1480 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3763,22 +3782,22 @@ yyreduce:
                else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3767 "util/configparser.c" /* yacc.c:1646  */
+#line 3786 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 292:
-#line 1477 "./util/configparser.y" /* yacc.c:1646  */
+  case 294:
+#line 1489 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
                if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
                        yyerror("memory size expected");
                free((yyvsp[0].str));
        }
-#line 3778 "util/configparser.c" /* yacc.c:1646  */
+#line 3797 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 293:
-#line 1485 "./util/configparser.y" /* yacc.c:1646  */
+  case 295:
+#line 1497 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3790,11 +3809,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3794 "util/configparser.c" /* yacc.c:1646  */
+#line 3813 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 294:
-#line 1498 "./util/configparser.y" /* yacc.c:1646  */
+  case 296:
+#line 1510 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -3806,11 +3825,11 @@ yyreduce:
                                        "ratelimit-for-domain");
                }
        }
-#line 3810 "util/configparser.c" /* yacc.c:1646  */
+#line 3829 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 295:
-#line 1511 "./util/configparser.y" /* yacc.c:1646  */
+  case 297:
+#line 1523 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -3822,11 +3841,11 @@ yyreduce:
                                        "ratelimit-below-domain");
                }
        }
-#line 3826 "util/configparser.c" /* yacc.c:1646  */
+#line 3845 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 296:
-#line 1524 "./util/configparser.y" /* yacc.c:1646  */
+  case 298:
+#line 1536 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); 
                if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3834,11 +3853,11 @@ yyreduce:
                else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3838 "util/configparser.c" /* yacc.c:1646  */
+#line 3857 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 297:
-#line 1533 "./util/configparser.y" /* yacc.c:1646  */
+  case 299:
+#line 1545 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3847,11 +3866,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3851 "util/configparser.c" /* yacc.c:1646  */
+#line 3870 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 298:
-#line 1543 "./util/configparser.y" /* yacc.c:1646  */
+  case 300:
+#line 1555 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3860,11 +3879,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3864 "util/configparser.c" /* yacc.c:1646  */
+#line 3883 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 299:
-#line 1553 "./util/configparser.y" /* yacc.c:1646  */
+  case 301:
+#line 1565 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->stubs->name)
@@ -3873,31 +3892,31 @@ yyreduce:
                free(cfg_parser->cfg->stubs->name);
                cfg_parser->cfg->stubs->name = (yyvsp[0].str);
        }
-#line 3877 "util/configparser.c" /* yacc.c:1646  */
+#line 3896 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 300:
-#line 1563 "./util/configparser.y" /* yacc.c:1646  */
+  case 302:
+#line 1575 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3887 "util/configparser.c" /* yacc.c:1646  */
+#line 3906 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 301:
-#line 1570 "./util/configparser.y" /* yacc.c:1646  */
+  case 303:
+#line 1582 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3897 "util/configparser.c" /* yacc.c:1646  */
+#line 3916 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 302:
-#line 1577 "./util/configparser.y" /* yacc.c:1646  */
+  case 304:
+#line 1589 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3905,11 +3924,11 @@ yyreduce:
                else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3909 "util/configparser.c" /* yacc.c:1646  */
+#line 3928 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 303:
-#line 1586 "./util/configparser.y" /* yacc.c:1646  */
+  case 305:
+#line 1598 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3918,11 +3937,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3922 "util/configparser.c" /* yacc.c:1646  */
+#line 3941 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 304:
-#line 1596 "./util/configparser.y" /* yacc.c:1646  */
+  case 306:
+#line 1608 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->forwards->name)
@@ -3931,31 +3950,31 @@ yyreduce:
                free(cfg_parser->cfg->forwards->name);
                cfg_parser->cfg->forwards->name = (yyvsp[0].str);
        }
-#line 3935 "util/configparser.c" /* yacc.c:1646  */
+#line 3954 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 305:
-#line 1606 "./util/configparser.y" /* yacc.c:1646  */
+  case 307:
+#line 1618 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3945 "util/configparser.c" /* yacc.c:1646  */
+#line 3964 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 306:
-#line 1613 "./util/configparser.y" /* yacc.c:1646  */
+  case 308:
+#line 1625 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 3955 "util/configparser.c" /* yacc.c:1646  */
+#line 3974 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 307:
-#line 1620 "./util/configparser.y" /* yacc.c:1646  */
+  case 309:
+#line 1632 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3963,11 +3982,11 @@ yyreduce:
                else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3967 "util/configparser.c" /* yacc.c:1646  */
+#line 3986 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 308:
-#line 1629 "./util/configparser.y" /* yacc.c:1646  */
+  case 310:
+#line 1641 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->views->name)
@@ -3976,11 +3995,11 @@ yyreduce:
                free(cfg_parser->cfg->views->name);
                cfg_parser->cfg->views->name = (yyvsp[0].str);
        }
-#line 3980 "util/configparser.c" /* yacc.c:1646  */
+#line 3999 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 309:
-#line 1639 "./util/configparser.y" /* yacc.c:1646  */
+  case 311:
+#line 1651 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -4008,11 +4027,11 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 4012 "util/configparser.c" /* yacc.c:1646  */
+#line 4031 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 310:
-#line 1668 "./util/configparser.y" /* yacc.c:1646  */
+  case 312:
+#line 1680 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
@@ -4020,11 +4039,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 4024 "util/configparser.c" /* yacc.c:1646  */
+#line 4043 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 311:
-#line 1677 "./util/configparser.y" /* yacc.c:1646  */
+  case 313:
+#line 1689 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4032,19 +4051,19 @@ yyreduce:
                else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4036 "util/configparser.c" /* yacc.c:1646  */
+#line 4055 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 312:
-#line 1686 "./util/configparser.y" /* yacc.c:1646  */
+  case 314:
+#line 1698 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
-#line 4044 "util/configparser.c" /* yacc.c:1646  */
+#line 4063 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 323:
-#line 1697 "./util/configparser.y" /* yacc.c:1646  */
+  case 325:
+#line 1709 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4053,11 +4072,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4057 "util/configparser.c" /* yacc.c:1646  */
+#line 4076 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 324:
-#line 1707 "./util/configparser.y" /* yacc.c:1646  */
+  case 326:
+#line 1719 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -4065,21 +4084,21 @@ yyreduce:
                else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4069 "util/configparser.c" /* yacc.c:1646  */
+#line 4088 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 325:
-#line 1716 "./util/configparser.y" /* yacc.c:1646  */
+  case 327:
+#line 1728 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
                        yyerror("out of memory");
        }
-#line 4079 "util/configparser.c" /* yacc.c:1646  */
+#line 4098 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 326:
-#line 1723 "./util/configparser.y" /* yacc.c:1646  */
+  case 328:
+#line 1735 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4088,122 +4107,122 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4092 "util/configparser.c" /* yacc.c:1646  */
+#line 4111 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 327:
-#line 1733 "./util/configparser.y" /* yacc.c:1646  */
+  case 329:
+#line 1745 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->server_key_file);
                cfg_parser->cfg->server_key_file = (yyvsp[0].str);
        }
-#line 4102 "util/configparser.c" /* yacc.c:1646  */
+#line 4121 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 328:
-#line 1740 "./util/configparser.y" /* yacc.c:1646  */
+  case 330:
+#line 1752 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->server_cert_file);
                cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
        }
-#line 4112 "util/configparser.c" /* yacc.c:1646  */
+#line 4131 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 329:
-#line 1747 "./util/configparser.y" /* yacc.c:1646  */
+  case 331:
+#line 1759 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->control_key_file);
                cfg_parser->cfg->control_key_file = (yyvsp[0].str);
        }
-#line 4122 "util/configparser.c" /* yacc.c:1646  */
+#line 4141 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 330:
-#line 1754 "./util/configparser.y" /* yacc.c:1646  */
+  case 332:
+#line 1766 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->control_cert_file);
                cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
        }
-#line 4132 "util/configparser.c" /* yacc.c:1646  */
+#line 4151 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 331:
-#line 1761 "./util/configparser.y" /* yacc.c:1646  */
+  case 333:
+#line 1773 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("\nP(dnstap:)\n"));
        }
-#line 4140 "util/configparser.c" /* yacc.c:1646  */
+#line 4159 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 346:
-#line 1778 "./util/configparser.y" /* yacc.c:1646  */
+  case 348:
+#line 1790 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4151 "util/configparser.c" /* yacc.c:1646  */
+#line 4170 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 347:
-#line 1786 "./util/configparser.y" /* yacc.c:1646  */
+  case 349:
+#line 1798 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_socket_path);
                cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
        }
-#line 4161 "util/configparser.c" /* yacc.c:1646  */
+#line 4180 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 348:
-#line 1793 "./util/configparser.y" /* yacc.c:1646  */
+  case 350:
+#line 1805 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4172 "util/configparser.c" /* yacc.c:1646  */
+#line 4191 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 349:
-#line 1801 "./util/configparser.y" /* yacc.c:1646  */
+  case 351:
+#line 1813 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
                        yyerror("expected yes or no.");
                else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4183 "util/configparser.c" /* yacc.c:1646  */
+#line 4202 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 350:
-#line 1809 "./util/configparser.y" /* yacc.c:1646  */
+  case 352:
+#line 1821 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_identity);
                cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
        }
-#line 4193 "util/configparser.c" /* yacc.c:1646  */
+#line 4212 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 351:
-#line 1816 "./util/configparser.y" /* yacc.c:1646  */
+  case 353:
+#line 1828 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->dnstap_version);
                cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
        }
-#line 4203 "util/configparser.c" /* yacc.c:1646  */
+#line 4222 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 352:
-#line 1823 "./util/configparser.y" /* yacc.c:1646  */
+  case 354:
+#line 1835 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4211,11 +4230,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_resolver_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4215 "util/configparser.c" /* yacc.c:1646  */
+#line 4234 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 353:
-#line 1832 "./util/configparser.y" /* yacc.c:1646  */
+  case 355:
+#line 1844 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4223,11 +4242,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_resolver_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4227 "util/configparser.c" /* yacc.c:1646  */
+#line 4246 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 354:
-#line 1841 "./util/configparser.y" /* yacc.c:1646  */
+  case 356:
+#line 1853 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4235,11 +4254,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_client_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4239 "util/configparser.c" /* yacc.c:1646  */
+#line 4258 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 355:
-#line 1850 "./util/configparser.y" /* yacc.c:1646  */
+  case 357:
+#line 1862 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4247,11 +4266,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_client_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4251 "util/configparser.c" /* yacc.c:1646  */
+#line 4270 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 356:
-#line 1859 "./util/configparser.y" /* yacc.c:1646  */
+  case 358:
+#line 1871 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4259,11 +4278,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4263 "util/configparser.c" /* yacc.c:1646  */
+#line 4282 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 357:
-#line 1868 "./util/configparser.y" /* yacc.c:1646  */
+  case 359:
+#line 1880 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4271,29 +4290,29 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4275 "util/configparser.c" /* yacc.c:1646  */
+#line 4294 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 358:
-#line 1877 "./util/configparser.y" /* yacc.c:1646  */
+  case 360:
+#line 1889 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(python:)\n")); 
        }
-#line 4283 "util/configparser.c" /* yacc.c:1646  */
+#line 4302 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 362:
-#line 1886 "./util/configparser.y" /* yacc.c:1646  */
+  case 364:
+#line 1898 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->python_script);
                cfg_parser->cfg->python_script = (yyvsp[0].str);
        }
-#line 4293 "util/configparser.c" /* yacc.c:1646  */
+#line 4312 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 363:
-#line 1892 "./util/configparser.y" /* yacc.c:1646  */
+  case 365:
+#line 1904 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
                if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4302,11 +4321,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4306 "util/configparser.c" /* yacc.c:1646  */
+#line 4325 "util/configparser.c" /* yacc.c:1646  */
     break;
 
 
-#line 4310 "util/configparser.c" /* yacc.c:1646  */
+#line 4329 "util/configparser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4534,7 +4553,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1900 "./util/configparser.y" /* yacc.c:1906  */
+#line 1912 "./util/configparser.y" /* yacc.c:1906  */
 
 
 /* parse helper routines could be here */
index 844961ded3bd427dce6975b1a107780668bc771c..d1aa32b7264044a3ba073d934a6189cbb33728c1 100644 (file)
@@ -221,7 +221,8 @@ extern int yydebug;
     VAR_VIEW = 431,
     VAR_ACCESS_CONTROL_VIEW = 432,
     VAR_VIEW_FIRST = 433,
-    VAR_SERVE_EXPIRED = 434
+    VAR_SERVE_EXPIRED = 434,
+    VAR_FAKE_DSA = 435
   };
 #endif
 /* Tokens.  */
@@ -402,6 +403,7 @@ extern int yydebug;
 #define VAR_ACCESS_CONTROL_VIEW 432
 #define VAR_VIEW_FIRST 433
 #define VAR_SERVE_EXPIRED 434
+#define VAR_FAKE_DSA 435
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -412,7 +414,7 @@ union YYSTYPE
 
        char*   str;
 
-#line 416 "util/configparser.h" /* yacc.c:1909  */
+#line 418 "util/configparser.h" /* yacc.c:1909  */
 };
 
 typedef union YYSTYPE YYSTYPE;
index 38dc53f8fb9fa0814dc1f3c6bc58d48d048765ea..6ac12b5f9ec256c5ebbf91fd14812d2516401ed7 100644 (file)
@@ -129,7 +129,7 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_DEFINE_TAG VAR_LOCAL_ZONE_TAG VAR_ACCESS_CONTROL_TAG
 %token VAR_LOCAL_ZONE_OVERRIDE VAR_ACCESS_CONTROL_TAG_ACTION
 %token VAR_ACCESS_CONTROL_TAG_DATA VAR_VIEW VAR_ACCESS_CONTROL_VIEW
-%token VAR_VIEW_FIRST VAR_SERVE_EXPIRED
+%token VAR_VIEW_FIRST VAR_SERVE_EXPIRED VAR_FAKE_DSA
 
 %%
 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -203,7 +203,8 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_disable_dnssec_lame_check | server_access_control_tag |
        server_local_zone_override | server_access_control_tag_action |
        server_access_control_tag_data | server_access_control_view |
-       server_qname_minimisation_strict | server_serve_expired
+       server_qname_minimisation_strict | server_serve_expired |
+       server_fake_dsa
        ;
 stubstart: VAR_STUB_ZONE
        {
@@ -1191,6 +1192,17 @@ server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG
                free($2);
        }
        ;
+server_fake_dsa: VAR_FAKE_DSA STRING_ARG
+       {
+               OUTYY(("P(server_fake_dsa:%s)\n", $2));
+               if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+                       yyerror("expected yes or no.");
+               else fake_dsa = (strcmp($2, "yes")==0);
+               if(fake_dsa)
+                       log_warn("test option fake_dsa is enabled");
+               free($2);
+       }
+       ;
 server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG
        {
                OUTYY(("P(server_val_log_level:%s)\n", $2));
index e3a1555257f62ed71cc6274329e5e0fae6915b9e..a66dfcbb5b15ec3dd81ef29e80193fe7a4d39c62 100644 (file)
@@ -72,6 +72,9 @@
 #include <openssl/engine.h>
 #endif
 
+/** fake DSA support for unit tests */
+int fake_dsa = 0;
+
 /* return size of digest if supported, or 0 otherwise */
 size_t
 nsec3_hash_algo_size_supported(int id)
@@ -192,9 +195,13 @@ dnskey_algo_id_is_supported(int id)
        case LDNS_RSAMD5:
                /* RFC 6725 deprecates RSAMD5 */
                return 0;
-#ifdef USE_DSA
        case LDNS_DSA:
        case LDNS_DSA_NSEC3:
+#ifdef USE_DSA
+               return 1;
+#else
+               if(fake_dsa) return 1;
+               return 0;
 #endif
        case LDNS_RSASHA1:
        case LDNS_RSASHA1_NSEC3:
@@ -545,6 +552,11 @@ verify_canonrrset(sldns_buffer* buf, int algo, unsigned char* sigblock,
        EVP_MD_CTX* ctx;
        int res, dofree = 0, docrypto_free = 0;
        EVP_PKEY *evp_key = NULL;
+
+#ifndef USE_DSA
+       if((algo == LDNS_DSA || algo == LDNS_DSA_NSEC3) && fake_dsa)
+               return sec_status_secure;
+#endif
        
        if(!setup_key_digest(algo, &evp_key, &digest_type, key, keylen)) {
                verbose(VERB_QUERY, "verify: failed to setup key");