stable-2.02 - tests: skip test when dm-delay is not available
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=62888e9c7692443066e...
Commit: 62888e9c7692443066e90494764791753277f02e
Parent: 5ab4d44a3b05cf77836b3be2c812a738131367ae
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Jan 21 16:49:53 2020 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Jan 21 16:49:53 2020 +0100
tests: skip test when dm-delay is not available
---
test/shell/pv-corruption.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/test/shell/pv-corruption.sh b/test/shell/pv-corruption.sh
index 3958ee1..b3c5059 100644
--- a/test/shell/pv-corruption.sh
+++ b/test/shell/pv-corruption.sh
@@ -17,6 +17,10 @@ SKIP_WITH_LVMPOLLD=1
. lib/inittest
+# skip test early if there is no 'delay' target available
+aux target_at_least dm-delay 1 1 0 || skip "missing dm-delay target"
+touch HAVE_DM_DELAY
+
#
# Main
#
4 years, 3 months
stable-2.02 - aux: writeerror_dev checks for delay target
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=5ab4d44a3b05cf77836...
Commit: 5ab4d44a3b05cf77836b3be2c812a738131367ae
Parent: f8ef0307372f13e1a5e74bd5741898f343c520bd
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Jan 21 16:49:34 2020 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Jan 21 16:49:34 2020 +0100
aux: writeerror_dev checks for delay target
---
test/lib/aux.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index b90063d..7a8d054 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -1137,6 +1137,11 @@ writeerror_dev() {
local name=${PREFIX}-errordev
if test ! -e ERR_DEV; then
+ # delay target is used for error mapping
+ if test ! -f HAVE_DM_DELAY ; then
+ target_at_least dm-delay 1 1 0 || return 0
+ touch HAVE_DM_DELAY
+ fi
dmsetup create -u "TEST-$name" "$name" --table "0 4611686018427387904 error"
# Take major:minor of our error device
echo "$name" > ERR_DEV_NAME
4 years, 3 months
stable-2.02 - tests: add corruption write on PV test
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=c66e01569862a421d13...
Commit: c66e01569862a421d137eedbf9e6abe4e1152853
Parent: 9b41118b9c8fed755eaabb1b0833f2518ddf1c36
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Mon Jan 20 14:16:13 2020 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jan 20 15:21:38 2020 +0100
tests: add corruption write on PV test
Test a case where PV is readable, but fails on write updating.
Check the failure is reported only for a single PV.
---
test/shell/pv-corruption.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/test/shell/pv-corruption.sh b/test/shell/pv-corruption.sh
new file mode 100644
index 0000000..3958ee1
--- /dev/null
+++ b/test/shell/pv-corruption.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2020 Red Hat, Inc. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions
+# of the GNU General Public License v.2.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# tests, write failer on PV1 is not reporting errors on PV2 or PV3...
+
+SKIP_WITH_LVMLOCKD=1
+SKIP_WITH_LVMPOLLD=1
+
+. lib/inittest
+
+#
+# Main
+#
+aux prepare_devs 3 20
+
+pvcreate -y --setphysicalvolumesize 10m "$dev1"
+pvcreate "$dev2"
+pvcreate "$dev3"
+
+vgcreate $vg "$dev1" "$dev2" "$dev3"
+
+pvs -o +uuid
+
+# Keep device readable, but any write fails
+aux writeerror_dev "$dev1" 0:100
+
+# Suppose to fail, size PV1 is not writable
+not pvresize "$dev1" 2>&1 | tee out
+
+# Output should not complain about any error on pv2 nor pv3
+not grep pv2 out
+not grep pv3 out
+
+# Restore working PV1 back
+aux enable_dev "$dev1"
+
+# FIXME: Takes a lot of time ATM....
+pvck "$dev2"
+
+pvs -o +uuid
+vgdisplay
+
+vgremove $vg
4 years, 3 months
stable-2.02 - raid: more limitted prohibition of stacked raid usage
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f8ef0307372f13e1a5e...
Commit: f8ef0307372f13e1a5e74bd5741898f343c520bd
Parent: c66e01569862a421d137eedbf9e6abe4e1152853
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu Jan 16 16:43:55 2020 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jan 20 15:21:38 2020 +0100
raid: more limitted prohibition of stacked raid usage
We actually need to prohibit only reshaping cases which are
running over multiple commands.
---
lib/metadata/raid_manip.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index 548faf1..0b0c091 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -6216,6 +6216,13 @@ static int _set_convenient_raid145610_segtype_to(const struct lv_segment *seg_fr
if (seg_flag) {
if (!(*segtype = get_segtype_from_flag(cmd, seg_flag)))
return_0;
+
+ /* FIXME Can't reshape volume in use - aka not toplevel devices */
+ if (!dm_list_empty(&seg_from->lv->segs_using_this_lv)) {
+ log_error("Can't reshape stacked volume %s.", display_lvname(seg_from->lv));
+ return 0;
+ }
+
if (segtype_sav != *segtype) {
log_warn("Replaced LV type %s%s with possible type %s.",
segtype_sav->name, _get_segtype_alias_str(seg_from->lv, segtype_sav),
@@ -6444,12 +6451,6 @@ int lv_raid_convert(struct logical_volume *lv,
uint32_t available_slvs, removed_slvs;
takeover_fn_t takeover_fn;
- /* FIXME Can't reshape volume in use - aka not toplevel devices */
- if (!dm_list_empty(&lv->segs_using_this_lv)) {
- log_error("Can't reshape stacked volume %s.", display_lvname(lv));
- return 0;
- }
-
/* FIXME If not active, prompt and activate */
/* FIXME Some operations do not require the LV to be active */
/* LV must be active to perform raid conversion operations */
4 years, 3 months
stable-2.02 - tests: writeerror_dev
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=9b41118b9c8fed755ea...
Commit: 9b41118b9c8fed755eaabb1b0833f2518ddf1c36
Parent: 440ced192a5ae6d5fa7c191981abcdf59926e90b
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Mon Jan 20 13:15:46 2020 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jan 20 15:21:38 2020 +0100
tests: writeerror_dev
Intruduce aux function for easy simulation of disk areas,
that are 'normally' readable, but will fail on write.
---
test/lib/aux.sh | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index ec0699f..b90063d 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -564,6 +564,8 @@ teardown() {
echo -n "## teardown..."
unset LVM_LOG_FILE_EPOCH
+ test ! -f ERR_DEV || should dmsetup remove $(cat ERR_DEV_NAME)
+
if test -f TESTNAME ; then
if test ! -f SKIP_THIS_TEST ; then
@@ -985,6 +987,8 @@ common_dev_() {
case "$tgtype" in
delay)
echo "$from $len delay $pvdev $(( pos + offset )) $read_ms $pvdev $(( pos + offset )) $write_ms" ;;
+ writeerror)
+ echo "$from $len delay $pvdev $(( pos + offset )) 0 $(cat ERR_DEV) 0 0" ;;
error|zero)
echo "$from $len $tgtype" ;;
esac
@@ -1125,6 +1129,24 @@ error_dev() {
}
#
+# Convert device to device with write errors but normal reads.
+# For this 'delay' dev is used and reroutes 'reads' back to original device
+# and for writes it will use extra new TEST-errordev (huge error target)
+# i.e. writeerror_dev "$dev1" 8:32
+writeerror_dev() {
+ local name=${PREFIX}-errordev
+
+ if test ! -e ERR_DEV; then
+ dmsetup create -u "TEST-$name" "$name" --table "0 4611686018427387904 error"
+ # Take major:minor of our error device
+ echo "$name" > ERR_DEV_NAME
+ dmsetup info -c --noheadings -o major,minor "$name" > ERR_DEV
+ fi
+
+ common_dev_ writeerror "$@"
+}
+
+#
# Convert existing device to a device with zero segments
# Takes the list of pairs of zero segment from:len
# Combination with error or delay is unsupported
4 years, 3 months
stable-2.02 - base: Get Makefile from master
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=440ced192a5ae6d5fa7...
Commit: 440ced192a5ae6d5fa7c191981abcdf59926e90b
Parent: d20490f76dd5a82b5fe61adc1c4e8044593e1c98
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Mon Jan 20 14:36:16 2020 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Mon Jan 20 14:48:58 2020 +0100
base: Get Makefile from master
---
base/Makefile | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/base/Makefile b/base/Makefile
new file mode 100644
index 000000000..056ea5910
--- /dev/null
+++ b/base/Makefile
@@ -0,0 +1,38 @@
+# Copyright (C) 2018 Red Hat, Inc. All rights reserved.
+#
+# This file is part of the device-mapper userspace tools.
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions
+# of the GNU Lesser General Public License v.2.1.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# Uncomment this to build the simple radix tree. You'll need to make clean too.
+# Comment to build the advanced radix tree.
+#base/data-struct/radix-tree.o: CFLAGS += -DSIMPLE_RADIX_TREE
+
+# NOTE: this Makefile only works as 'include' for toplevel Makefile
+# which defined all top_* variables
+
+BASE_SOURCE=\
+ base/data-struct/radix-tree.c
+
+BASE_TARGET = base/libbase.a
+BASE_DEPENDS = $(BASE_SOURCE:%.c=%.d)
+BASE_OBJECTS = $(BASE_SOURCE:%.c=%.o)
+CLEAN_TARGETS += $(BASE_DEPENDS) $(BASE_OBJECTS) \
+ $(BASE_SOURCE:%.c=%.gcda) \
+ $(BASE_SOURCE:%.c=%.gcno) \
+ $(BASE_TARGET)
+
+$(BASE_TARGET): $(BASE_OBJECTS)
+ @echo " [AR] $@"
+ $(Q) $(RM) $@
+ $(Q) $(AR) rsv $@ $(BASE_OBJECTS) > /dev/null
+
+ifeq ("$(DEPENDS)","yes")
+-include $(BASE_DEPENDS)
+endif
4 years, 3 months
stable-2.02 - [radix-tree] Add missing test case
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=d20490f76dd5a82b5fe...
Commit: d20490f76dd5a82b5fe61adc1c4e8044593e1c98
Parent: 019fa6f8eec799ebc7a9b9c5b31354ff1717db12
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Thu Jan 16 15:25:18 2020 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Thu Jan 16 15:25:18 2020 +0000
[radix-tree] Add missing test case
---
test/unit/rt_case1.c | 1669 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1669 insertions(+)
diff --git a/test/unit/rt_case1.c b/test/unit/rt_case1.c
new file mode 100644
index 000000000..c1677d185
--- /dev/null
+++ b/test/unit/rt_case1.c
@@ -0,0 +1,1669 @@
+ __lookup_fails(rt, 6, 0);
+ __insert(rt, 6, 0, 0);
+ __lookup_fails(rt, 7, 0);
+ __insert(rt, 7, 0, 1);
+ __lookup_fails(rt, 8, 0);
+ __insert(rt, 8, 0, 2);
+ __lookup_fails(rt, 9, 0);
+ __insert(rt, 9, 0, 3);
+ __lookup_fails(rt, 10, 0);
+ __insert(rt, 10, 0, 4);
+ __lookup_fails(rt, 11, 0);
+ __insert(rt, 11, 0, 5);
+ __lookup_fails(rt, 12, 0);
+ __insert(rt, 12, 0, 6);
+ __lookup_fails(rt, 13, 0);
+ __insert(rt, 13, 0, 7);
+ __lookup_fails(rt, 14, 0);
+ __insert(rt, 14, 0, 8);
+ __lookup_fails(rt, 15, 0);
+ __insert(rt, 15, 0, 9);
+ __lookup_fails(rt, 16, 0);
+ __insert(rt, 16, 0, 10);
+ __lookup_fails(rt, 17, 0);
+ __insert(rt, 17, 0, 11);
+ __lookup_fails(rt, 18, 0);
+ __insert(rt, 18, 0, 12);
+ __lookup_fails(rt, 19, 0);
+ __insert(rt, 19, 0, 13);
+ __lookup_fails(rt, 20, 0);
+ __insert(rt, 20, 0, 14);
+ __lookup_fails(rt, 21, 0);
+ __insert(rt, 21, 0, 15);
+ __lookup_fails(rt, 22, 0);
+ __insert(rt, 22, 0, 16);
+ __lookup_fails(rt, 23, 0);
+ __insert(rt, 23, 0, 17);
+ __lookup_fails(rt, 24, 0);
+ __insert(rt, 24, 0, 18);
+ __lookup_fails(rt, 25, 0);
+ __insert(rt, 25, 0, 19);
+ __lookup_fails(rt, 26, 0);
+ __insert(rt, 26, 0, 20);
+ __lookup_fails(rt, 27, 0);
+ __insert(rt, 27, 0, 21);
+ __lookup_fails(rt, 28, 0);
+ __insert(rt, 28, 0, 22);
+ __lookup_fails(rt, 29, 0);
+ __insert(rt, 29, 0, 23);
+ __lookup_fails(rt, 30, 0);
+ __insert(rt, 30, 0, 24);
+ __lookup_fails(rt, 31, 0);
+ __insert(rt, 31, 0, 25);
+ __lookup_fails(rt, 32, 0);
+ __insert(rt, 32, 0, 26);
+ __lookup_fails(rt, 33, 0);
+ __insert(rt, 33, 0, 27);
+ __lookup_fails(rt, 34, 0);
+ __insert(rt, 34, 0, 28);
+ __lookup_fails(rt, 35, 0);
+ __insert(rt, 35, 0, 29);
+ __lookup_fails(rt, 36, 0);
+ __insert(rt, 36, 0, 30);
+ __lookup_fails(rt, 37, 0);
+ __insert(rt, 37, 0, 31);
+ __lookup_fails(rt, 38, 0);
+ __insert(rt, 38, 0, 32);
+ __lookup_fails(rt, 39, 0);
+ __insert(rt, 39, 0, 33);
+ __lookup_fails(rt, 40, 0);
+ __insert(rt, 40, 0, 34);
+ __lookup_fails(rt, 41, 0);
+ __insert(rt, 41, 0, 35);
+ __lookup_fails(rt, 42, 0);
+ __insert(rt, 42, 0, 36);
+ __lookup_fails(rt, 43, 0);
+ __insert(rt, 43, 0, 37);
+ __lookup_fails(rt, 44, 0);
+ __insert(rt, 44, 0, 38);
+ __lookup_fails(rt, 45, 0);
+ __insert(rt, 45, 0, 39);
+ __lookup_fails(rt, 46, 0);
+ __insert(rt, 46, 0, 40);
+ __lookup_fails(rt, 47, 0);
+ __insert(rt, 47, 0, 41);
+ __lookup_fails(rt, 48, 0);
+ __insert(rt, 48, 0, 42);
+ __lookup_fails(rt, 49, 0);
+ __insert(rt, 49, 0, 43);
+ __lookup_fails(rt, 50, 0);
+ __insert(rt, 50, 0, 44);
+ __lookup_fails(rt, 51, 0);
+ __insert(rt, 51, 0, 45);
+ __lookup_fails(rt, 52, 0);
+ __insert(rt, 52, 0, 46);
+ __lookup_fails(rt, 53, 0);
+ __insert(rt, 53, 0, 47);
+ __lookup_fails(rt, 54, 0);
+ __insert(rt, 54, 0, 48);
+ __lookup_fails(rt, 55, 0);
+ __insert(rt, 55, 0, 49);
+ __lookup_fails(rt, 56, 0);
+ __insert(rt, 56, 0, 50);
+ __lookup_fails(rt, 57, 0);
+ __insert(rt, 57, 0, 51);
+ __lookup_fails(rt, 58, 0);
+ __insert(rt, 58, 0, 52);
+ __lookup_fails(rt, 59, 0);
+ __insert(rt, 59, 0, 53);
+ __lookup_fails(rt, 60, 0);
+ __insert(rt, 60, 0, 54);
+ __lookup_fails(rt, 61, 0);
+ __insert(rt, 61, 0, 55);
+ __lookup_fails(rt, 62, 0);
+ __insert(rt, 62, 0, 56);
+ __lookup_fails(rt, 63, 0);
+ __insert(rt, 63, 0, 57);
+ __lookup_fails(rt, 64, 0);
+ __insert(rt, 64, 0, 58);
+ __lookup_fails(rt, 65, 0);
+ __insert(rt, 65, 0, 59);
+ __lookup_fails(rt, 66, 0);
+ __insert(rt, 66, 0, 60);
+ __lookup_fails(rt, 67, 0);
+ __insert(rt, 67, 0, 61);
+ __lookup_fails(rt, 68, 0);
+ __insert(rt, 68, 0, 62);
+ __lookup_fails(rt, 69, 0);
+ __insert(rt, 69, 0, 63);
+ __lookup_fails(rt, 70, 0);
+ __insert(rt, 70, 0, 64);
+ __lookup_fails(rt, 71, 0);
+ __insert(rt, 71, 0, 65);
+ __lookup_fails(rt, 72, 0);
+ __insert(rt, 72, 0, 66);
+ __lookup_fails(rt, 73, 0);
+ __insert(rt, 73, 0, 67);
+ __lookup_fails(rt, 74, 0);
+ __insert(rt, 74, 0, 68);
+ __lookup_fails(rt, 75, 0);
+ __insert(rt, 75, 0, 69);
+ __lookup_fails(rt, 76, 0);
+ __insert(rt, 76, 0, 70);
+ __lookup_fails(rt, 77, 0);
+ __insert(rt, 77, 0, 71);
+ __lookup_fails(rt, 78, 0);
+ __insert(rt, 78, 0, 72);
+ __lookup_fails(rt, 79, 0);
+ __insert(rt, 79, 0, 73);
+ __lookup_fails(rt, 80, 0);
+ __insert(rt, 80, 0, 74);
+ __lookup_fails(rt, 81, 0);
+ __insert(rt, 81, 0, 75);
+ __lookup_fails(rt, 82, 0);
+ __insert(rt, 82, 0, 76);
+ __lookup_fails(rt, 83, 0);
+ __insert(rt, 83, 0, 77);
+ __lookup_fails(rt, 84, 0);
+ __insert(rt, 84, 0, 78);
+ __lookup_fails(rt, 85, 0);
+ __insert(rt, 85, 0, 79);
+ __lookup_fails(rt, 86, 0);
+ __insert(rt, 86, 0, 80);
+ __lookup_fails(rt, 87, 0);
+ __insert(rt, 87, 0, 81);
+ __lookup_fails(rt, 88, 0);
+ __insert(rt, 88, 0, 82);
+ __lookup_fails(rt, 89, 0);
+ __insert(rt, 89, 0, 83);
+ __lookup_fails(rt, 90, 0);
+ __insert(rt, 90, 0, 84);
+ __lookup_fails(rt, 91, 0);
+ __insert(rt, 91, 0, 85);
+ __lookup_fails(rt, 92, 0);
+ __insert(rt, 92, 0, 86);
+ __lookup_fails(rt, 93, 0);
+ __insert(rt, 93, 0, 87);
+ __lookup_fails(rt, 94, 0);
+ __insert(rt, 94, 0, 88);
+ __lookup_fails(rt, 95, 0);
+ __insert(rt, 95, 0, 89);
+ __lookup_fails(rt, 96, 0);
+ __insert(rt, 96, 0, 90);
+ __lookup_fails(rt, 97, 0);
+ __insert(rt, 97, 0, 91);
+ __lookup_fails(rt, 98, 0);
+ __insert(rt, 98, 0, 92);
+ __lookup_fails(rt, 99, 0);
+ __insert(rt, 99, 0, 93);
+ __lookup_fails(rt, 100, 0);
+ __insert(rt, 100, 0, 94);
+ __lookup_fails(rt, 101, 0);
+ __insert(rt, 101, 0, 95);
+ __lookup_fails(rt, 102, 0);
+ __insert(rt, 102, 0, 96);
+ __lookup_fails(rt, 103, 0);
+ __insert(rt, 103, 0, 97);
+ __lookup_fails(rt, 104, 0);
+ __insert(rt, 104, 0, 98);
+ __lookup_fails(rt, 105, 0);
+ __insert(rt, 105, 0, 99);
+ __lookup_fails(rt, 106, 0);
+ __insert(rt, 106, 0, 100);
+ __lookup_fails(rt, 107, 0);
+ __insert(rt, 107, 0, 101);
+ __lookup_fails(rt, 108, 0);
+ __insert(rt, 108, 0, 102);
+ __lookup_fails(rt, 109, 0);
+ __insert(rt, 109, 0, 103);
+ __lookup_fails(rt, 110, 0);
+ __insert(rt, 110, 0, 104);
+ __lookup_fails(rt, 111, 0);
+ __insert(rt, 111, 0, 105);
+ __lookup_fails(rt, 112, 0);
+ __insert(rt, 112, 0, 106);
+ __lookup_fails(rt, 113, 0);
+ __insert(rt, 113, 0, 107);
+ __lookup_fails(rt, 114, 0);
+ __insert(rt, 114, 0, 108);
+ __lookup_fails(rt, 115, 0);
+ __insert(rt, 115, 0, 109);
+ __lookup_fails(rt, 116, 0);
+ __insert(rt, 116, 0, 110);
+ __lookup_fails(rt, 117, 0);
+ __insert(rt, 117, 0, 111);
+ __lookup_fails(rt, 118, 0);
+ __insert(rt, 118, 0, 112);
+ __lookup_fails(rt, 119, 0);
+ __insert(rt, 119, 0, 113);
+ __lookup_fails(rt, 120, 0);
+ __insert(rt, 120, 0, 114);
+ __lookup_fails(rt, 121, 0);
+ __insert(rt, 121, 0, 115);
+ __lookup_fails(rt, 122, 0);
+ __insert(rt, 122, 0, 116);
+ __lookup_fails(rt, 123, 0);
+ __insert(rt, 123, 0, 117);
+ __lookup_fails(rt, 124, 0);
+ __insert(rt, 124, 0, 118);
+ __lookup_fails(rt, 125, 0);
+ __insert(rt, 125, 0, 119);
+ __lookup_fails(rt, 126, 0);
+ __insert(rt, 126, 0, 120);
+ __lookup_fails(rt, 127, 0);
+ __insert(rt, 127, 0, 121);
+ __lookup_fails(rt, 128, 0);
+ __insert(rt, 128, 0, 122);
+ __lookup_fails(rt, 129, 0);
+ __insert(rt, 129, 0, 123);
+ __lookup_fails(rt, 130, 0);
+ __insert(rt, 130, 0, 124);
+ __lookup_fails(rt, 131, 0);
+ __insert(rt, 131, 0, 125);
+ __lookup_fails(rt, 132, 0);
+ __insert(rt, 132, 0, 126);
+ __lookup_fails(rt, 133, 0);
+ __insert(rt, 133, 0, 127);
+ __lookup_fails(rt, 134, 0);
+ __insert(rt, 134, 0, 128);
+ __lookup_fails(rt, 135, 0);
+ __insert(rt, 135, 0, 129);
+ __lookup_fails(rt, 136, 0);
+ __insert(rt, 136, 0, 130);
+ __lookup_fails(rt, 137, 0);
+ __insert(rt, 137, 0, 131);
+ __lookup_fails(rt, 138, 0);
+ __insert(rt, 138, 0, 132);
+ __lookup_fails(rt, 139, 0);
+ __insert(rt, 139, 0, 133);
+ __lookup_fails(rt, 140, 0);
+ __insert(rt, 140, 0, 134);
+ __lookup_fails(rt, 141, 0);
+ __insert(rt, 141, 0, 135);
+ __lookup_fails(rt, 142, 0);
+ __insert(rt, 142, 0, 136);
+ __lookup_fails(rt, 143, 0);
+ __insert(rt, 143, 0, 137);
+ __lookup_fails(rt, 144, 0);
+ __insert(rt, 144, 0, 138);
+ __lookup_fails(rt, 145, 0);
+ __insert(rt, 145, 0, 139);
+ __lookup_fails(rt, 146, 0);
+ __insert(rt, 146, 0, 140);
+ __lookup_fails(rt, 147, 0);
+ __insert(rt, 147, 0, 141);
+ __lookup_fails(rt, 148, 0);
+ __insert(rt, 148, 0, 142);
+ __lookup_fails(rt, 149, 0);
+ __insert(rt, 149, 0, 143);
+ __lookup_fails(rt, 150, 0);
+ __insert(rt, 150, 0, 144);
+ __lookup_fails(rt, 151, 0);
+ __insert(rt, 151, 0, 145);
+ __lookup_fails(rt, 152, 0);
+ __insert(rt, 152, 0, 146);
+ __lookup_fails(rt, 153, 0);
+ __insert(rt, 153, 0, 147);
+ __lookup_fails(rt, 154, 0);
+ __insert(rt, 154, 0, 148);
+ __lookup_fails(rt, 155, 0);
+ __insert(rt, 155, 0, 149);
+ __lookup_fails(rt, 156, 0);
+ __insert(rt, 156, 0, 150);
+ __lookup_fails(rt, 157, 0);
+ __insert(rt, 157, 0, 151);
+ __lookup_fails(rt, 158, 0);
+ __insert(rt, 158, 0, 152);
+ __lookup_fails(rt, 159, 0);
+ __insert(rt, 159, 0, 153);
+ __lookup_fails(rt, 160, 0);
+ __insert(rt, 160, 0, 154);
+ __lookup_fails(rt, 161, 0);
+ __insert(rt, 161, 0, 155);
+ __lookup_fails(rt, 162, 0);
+ __insert(rt, 162, 0, 156);
+ __lookup_fails(rt, 163, 0);
+ __insert(rt, 163, 0, 157);
+ __lookup_fails(rt, 164, 0);
+ __insert(rt, 164, 0, 158);
+ __lookup_fails(rt, 165, 0);
+ __insert(rt, 165, 0, 159);
+ __lookup_fails(rt, 166, 0);
+ __insert(rt, 166, 0, 160);
+ __lookup_fails(rt, 167, 0);
+ __insert(rt, 167, 0, 161);
+ __lookup_fails(rt, 168, 0);
+ __insert(rt, 168, 0, 162);
+ __lookup_fails(rt, 169, 0);
+ __insert(rt, 169, 0, 163);
+ __lookup_fails(rt, 170, 0);
+ __insert(rt, 170, 0, 164);
+ __lookup_fails(rt, 171, 0);
+ __insert(rt, 171, 0, 165);
+ __lookup_fails(rt, 172, 0);
+ __insert(rt, 172, 0, 166);
+ __lookup_fails(rt, 173, 0);
+ __insert(rt, 173, 0, 167);
+ __lookup_fails(rt, 174, 0);
+ __insert(rt, 174, 0, 168);
+ __lookup_fails(rt, 175, 0);
+ __insert(rt, 175, 0, 169);
+ __lookup_fails(rt, 176, 0);
+ __insert(rt, 176, 0, 170);
+ __lookup_fails(rt, 177, 0);
+ __insert(rt, 177, 0, 171);
+ __lookup_fails(rt, 178, 0);
+ __insert(rt, 178, 0, 172);
+ __lookup_fails(rt, 179, 0);
+ __insert(rt, 179, 0, 173);
+ __lookup_fails(rt, 180, 0);
+ __insert(rt, 180, 0, 174);
+ __lookup_fails(rt, 181, 0);
+ __insert(rt, 181, 0, 175);
+ __lookup_fails(rt, 182, 0);
+ __insert(rt, 182, 0, 176);
+ __lookup_fails(rt, 183, 0);
+ __insert(rt, 183, 0, 177);
+ __lookup_fails(rt, 184, 0);
+ __insert(rt, 184, 0, 178);
+ __lookup_fails(rt, 185, 0);
+ __insert(rt, 185, 0, 179);
+ __lookup_fails(rt, 186, 0);
+ __insert(rt, 186, 0, 180);
+ __lookup_fails(rt, 187, 0);
+ __insert(rt, 187, 0, 181);
+ __lookup_fails(rt, 188, 0);
+ __insert(rt, 188, 0, 182);
+ __lookup_fails(rt, 189, 0);
+ __insert(rt, 189, 0, 183);
+ __lookup_fails(rt, 190, 0);
+ __insert(rt, 190, 0, 184);
+ __lookup_fails(rt, 191, 0);
+ __insert(rt, 191, 0, 185);
+ __lookup_fails(rt, 192, 0);
+ __insert(rt, 192, 0, 186);
+ __lookup_fails(rt, 193, 0);
+ __insert(rt, 193, 0, 187);
+ __lookup_fails(rt, 194, 0);
+ __insert(rt, 194, 0, 188);
+ __lookup_fails(rt, 195, 0);
+ __insert(rt, 195, 0, 189);
+ __lookup_fails(rt, 196, 0);
+ __insert(rt, 196, 0, 190);
+ __lookup_fails(rt, 197, 0);
+ __insert(rt, 197, 0, 191);
+ __lookup_fails(rt, 198, 0);
+ __insert(rt, 198, 0, 192);
+ __lookup_fails(rt, 199, 0);
+ __insert(rt, 199, 0, 193);
+ __lookup_fails(rt, 200, 0);
+ __insert(rt, 200, 0, 194);
+ __lookup_fails(rt, 201, 0);
+ __insert(rt, 201, 0, 195);
+ __lookup_fails(rt, 202, 0);
+ __insert(rt, 202, 0, 196);
+ __lookup_fails(rt, 203, 0);
+ __insert(rt, 203, 0, 197);
+ __lookup_fails(rt, 204, 0);
+ __insert(rt, 204, 0, 198);
+ __lookup_fails(rt, 205, 0);
+ __insert(rt, 205, 0, 199);
+ __lookup_matches(rt, 6, 0, 0);
+ __invalidate(rt, 6);
+ __lookup_matches(rt, 7, 0, 1);
+ __invalidate(rt, 7);
+ __lookup_matches(rt, 8, 0, 2);
+ __invalidate(rt, 8);
+ __lookup_matches(rt, 9, 0, 3);
+ __invalidate(rt, 9);
+ __lookup_matches(rt, 10, 0, 4);
+ __invalidate(rt, 10);
+ __lookup_matches(rt, 11, 0, 5);
+ __invalidate(rt, 11);
+ __lookup_matches(rt, 12, 0, 6);
+ __lookup_matches(rt, 13, 0, 7);
+ __invalidate(rt, 13);
+ __lookup_matches(rt, 14, 0, 8);
+ __invalidate(rt, 14);
+ __lookup_matches(rt, 15, 0, 9);
+ __invalidate(rt, 15);
+ __lookup_matches(rt, 16, 0, 10);
+ __invalidate(rt, 16);
+ __lookup_matches(rt, 17, 0, 11);
+ __invalidate(rt, 17);
+ __lookup_matches(rt, 18, 0, 12);
+ __invalidate(rt, 18);
+ __lookup_matches(rt, 19, 0, 13);
+ __invalidate(rt, 19);
+ __lookup_matches(rt, 20, 0, 14);
+ __invalidate(rt, 20);
+ __lookup_matches(rt, 21, 0, 15);
+ __invalidate(rt, 21);
+ __lookup_matches(rt, 22, 0, 16);
+ __invalidate(rt, 22);
+ __lookup_matches(rt, 23, 0, 17);
+ __invalidate(rt, 23);
+ __lookup_matches(rt, 24, 0, 18);
+ __invalidate(rt, 24);
+ __lookup_matches(rt, 25, 0, 19);
+ __invalidate(rt, 25);
+ __lookup_matches(rt, 26, 0, 20);
+ __invalidate(rt, 26);
+ __lookup_matches(rt, 27, 0, 21);
+ __invalidate(rt, 27);
+ __lookup_matches(rt, 28, 0, 22);
+ __invalidate(rt, 28);
+ __lookup_matches(rt, 29, 0, 23);
+ __invalidate(rt, 29);
+ __lookup_matches(rt, 30, 0, 24);
+ __invalidate(rt, 30);
+ __lookup_matches(rt, 31, 0, 25);
+ __invalidate(rt, 31);
+ __lookup_matches(rt, 32, 0, 26);
+ __invalidate(rt, 32);
+ __lookup_matches(rt, 33, 0, 27);
+ __invalidate(rt, 33);
+ __lookup_matches(rt, 34, 0, 28);
+ __invalidate(rt, 34);
+ __lookup_matches(rt, 35, 0, 29);
+ __invalidate(rt, 35);
+ __lookup_matches(rt, 36, 0, 30);
+ __invalidate(rt, 36);
+ __lookup_matches(rt, 37, 0, 31);
+ __invalidate(rt, 37);
+ __lookup_matches(rt, 38, 0, 32);
+ __invalidate(rt, 38);
+ __lookup_matches(rt, 39, 0, 33);
+ __invalidate(rt, 39);
+ __lookup_matches(rt, 40, 0, 34);
+ __invalidate(rt, 40);
+ __lookup_matches(rt, 41, 0, 35);
+ __invalidate(rt, 41);
+ __lookup_matches(rt, 42, 0, 36);
+ __invalidate(rt, 42);
+ __lookup_matches(rt, 43, 0, 37);
+ __invalidate(rt, 43);
+ __lookup_matches(rt, 44, 0, 38);
+ __invalidate(rt, 44);
+ __lookup_matches(rt, 45, 0, 39);
+ __invalidate(rt, 45);
+ __lookup_matches(rt, 46, 0, 40);
+ __lookup_fails(rt, 46, 5);
+ __insert(rt, 46, 5, 200);
+ __lookup_matches(rt, 46, 5, 200);
+ __lookup_fails(rt, 46, 6);
+ __insert(rt, 46, 6, 201);
+ __lookup_fails(rt, 46, 7);
+ __insert(rt, 46, 7, 202);
+ __lookup_fails(rt, 46, 8);
+ __insert(rt, 46, 8, 203);
+ __lookup_matches(rt, 46, 5, 200);
+ __lookup_matches(rt, 46, 6, 201);
+ __lookup_matches(rt, 46, 7, 202);
+ __lookup_matches(rt, 46, 8, 203);
+ __lookup_matches(rt, 47, 0, 41);
+ __invalidate(rt, 47);
+ __lookup_matches(rt, 48, 0, 42);
+ __invalidate(rt, 48);
+ __lookup_matches(rt, 49, 0, 43);
+ __invalidate(rt, 49);
+ __lookup_matches(rt, 50, 0, 44);
+ __invalidate(rt, 50);
+ __lookup_matches(rt, 51, 0, 45);
+ __invalidate(rt, 51);
+ __lookup_matches(rt, 52, 0, 46);
+ __invalidate(rt, 52);
+ __lookup_matches(rt, 53, 0, 47);
+ __invalidate(rt, 53);
+ __lookup_matches(rt, 54, 0, 48);
+ __invalidate(rt, 54);
+ __lookup_matches(rt, 55, 0, 49);
+ __invalidate(rt, 55);
+ __lookup_matches(rt, 56, 0, 50);
+ __invalidate(rt, 56);
+ __lookup_matches(rt, 57, 0, 51);
+ __invalidate(rt, 57);
+ __lookup_matches(rt, 58, 0, 52);
+ __invalidate(rt, 58);
+ __lookup_matches(rt, 59, 0, 53);
+ __invalidate(rt, 59);
+ __lookup_matches(rt, 60, 0, 54);
+ __invalidate(rt, 60);
+ __lookup_matches(rt, 61, 0, 55);
+ __invalidate(rt, 61);
+ __lookup_matches(rt, 62, 0, 56);
+ __invalidate(rt, 62);
+ __lookup_matches(rt, 63, 0, 57);
+ __invalidate(rt, 63);
+ __lookup_matches(rt, 64, 0, 58);
+ __invalidate(rt, 64);
+ __lookup_matches(rt, 65, 0, 59);
+ __lookup_fails(rt, 65, 1);
+ __insert(rt, 65, 1, 204);
+ __lookup_fails(rt, 65, 2);
+ __insert(rt, 65, 2, 205);
+ __lookup_fails(rt, 65, 3);
+ __insert(rt, 65, 3, 206);
+ __lookup_fails(rt, 65, 4);
+ __insert(rt, 65, 4, 207);
+ __lookup_matches(rt, 65, 0, 59);
+ __lookup_matches(rt, 65, 1, 204);
+ __lookup_matches(rt, 65, 2, 205);
+ __lookup_matches(rt, 65, 3, 206);
+ __lookup_matches(rt, 65, 4, 207);
+ __lookup_matches(rt, 66, 0, 60);
+ __invalidate(rt, 66);
+ __lookup_matches(rt, 67, 0, 61);
+ __invalidate(rt, 67);
+ __lookup_matches(rt, 68, 0, 62);
+ __invalidate(rt, 68);
+ __lookup_matches(rt, 69, 0, 63);
+ __invalidate(rt, 69);
+ __lookup_matches(rt, 70, 0, 64);
+ __invalidate(rt, 70);
+ __lookup_matches(rt, 71, 0, 65);
+ __invalidate(rt, 71);
+ __lookup_matches(rt, 72, 0, 66);
+ __invalidate(rt, 72);
+ __lookup_matches(rt, 73, 0, 67);
+ __invalidate(rt, 73);
+ __lookup_matches(rt, 74, 0, 68);
+ __invalidate(rt, 74);
+ __lookup_matches(rt, 75, 0, 69);
+ __invalidate(rt, 75);
+ __lookup_matches(rt, 76, 0, 70);
+ __invalidate(rt, 76);
+ __lookup_matches(rt, 77, 0, 71);
+ __invalidate(rt, 77);
+ __lookup_matches(rt, 78, 0, 72);
+ __invalidate(rt, 78);
+ __lookup_matches(rt, 79, 0, 73);
+ __invalidate(rt, 79);
+ __lookup_matches(rt, 80, 0, 74);
+ __invalidate(rt, 80);
+ __lookup_matches(rt, 81, 0, 75);
+ __invalidate(rt, 81);
+ __lookup_matches(rt, 82, 0, 76);
+ __invalidate(rt, 82);
+ __lookup_matches(rt, 83, 0, 77);
+ __invalidate(rt, 83);
+ __lookup_matches(rt, 84, 0, 78);
+ __invalidate(rt, 84);
+ __lookup_matches(rt, 85, 0, 79);
+ __invalidate(rt, 85);
+ __lookup_matches(rt, 86, 0, 80);
+ __invalidate(rt, 86);
+ __lookup_matches(rt, 87, 0, 81);
+ __invalidate(rt, 87);
+ __lookup_matches(rt, 88, 0, 82);
+ __invalidate(rt, 88);
+ __lookup_matches(rt, 89, 0, 83);
+ __invalidate(rt, 89);
+ __lookup_matches(rt, 90, 0, 84);
+ __invalidate(rt, 90);
+ __lookup_matches(rt, 91, 0, 85);
+ __invalidate(rt, 91);
+ __lookup_matches(rt, 92, 0, 86);
+ __invalidate(rt, 92);
+ __lookup_matches(rt, 93, 0, 87);
+ __invalidate(rt, 93);
+ __lookup_matches(rt, 94, 0, 88);
+ __invalidate(rt, 94);
+ __lookup_matches(rt, 95, 0, 89);
+ __invalidate(rt, 95);
+ __lookup_matches(rt, 96, 0, 90);
+ __lookup_matches(rt, 97, 0, 91);
+ __invalidate(rt, 97);
+ __lookup_matches(rt, 98, 0, 92);
+ __invalidate(rt, 98);
+ __lookup_matches(rt, 99, 0, 93);
+ __invalidate(rt, 99);
+ __lookup_matches(rt, 100, 0, 94);
+ __invalidate(rt, 100);
+ __lookup_matches(rt, 101, 0, 95);
+ __invalidate(rt, 101);
+ __lookup_matches(rt, 102, 0, 96);
+ __invalidate(rt, 102);
+ __lookup_matches(rt, 103, 0, 97);
+ __invalidate(rt, 103);
+ __lookup_matches(rt, 104, 0, 98);
+ __invalidate(rt, 104);
+ __lookup_matches(rt, 105, 0, 99);
+ __invalidate(rt, 105);
+ __lookup_matches(rt, 106, 0, 100);
+ __invalidate(rt, 106);
+ __lookup_matches(rt, 107, 0, 101);
+ __invalidate(rt, 107);
+ __lookup_matches(rt, 108, 0, 102);
+ __invalidate(rt, 108);
+ __lookup_matches(rt, 109, 0, 103);
+ __invalidate(rt, 109);
+ __lookup_matches(rt, 110, 0, 104);
+ __invalidate(rt, 110);
+ __lookup_matches(rt, 111, 0, 105);
+ __invalidate(rt, 111);
+ __lookup_matches(rt, 112, 0, 106);
+ __invalidate(rt, 112);
+ __lookup_matches(rt, 113, 0, 107);
+ __invalidate(rt, 113);
+ __lookup_matches(rt, 114, 0, 108);
+ __invalidate(rt, 114);
+ __lookup_matches(rt, 115, 0, 109);
+ __invalidate(rt, 115);
+ __lookup_matches(rt, 116, 0, 110);
+ __invalidate(rt, 116);
+ __lookup_matches(rt, 117, 0, 111);
+ __invalidate(rt, 117);
+ __lookup_matches(rt, 118, 0, 112);
+ __invalidate(rt, 118);
+ __lookup_matches(rt, 119, 0, 113);
+ __invalidate(rt, 119);
+ __lookup_matches(rt, 120, 0, 114);
+ __invalidate(rt, 120);
+ __lookup_matches(rt, 121, 0, 115);
+ __invalidate(rt, 121);
+ __lookup_matches(rt, 122, 0, 116);
+ __invalidate(rt, 122);
+ __lookup_matches(rt, 123, 0, 117);
+ __invalidate(rt, 123);
+ __lookup_matches(rt, 124, 0, 118);
+ __invalidate(rt, 124);
+ __lookup_matches(rt, 125, 0, 119);
+ __invalidate(rt, 125);
+ __lookup_matches(rt, 126, 0, 120);
+ __invalidate(rt, 126);
+ __lookup_matches(rt, 127, 0, 121);
+ __invalidate(rt, 127);
+ __lookup_matches(rt, 128, 0, 122);
+ __invalidate(rt, 128);
+ __lookup_matches(rt, 129, 0, 123);
+ __invalidate(rt, 129);
+ __lookup_matches(rt, 130, 0, 124);
+ __invalidate(rt, 130);
+ __lookup_matches(rt, 131, 0, 125);
+ __invalidate(rt, 131);
+ __lookup_matches(rt, 132, 0, 126);
+ __invalidate(rt, 132);
+ __lookup_matches(rt, 133, 0, 127);
+ __invalidate(rt, 133);
+ __lookup_matches(rt, 134, 0, 128);
+ __invalidate(rt, 134);
+ __lookup_matches(rt, 135, 0, 129);
+ __invalidate(rt, 135);
+ __lookup_matches(rt, 136, 0, 130);
+ __invalidate(rt, 136);
+ __lookup_matches(rt, 137, 0, 131);
+ __invalidate(rt, 137);
+ __lookup_matches(rt, 138, 0, 132);
+ __invalidate(rt, 138);
+ __lookup_matches(rt, 139, 0, 133);
+ __invalidate(rt, 139);
+ __lookup_matches(rt, 140, 0, 134);
+ __invalidate(rt, 140);
+ __lookup_matches(rt, 141, 0, 135);
+ __invalidate(rt, 141);
+ __lookup_matches(rt, 142, 0, 136);
+ __invalidate(rt, 142);
+ __lookup_matches(rt, 143, 0, 137);
+ __invalidate(rt, 143);
+ __lookup_matches(rt, 144, 0, 138);
+ __invalidate(rt, 144);
+ __lookup_matches(rt, 145, 0, 139);
+ __invalidate(rt, 145);
+ __lookup_matches(rt, 146, 0, 140);
+ __invalidate(rt, 146);
+ __lookup_matches(rt, 147, 0, 141);
+ __invalidate(rt, 147);
+ __lookup_matches(rt, 148, 0, 142);
+ __invalidate(rt, 148);
+ __lookup_matches(rt, 149, 0, 143);
+ __invalidate(rt, 149);
+ __lookup_matches(rt, 150, 0, 144);
+ __invalidate(rt, 150);
+ __lookup_matches(rt, 151, 0, 145);
+ __invalidate(rt, 151);
+ __lookup_matches(rt, 152, 0, 146);
+ __invalidate(rt, 152);
+ __lookup_matches(rt, 153, 0, 147);
+ __invalidate(rt, 153);
+ __lookup_matches(rt, 154, 0, 148);
+ __invalidate(rt, 154);
+ __lookup_matches(rt, 155, 0, 149);
+ __invalidate(rt, 155);
+ __lookup_matches(rt, 156, 0, 150);
+ __invalidate(rt, 156);
+ __lookup_matches(rt, 157, 0, 151);
+ __invalidate(rt, 157);
+ __lookup_matches(rt, 158, 0, 152);
+ __invalidate(rt, 158);
+ __lookup_matches(rt, 159, 0, 153);
+ __invalidate(rt, 159);
+ __lookup_matches(rt, 160, 0, 154);
+ __invalidate(rt, 160);
+ __lookup_matches(rt, 161, 0, 155);
+ __invalidate(rt, 161);
+ __lookup_matches(rt, 162, 0, 156);
+ __invalidate(rt, 162);
+ __lookup_matches(rt, 163, 0, 157);
+ __lookup_matches(rt, 164, 0, 158);
+ __invalidate(rt, 164);
+ __lookup_matches(rt, 165, 0, 159);
+ __invalidate(rt, 165);
+ __lookup_matches(rt, 166, 0, 160);
+ __invalidate(rt, 166);
+ __lookup_matches(rt, 167, 0, 161);
+ __invalidate(rt, 167);
+ __lookup_matches(rt, 168, 0, 162);
+ __invalidate(rt, 168);
+ __lookup_matches(rt, 169, 0, 163);
+ __invalidate(rt, 169);
+ __lookup_matches(rt, 170, 0, 164);
+ __invalidate(rt, 170);
+ __lookup_matches(rt, 171, 0, 165);
+ __invalidate(rt, 171);
+ __lookup_matches(rt, 172, 0, 166);
+ __invalidate(rt, 172);
+ __lookup_matches(rt, 173, 0, 167);
+ __invalidate(rt, 173);
+ __lookup_matches(rt, 174, 0, 168);
+ __invalidate(rt, 174);
+ __lookup_matches(rt, 175, 0, 169);
+ __invalidate(rt, 175);
+ __lookup_matches(rt, 176, 0, 170);
+ __invalidate(rt, 176);
+ __lookup_matches(rt, 177, 0, 171);
+ __invalidate(rt, 177);
+ __lookup_matches(rt, 178, 0, 172);
+ __invalidate(rt, 178);
+ __lookup_matches(rt, 179, 0, 173);
+ __invalidate(rt, 179);
+ __lookup_matches(rt, 180, 0, 174);
+ __invalidate(rt, 180);
+ __lookup_matches(rt, 181, 0, 175);
+ __invalidate(rt, 181);
+ __lookup_matches(rt, 182, 0, 176);
+ __invalidate(rt, 182);
+ __lookup_matches(rt, 183, 0, 177);
+ __invalidate(rt, 183);
+ __lookup_matches(rt, 184, 0, 178);
+ __invalidate(rt, 184);
+ __lookup_matches(rt, 185, 0, 179);
+ __invalidate(rt, 185);
+ __lookup_matches(rt, 186, 0, 180);
+ __invalidate(rt, 186);
+ __lookup_matches(rt, 187, 0, 181);
+ __invalidate(rt, 187);
+ __lookup_matches(rt, 188, 0, 182);
+ __invalidate(rt, 188);
+ __lookup_matches(rt, 189, 0, 183);
+ __invalidate(rt, 189);
+ __lookup_matches(rt, 190, 0, 184);
+ __invalidate(rt, 190);
+ __lookup_matches(rt, 191, 0, 185);
+ __invalidate(rt, 191);
+ __lookup_matches(rt, 192, 0, 186);
+ __invalidate(rt, 192);
+ __lookup_matches(rt, 193, 0, 187);
+ __invalidate(rt, 193);
+ __lookup_matches(rt, 194, 0, 188);
+ __invalidate(rt, 194);
+ __lookup_matches(rt, 195, 0, 189);
+ __invalidate(rt, 195);
+ __lookup_matches(rt, 196, 0, 190);
+ __invalidate(rt, 196);
+ __lookup_matches(rt, 197, 0, 191);
+ __invalidate(rt, 197);
+ __lookup_matches(rt, 198, 0, 192);
+ __invalidate(rt, 198);
+ __lookup_matches(rt, 199, 0, 193);
+ __invalidate(rt, 199);
+ __lookup_matches(rt, 200, 0, 194);
+ __invalidate(rt, 200);
+ __lookup_matches(rt, 201, 0, 195);
+ __invalidate(rt, 201);
+ __lookup_matches(rt, 202, 0, 196);
+ __invalidate(rt, 202);
+ __lookup_matches(rt, 203, 0, 197);
+ __invalidate(rt, 203);
+ __lookup_matches(rt, 204, 0, 198);
+ __invalidate(rt, 204);
+ __lookup_matches(rt, 205, 0, 199);
+ __invalidate(rt, 205);
+ __lookup_fails(rt, 6, 0);
+ __insert(rt, 6, 0, 208);
+ __lookup_fails(rt, 7, 0);
+ __insert(rt, 7, 0, 209);
+ __lookup_fails(rt, 8, 0);
+ __insert(rt, 8, 0, 210);
+ __lookup_fails(rt, 9, 0);
+ __insert(rt, 9, 0, 211);
+ __lookup_fails(rt, 10, 0);
+ __insert(rt, 10, 0, 212);
+ __lookup_fails(rt, 11, 0);
+ __insert(rt, 11, 0, 213);
+ __lookup_fails(rt, 13, 0);
+ __insert(rt, 13, 0, 214);
+ __lookup_fails(rt, 14, 0);
+ __insert(rt, 14, 0, 215);
+ __lookup_fails(rt, 15, 0);
+ __insert(rt, 15, 0, 216);
+ __lookup_fails(rt, 16, 0);
+ __insert(rt, 16, 0, 217);
+ __lookup_fails(rt, 17, 0);
+ __insert(rt, 17, 0, 218);
+ __lookup_fails(rt, 18, 0);
+ __insert(rt, 18, 0, 219);
+ __lookup_fails(rt, 19, 0);
+ __insert(rt, 19, 0, 220);
+ __lookup_fails(rt, 20, 0);
+ __insert(rt, 20, 0, 221);
+ __lookup_fails(rt, 21, 0);
+ __insert(rt, 21, 0, 222);
+ __lookup_fails(rt, 22, 0);
+ __insert(rt, 22, 0, 223);
+ __lookup_fails(rt, 23, 0);
+ __insert(rt, 23, 0, 224);
+ __lookup_fails(rt, 24, 0);
+ __insert(rt, 24, 0, 225);
+ __lookup_fails(rt, 25, 0);
+ __insert(rt, 25, 0, 226);
+ __lookup_fails(rt, 26, 0);
+ __insert(rt, 26, 0, 227);
+ __lookup_fails(rt, 27, 0);
+ __insert(rt, 27, 0, 228);
+ __lookup_fails(rt, 28, 0);
+ __insert(rt, 28, 0, 229);
+ __lookup_fails(rt, 29, 0);
+ __insert(rt, 29, 0, 230);
+ __lookup_fails(rt, 30, 0);
+ __insert(rt, 30, 0, 231);
+ __lookup_fails(rt, 31, 0);
+ __insert(rt, 31, 0, 232);
+ __lookup_fails(rt, 32, 0);
+ __insert(rt, 32, 0, 233);
+ __lookup_fails(rt, 33, 0);
+ __insert(rt, 33, 0, 234);
+ __lookup_fails(rt, 34, 0);
+ __insert(rt, 34, 0, 235);
+ __lookup_fails(rt, 35, 0);
+ __insert(rt, 35, 0, 236);
+ __lookup_fails(rt, 36, 0);
+ __insert(rt, 36, 0, 237);
+ __lookup_fails(rt, 37, 0);
+ __insert(rt, 37, 0, 238);
+ __lookup_fails(rt, 38, 0);
+ __insert(rt, 38, 0, 239);
+ __lookup_fails(rt, 39, 0);
+ __insert(rt, 39, 0, 240);
+ __lookup_fails(rt, 40, 0);
+ __insert(rt, 40, 0, 241);
+ __lookup_fails(rt, 41, 0);
+ __insert(rt, 41, 0, 242);
+ __lookup_fails(rt, 42, 0);
+ __insert(rt, 42, 0, 243);
+ __lookup_fails(rt, 43, 0);
+ __insert(rt, 43, 0, 244);
+ __lookup_fails(rt, 44, 0);
+ __insert(rt, 44, 0, 245);
+ __lookup_fails(rt, 45, 0);
+ __insert(rt, 45, 0, 246);
+ __lookup_fails(rt, 47, 0);
+ __insert(rt, 47, 0, 247);
+ __lookup_fails(rt, 48, 0);
+ __insert(rt, 48, 0, 248);
+ __lookup_fails(rt, 49, 0);
+ __insert(rt, 49, 0, 249);
+ __lookup_fails(rt, 50, 0);
+ __insert(rt, 50, 0, 250);
+ __lookup_fails(rt, 51, 0);
+ __insert(rt, 51, 0, 251);
+ __lookup_fails(rt, 52, 0);
+ __insert(rt, 52, 0, 252);
+ __lookup_fails(rt, 53, 0);
+ __insert(rt, 53, 0, 253);
+ __lookup_fails(rt, 54, 0);
+ __insert(rt, 54, 0, 254);
+ __lookup_fails(rt, 55, 0);
+ __insert(rt, 55, 0, 255);
+ __lookup_fails(rt, 56, 0);
+ __insert(rt, 56, 0, 256);
+ __lookup_fails(rt, 57, 0);
+ __insert(rt, 57, 0, 257);
+ __lookup_fails(rt, 58, 0);
+ __insert(rt, 58, 0, 258);
+ __lookup_fails(rt, 59, 0);
+ __insert(rt, 59, 0, 259);
+ __lookup_fails(rt, 60, 0);
+ __insert(rt, 60, 0, 260);
+ __lookup_fails(rt, 61, 0);
+ __insert(rt, 61, 0, 261);
+ __lookup_fails(rt, 62, 0);
+ __insert(rt, 62, 0, 262);
+ __lookup_fails(rt, 63, 0);
+ __insert(rt, 63, 0, 263);
+ __lookup_fails(rt, 64, 0);
+ __insert(rt, 64, 0, 264);
+ __lookup_fails(rt, 66, 0);
+ __insert(rt, 66, 0, 265);
+ __lookup_fails(rt, 67, 0);
+ __insert(rt, 67, 0, 266);
+ __lookup_fails(rt, 68, 0);
+ __insert(rt, 68, 0, 267);
+ __lookup_fails(rt, 69, 0);
+ __insert(rt, 69, 0, 268);
+ __lookup_fails(rt, 70, 0);
+ __insert(rt, 70, 0, 269);
+ __lookup_fails(rt, 71, 0);
+ __insert(rt, 71, 0, 270);
+ __lookup_fails(rt, 72, 0);
+ __insert(rt, 72, 0, 271);
+ __lookup_fails(rt, 73, 0);
+ __insert(rt, 73, 0, 272);
+ __lookup_fails(rt, 74, 0);
+ __insert(rt, 74, 0, 273);
+ __lookup_fails(rt, 75, 0);
+ __insert(rt, 75, 0, 274);
+ __lookup_fails(rt, 76, 0);
+ __insert(rt, 76, 0, 275);
+ __lookup_fails(rt, 77, 0);
+ __insert(rt, 77, 0, 276);
+ __lookup_fails(rt, 78, 0);
+ __insert(rt, 78, 0, 277);
+ __lookup_fails(rt, 79, 0);
+ __insert(rt, 79, 0, 278);
+ __lookup_fails(rt, 80, 0);
+ __insert(rt, 80, 0, 279);
+ __lookup_fails(rt, 81, 0);
+ __insert(rt, 81, 0, 280);
+ __lookup_fails(rt, 82, 0);
+ __insert(rt, 82, 0, 281);
+ __lookup_fails(rt, 83, 0);
+ __insert(rt, 83, 0, 282);
+ __lookup_fails(rt, 84, 0);
+ __insert(rt, 84, 0, 283);
+ __lookup_fails(rt, 85, 0);
+ __insert(rt, 85, 0, 284);
+ __lookup_fails(rt, 86, 0);
+ __insert(rt, 86, 0, 285);
+ __lookup_fails(rt, 87, 0);
+ __insert(rt, 87, 0, 286);
+ __lookup_fails(rt, 88, 0);
+ __insert(rt, 88, 0, 287);
+ __lookup_fails(rt, 89, 0);
+ __insert(rt, 89, 0, 288);
+ __lookup_fails(rt, 90, 0);
+ __insert(rt, 90, 0, 289);
+ __lookup_fails(rt, 91, 0);
+ __insert(rt, 91, 0, 290);
+ __lookup_fails(rt, 92, 0);
+ __insert(rt, 92, 0, 291);
+ __lookup_fails(rt, 93, 0);
+ __insert(rt, 93, 0, 292);
+ __lookup_fails(rt, 94, 0);
+ __insert(rt, 94, 0, 293);
+ __lookup_fails(rt, 95, 0);
+ __insert(rt, 95, 0, 294);
+ __lookup_fails(rt, 97, 0);
+ __insert(rt, 97, 0, 295);
+ __lookup_fails(rt, 98, 0);
+ __insert(rt, 98, 0, 296);
+ __lookup_fails(rt, 99, 0);
+ __insert(rt, 99, 0, 297);
+ __lookup_fails(rt, 100, 0);
+ __insert(rt, 100, 0, 298);
+ __lookup_fails(rt, 101, 0);
+ __insert(rt, 101, 0, 299);
+ __lookup_fails(rt, 102, 0);
+ __insert(rt, 102, 0, 300);
+ __lookup_fails(rt, 103, 0);
+ __insert(rt, 103, 0, 301);
+ __lookup_fails(rt, 104, 0);
+ __insert(rt, 104, 0, 302);
+ __lookup_fails(rt, 105, 0);
+ __insert(rt, 105, 0, 303);
+ __lookup_fails(rt, 106, 0);
+ __insert(rt, 106, 0, 304);
+ __lookup_fails(rt, 107, 0);
+ __insert(rt, 107, 0, 305);
+ __lookup_fails(rt, 108, 0);
+ __insert(rt, 108, 0, 306);
+ __lookup_fails(rt, 109, 0);
+ __insert(rt, 109, 0, 307);
+ __lookup_fails(rt, 110, 0);
+ __insert(rt, 110, 0, 308);
+ __lookup_fails(rt, 111, 0);
+ __insert(rt, 111, 0, 309);
+ __lookup_fails(rt, 112, 0);
+ __insert(rt, 112, 0, 310);
+ __lookup_fails(rt, 113, 0);
+ __insert(rt, 113, 0, 311);
+ __lookup_fails(rt, 114, 0);
+ __insert(rt, 114, 0, 312);
+ __lookup_fails(rt, 115, 0);
+ __insert(rt, 115, 0, 313);
+ __lookup_fails(rt, 116, 0);
+ __insert(rt, 116, 0, 314);
+ __lookup_fails(rt, 117, 0);
+ __insert(rt, 117, 0, 315);
+ __lookup_fails(rt, 118, 0);
+ __insert(rt, 118, 0, 316);
+ __lookup_fails(rt, 119, 0);
+ __insert(rt, 119, 0, 317);
+ __lookup_fails(rt, 120, 0);
+ __insert(rt, 120, 0, 318);
+ __lookup_fails(rt, 121, 0);
+ __insert(rt, 121, 0, 319);
+ __lookup_fails(rt, 122, 0);
+ __insert(rt, 122, 0, 320);
+ __lookup_fails(rt, 123, 0);
+ __insert(rt, 123, 0, 321);
+ __lookup_fails(rt, 124, 0);
+ __insert(rt, 124, 0, 322);
+ __lookup_fails(rt, 125, 0);
+ __insert(rt, 125, 0, 323);
+ __lookup_fails(rt, 126, 0);
+ __insert(rt, 126, 0, 324);
+ __lookup_fails(rt, 127, 0);
+ __insert(rt, 127, 0, 325);
+ __lookup_fails(rt, 128, 0);
+ __insert(rt, 128, 0, 326);
+ __lookup_fails(rt, 129, 0);
+ __insert(rt, 129, 0, 327);
+ __lookup_fails(rt, 130, 0);
+ __insert(rt, 130, 0, 328);
+ __lookup_fails(rt, 131, 0);
+ __insert(rt, 131, 0, 329);
+ __lookup_fails(rt, 132, 0);
+ __insert(rt, 132, 0, 330);
+ __lookup_fails(rt, 133, 0);
+ __insert(rt, 133, 0, 331);
+ __lookup_fails(rt, 134, 0);
+ __insert(rt, 134, 0, 332);
+ __lookup_fails(rt, 135, 0);
+ __insert(rt, 135, 0, 333);
+ __lookup_fails(rt, 136, 0);
+ __insert(rt, 136, 0, 334);
+ __lookup_fails(rt, 137, 0);
+ __insert(rt, 137, 0, 335);
+ __lookup_fails(rt, 138, 0);
+ __insert(rt, 138, 0, 336);
+ __lookup_fails(rt, 139, 0);
+ __insert(rt, 139, 0, 337);
+ __lookup_fails(rt, 140, 0);
+ __insert(rt, 140, 0, 338);
+ __lookup_fails(rt, 141, 0);
+ __insert(rt, 141, 0, 339);
+ __lookup_fails(rt, 142, 0);
+ __insert(rt, 142, 0, 340);
+ __lookup_fails(rt, 143, 0);
+ __insert(rt, 143, 0, 341);
+ __lookup_fails(rt, 144, 0);
+ __insert(rt, 144, 0, 342);
+ __lookup_fails(rt, 145, 0);
+ __insert(rt, 145, 0, 343);
+ __lookup_fails(rt, 146, 0);
+ __insert(rt, 146, 0, 344);
+ __lookup_fails(rt, 147, 0);
+ __insert(rt, 147, 0, 345);
+ __lookup_fails(rt, 148, 0);
+ __insert(rt, 148, 0, 346);
+ __lookup_fails(rt, 149, 0);
+ __insert(rt, 149, 0, 347);
+ __lookup_fails(rt, 150, 0);
+ __insert(rt, 150, 0, 348);
+ __lookup_fails(rt, 151, 0);
+ __insert(rt, 151, 0, 349);
+ __lookup_fails(rt, 152, 0);
+ __insert(rt, 152, 0, 350);
+ __lookup_fails(rt, 153, 0);
+ __insert(rt, 153, 0, 351);
+ __lookup_fails(rt, 154, 0);
+ __insert(rt, 154, 0, 352);
+ __lookup_fails(rt, 155, 0);
+ __insert(rt, 155, 0, 353);
+ __lookup_fails(rt, 156, 0);
+ __insert(rt, 156, 0, 354);
+ __lookup_fails(rt, 157, 0);
+ __insert(rt, 157, 0, 355);
+ __lookup_fails(rt, 158, 0);
+ __insert(rt, 158, 0, 356);
+ __lookup_fails(rt, 159, 0);
+ __insert(rt, 159, 0, 357);
+ __lookup_fails(rt, 160, 0);
+ __insert(rt, 160, 0, 358);
+ __lookup_fails(rt, 161, 0);
+ __insert(rt, 161, 0, 359);
+ __lookup_fails(rt, 162, 0);
+ __insert(rt, 162, 0, 360);
+ __lookup_fails(rt, 164, 0);
+ __insert(rt, 164, 0, 361);
+ __lookup_fails(rt, 165, 0);
+ __insert(rt, 165, 0, 362);
+ __lookup_fails(rt, 166, 0);
+ __insert(rt, 166, 0, 363);
+ __lookup_fails(rt, 167, 0);
+ __insert(rt, 167, 0, 364);
+ __lookup_fails(rt, 168, 0);
+ __insert(rt, 168, 0, 365);
+ __lookup_fails(rt, 169, 0);
+ __insert(rt, 169, 0, 366);
+ __lookup_fails(rt, 170, 0);
+ __insert(rt, 170, 0, 367);
+ __lookup_fails(rt, 171, 0);
+ __insert(rt, 171, 0, 368);
+ __lookup_fails(rt, 172, 0);
+ __insert(rt, 172, 0, 369);
+ __lookup_fails(rt, 173, 0);
+ __insert(rt, 173, 0, 370);
+ __lookup_fails(rt, 174, 0);
+ __insert(rt, 174, 0, 371);
+ __lookup_fails(rt, 175, 0);
+ __insert(rt, 175, 0, 372);
+ __lookup_fails(rt, 176, 0);
+ __insert(rt, 176, 0, 373);
+ __lookup_fails(rt, 177, 0);
+ __insert(rt, 177, 0, 374);
+ __lookup_fails(rt, 178, 0);
+ __insert(rt, 178, 0, 375);
+ __lookup_fails(rt, 179, 0);
+ __insert(rt, 179, 0, 376);
+ __lookup_fails(rt, 180, 0);
+ __insert(rt, 180, 0, 377);
+ __lookup_fails(rt, 181, 0);
+ __insert(rt, 181, 0, 378);
+ __lookup_fails(rt, 182, 0);
+ __insert(rt, 182, 0, 379);
+ __lookup_fails(rt, 183, 0);
+ __insert(rt, 183, 0, 380);
+ __lookup_fails(rt, 184, 0);
+ __insert(rt, 184, 0, 381);
+ __lookup_fails(rt, 185, 0);
+ __insert(rt, 185, 0, 382);
+ __lookup_fails(rt, 186, 0);
+ __insert(rt, 186, 0, 383);
+ __lookup_fails(rt, 187, 0);
+ __insert(rt, 187, 0, 384);
+ __lookup_fails(rt, 188, 0);
+ __insert(rt, 188, 0, 385);
+ __lookup_fails(rt, 189, 0);
+ __insert(rt, 189, 0, 386);
+ __lookup_fails(rt, 190, 0);
+ __insert(rt, 190, 0, 387);
+ __lookup_fails(rt, 191, 0);
+ __insert(rt, 191, 0, 388);
+ __lookup_fails(rt, 192, 0);
+ __insert(rt, 192, 0, 389);
+ __lookup_fails(rt, 193, 0);
+ __insert(rt, 193, 0, 390);
+ __lookup_fails(rt, 194, 0);
+ __insert(rt, 194, 0, 391);
+ __lookup_fails(rt, 195, 0);
+ __insert(rt, 195, 0, 392);
+ __lookup_fails(rt, 196, 0);
+ __insert(rt, 196, 0, 393);
+ __lookup_fails(rt, 197, 0);
+ __insert(rt, 197, 0, 394);
+ __lookup_fails(rt, 198, 0);
+ __insert(rt, 198, 0, 395);
+ __lookup_fails(rt, 199, 0);
+ __insert(rt, 199, 0, 396);
+ __lookup_fails(rt, 200, 0);
+ __insert(rt, 200, 0, 397);
+ __lookup_fails(rt, 201, 0);
+ __insert(rt, 201, 0, 398);
+ __lookup_fails(rt, 202, 0);
+ __insert(rt, 202, 0, 399);
+ __lookup_fails(rt, 203, 0);
+ __insert(rt, 203, 0, 400);
+ __lookup_fails(rt, 204, 0);
+ __insert(rt, 204, 0, 401);
+ __lookup_fails(rt, 205, 0);
+ __insert(rt, 205, 0, 402);
+ __lookup_fails(rt, 206, 0);
+ __insert(rt, 206, 0, 403);
+ __lookup_fails(rt, 207, 0);
+ __insert(rt, 207, 0, 404);
+ __lookup_fails(rt, 208, 0);
+ __insert(rt, 208, 0, 405);
+ __lookup_fails(rt, 209, 0);
+ __insert(rt, 209, 0, 406);
+ __lookup_fails(rt, 210, 0);
+ __insert(rt, 210, 0, 407);
+ __lookup_matches(rt, 6, 0, 208);
+ __invalidate(rt, 6);
+ __lookup_matches(rt, 7, 0, 209);
+ __invalidate(rt, 7);
+ __lookup_matches(rt, 8, 0, 210);
+ __invalidate(rt, 8);
+ __lookup_matches(rt, 9, 0, 211);
+ __invalidate(rt, 9);
+ __lookup_matches(rt, 10, 0, 212);
+ __invalidate(rt, 10);
+ __lookup_matches(rt, 11, 0, 213);
+ __invalidate(rt, 11);
+ __lookup_matches(rt, 13, 0, 214);
+ __invalidate(rt, 13);
+ __lookup_matches(rt, 14, 0, 215);
+ __invalidate(rt, 14);
+ __lookup_matches(rt, 15, 0, 216);
+ __invalidate(rt, 15);
+ __lookup_matches(rt, 16, 0, 217);
+ __invalidate(rt, 16);
+ __lookup_matches(rt, 17, 0, 218);
+ __invalidate(rt, 17);
+ __lookup_matches(rt, 18, 0, 219);
+ __invalidate(rt, 18);
+ __lookup_matches(rt, 19, 0, 220);
+ __invalidate(rt, 19);
+ __lookup_matches(rt, 20, 0, 221);
+ __invalidate(rt, 20);
+ __lookup_matches(rt, 21, 0, 222);
+ __invalidate(rt, 21);
+ __lookup_matches(rt, 22, 0, 223);
+ __invalidate(rt, 22);
+ __lookup_matches(rt, 23, 0, 224);
+ __invalidate(rt, 23);
+ __lookup_matches(rt, 24, 0, 225);
+ __invalidate(rt, 24);
+ __lookup_matches(rt, 25, 0, 226);
+ __invalidate(rt, 25);
+ __lookup_matches(rt, 26, 0, 227);
+ __invalidate(rt, 26);
+ __lookup_matches(rt, 27, 0, 228);
+ __invalidate(rt, 27);
+ __lookup_matches(rt, 28, 0, 229);
+ __invalidate(rt, 28);
+ __lookup_matches(rt, 29, 0, 230);
+ __invalidate(rt, 29);
+ __lookup_matches(rt, 30, 0, 231);
+ __invalidate(rt, 30);
+ __lookup_matches(rt, 31, 0, 232);
+ __invalidate(rt, 31);
+ __lookup_matches(rt, 32, 0, 233);
+ __invalidate(rt, 32);
+ __lookup_matches(rt, 33, 0, 234);
+ __invalidate(rt, 33);
+ __lookup_matches(rt, 34, 0, 235);
+ __invalidate(rt, 34);
+ __lookup_matches(rt, 35, 0, 236);
+ __invalidate(rt, 35);
+ __lookup_matches(rt, 36, 0, 237);
+ __invalidate(rt, 36);
+ __lookup_matches(rt, 37, 0, 238);
+ __invalidate(rt, 37);
+ __lookup_matches(rt, 38, 0, 239);
+ __invalidate(rt, 38);
+ __lookup_matches(rt, 39, 0, 240);
+ __invalidate(rt, 39);
+ __lookup_matches(rt, 40, 0, 241);
+ __invalidate(rt, 40);
+ __lookup_matches(rt, 41, 0, 242);
+ __invalidate(rt, 41);
+ __lookup_matches(rt, 42, 0, 243);
+ __invalidate(rt, 42);
+ __lookup_matches(rt, 43, 0, 244);
+ __invalidate(rt, 43);
+ __lookup_matches(rt, 44, 0, 245);
+ __invalidate(rt, 44);
+ __lookup_matches(rt, 45, 0, 246);
+ __invalidate(rt, 45);
+ __lookup_matches(rt, 47, 0, 247);
+ __invalidate(rt, 47);
+ __lookup_matches(rt, 48, 0, 248);
+ __invalidate(rt, 48);
+ __lookup_matches(rt, 49, 0, 249);
+ __invalidate(rt, 49);
+ __lookup_matches(rt, 50, 0, 250);
+ __invalidate(rt, 50);
+ __lookup_matches(rt, 51, 0, 251);
+ __invalidate(rt, 51);
+ __lookup_matches(rt, 52, 0, 252);
+ __invalidate(rt, 52);
+ __lookup_matches(rt, 53, 0, 253);
+ __invalidate(rt, 53);
+ __lookup_matches(rt, 54, 0, 254);
+ __invalidate(rt, 54);
+ __lookup_matches(rt, 55, 0, 255);
+ __invalidate(rt, 55);
+ __lookup_matches(rt, 56, 0, 256);
+ __invalidate(rt, 56);
+ __lookup_matches(rt, 57, 0, 257);
+ __invalidate(rt, 57);
+ __lookup_matches(rt, 58, 0, 258);
+ __invalidate(rt, 58);
+ __lookup_matches(rt, 59, 0, 259);
+ __invalidate(rt, 59);
+ __lookup_matches(rt, 60, 0, 260);
+ __invalidate(rt, 60);
+ __lookup_matches(rt, 61, 0, 261);
+ __invalidate(rt, 61);
+ __lookup_matches(rt, 62, 0, 262);
+ __invalidate(rt, 62);
+ __lookup_matches(rt, 63, 0, 263);
+ __invalidate(rt, 63);
+ __lookup_matches(rt, 64, 0, 264);
+ __invalidate(rt, 64);
+ __lookup_matches(rt, 66, 0, 265);
+ __invalidate(rt, 66);
+ __lookup_matches(rt, 67, 0, 266);
+ __invalidate(rt, 67);
+ __lookup_matches(rt, 68, 0, 267);
+ __invalidate(rt, 68);
+ __lookup_matches(rt, 69, 0, 268);
+ __invalidate(rt, 69);
+ __lookup_matches(rt, 70, 0, 269);
+ __invalidate(rt, 70);
+ __lookup_matches(rt, 71, 0, 270);
+ __invalidate(rt, 71);
+ __lookup_matches(rt, 72, 0, 271);
+ __invalidate(rt, 72);
+ __lookup_matches(rt, 73, 0, 272);
+ __lookup_matches(rt, 74, 0, 273);
+ __invalidate(rt, 74);
+ __lookup_matches(rt, 75, 0, 274);
+ __invalidate(rt, 75);
+ __lookup_matches(rt, 76, 0, 275);
+ __invalidate(rt, 76);
+ __lookup_matches(rt, 77, 0, 276);
+ __invalidate(rt, 77);
+ __lookup_matches(rt, 78, 0, 277);
+ __invalidate(rt, 78);
+ __lookup_matches(rt, 79, 0, 278);
+ __invalidate(rt, 79);
+ __lookup_matches(rt, 80, 0, 279);
+ __invalidate(rt, 80);
+ __lookup_matches(rt, 81, 0, 280);
+ __invalidate(rt, 81);
+ __lookup_matches(rt, 82, 0, 281);
+ __invalidate(rt, 82);
+ __lookup_matches(rt, 83, 0, 282);
+ __invalidate(rt, 83);
+ __lookup_matches(rt, 84, 0, 283);
+ __invalidate(rt, 84);
+ __lookup_matches(rt, 85, 0, 284);
+ __invalidate(rt, 85);
+ __lookup_matches(rt, 86, 0, 285);
+ __invalidate(rt, 86);
+ __lookup_matches(rt, 87, 0, 286);
+ __invalidate(rt, 87);
+ __lookup_matches(rt, 88, 0, 287);
+ __invalidate(rt, 88);
+ __lookup_matches(rt, 89, 0, 288);
+ __invalidate(rt, 89);
+ __lookup_matches(rt, 90, 0, 289);
+ __invalidate(rt, 90);
+ __lookup_matches(rt, 91, 0, 290);
+ __invalidate(rt, 91);
+ __lookup_matches(rt, 92, 0, 291);
+ __invalidate(rt, 92);
+ __lookup_matches(rt, 93, 0, 292);
+ __invalidate(rt, 93);
+ __lookup_matches(rt, 94, 0, 293);
+ __invalidate(rt, 94);
+ __lookup_matches(rt, 95, 0, 294);
+ __invalidate(rt, 95);
+ __lookup_matches(rt, 97, 0, 295);
+ __invalidate(rt, 97);
+ __lookup_matches(rt, 98, 0, 296);
+ __invalidate(rt, 98);
+ __lookup_matches(rt, 99, 0, 297);
+ __invalidate(rt, 99);
+ __lookup_matches(rt, 100, 0, 298);
+ __invalidate(rt, 100);
+ __lookup_matches(rt, 101, 0, 299);
+ __invalidate(rt, 101);
+ __lookup_matches(rt, 102, 0, 300);
+ __invalidate(rt, 102);
+ __lookup_matches(rt, 103, 0, 301);
+ __invalidate(rt, 103);
+ __lookup_matches(rt, 104, 0, 302);
+ __invalidate(rt, 104);
+ __lookup_matches(rt, 105, 0, 303);
+ __invalidate(rt, 105);
+ __lookup_matches(rt, 106, 0, 304);
+ __invalidate(rt, 106);
+ __lookup_matches(rt, 107, 0, 305);
+ __invalidate(rt, 107);
+ __lookup_matches(rt, 108, 0, 306);
+ __invalidate(rt, 108);
+ __lookup_matches(rt, 109, 0, 307);
+ __invalidate(rt, 109);
+ __lookup_matches(rt, 110, 0, 308);
+ __invalidate(rt, 110);
+ __lookup_matches(rt, 111, 0, 309);
+ __invalidate(rt, 111);
+ __lookup_matches(rt, 112, 0, 310);
+ __invalidate(rt, 112);
+ __lookup_matches(rt, 113, 0, 311);
+ __invalidate(rt, 113);
+ __lookup_matches(rt, 114, 0, 312);
+ __invalidate(rt, 114);
+ __lookup_matches(rt, 115, 0, 313);
+ __invalidate(rt, 115);
+ __lookup_matches(rt, 116, 0, 314);
+ __invalidate(rt, 116);
+ __lookup_matches(rt, 117, 0, 315);
+ __invalidate(rt, 117);
+ __lookup_matches(rt, 118, 0, 316);
+ __invalidate(rt, 118);
+ __lookup_matches(rt, 119, 0, 317);
+ __invalidate(rt, 119);
+ __lookup_matches(rt, 120, 0, 318);
+ __invalidate(rt, 120);
+ __lookup_matches(rt, 121, 0, 319);
+ __invalidate(rt, 121);
+ __lookup_matches(rt, 122, 0, 320);
+ __invalidate(rt, 122);
+ __lookup_matches(rt, 123, 0, 321);
+ __invalidate(rt, 123);
+ __lookup_matches(rt, 124, 0, 322);
+ __invalidate(rt, 124);
+ __lookup_matches(rt, 125, 0, 323);
+ __invalidate(rt, 125);
+ __lookup_matches(rt, 126, 0, 324);
+ __invalidate(rt, 126);
+ __lookup_matches(rt, 127, 0, 325);
+ __invalidate(rt, 127);
+ __lookup_matches(rt, 128, 0, 326);
+ __invalidate(rt, 128);
+ __lookup_matches(rt, 129, 0, 327);
+ __invalidate(rt, 129);
+ __lookup_matches(rt, 130, 0, 328);
+ __invalidate(rt, 130);
+ __lookup_matches(rt, 131, 0, 329);
+ __invalidate(rt, 131);
+ __lookup_matches(rt, 132, 0, 330);
+ __invalidate(rt, 132);
+ __lookup_matches(rt, 133, 0, 331);
+ __invalidate(rt, 133);
+ __lookup_matches(rt, 134, 0, 332);
+ __invalidate(rt, 134);
+ __lookup_matches(rt, 135, 0, 333);
+ __invalidate(rt, 135);
+ __lookup_matches(rt, 136, 0, 334);
+ __invalidate(rt, 136);
+ __lookup_matches(rt, 137, 0, 335);
+ __invalidate(rt, 137);
+ __lookup_matches(rt, 138, 0, 336);
+ __invalidate(rt, 138);
+ __lookup_matches(rt, 139, 0, 337);
+ __invalidate(rt, 139);
+ __lookup_matches(rt, 140, 0, 338);
+ __invalidate(rt, 140);
+ __lookup_matches(rt, 141, 0, 339);
+ __invalidate(rt, 141);
+ __lookup_matches(rt, 142, 0, 340);
+ __invalidate(rt, 142);
+ __lookup_matches(rt, 143, 0, 341);
+ __invalidate(rt, 143);
+ __lookup_matches(rt, 144, 0, 342);
+ __invalidate(rt, 144);
+ __lookup_matches(rt, 145, 0, 343);
+ __invalidate(rt, 145);
+ __lookup_matches(rt, 146, 0, 344);
+ __invalidate(rt, 146);
+ __lookup_matches(rt, 147, 0, 345);
+ __invalidate(rt, 147);
+ __lookup_matches(rt, 148, 0, 346);
+ __invalidate(rt, 148);
+ __lookup_matches(rt, 149, 0, 347);
+ __invalidate(rt, 149);
+ __lookup_matches(rt, 150, 0, 348);
+ __invalidate(rt, 150);
+ __lookup_matches(rt, 151, 0, 349);
+ __invalidate(rt, 151);
+ __lookup_matches(rt, 152, 0, 350);
+ __invalidate(rt, 152);
+ __lookup_matches(rt, 153, 0, 351);
+ __invalidate(rt, 153);
+ __lookup_matches(rt, 154, 0, 352);
+ __invalidate(rt, 154);
+ __lookup_matches(rt, 155, 0, 353);
+ __invalidate(rt, 155);
+ __lookup_matches(rt, 156, 0, 354);
+ __invalidate(rt, 156);
+ __lookup_matches(rt, 157, 0, 355);
+ __invalidate(rt, 157);
+ __lookup_matches(rt, 158, 0, 356);
+ __invalidate(rt, 158);
+ __lookup_matches(rt, 159, 0, 357);
+ __invalidate(rt, 159);
+ __lookup_matches(rt, 160, 0, 358);
+ __invalidate(rt, 160);
+ __lookup_matches(rt, 161, 0, 359);
+ __invalidate(rt, 161);
+ __lookup_matches(rt, 162, 0, 360);
+ __invalidate(rt, 162);
+ __lookup_matches(rt, 164, 0, 361);
+ __invalidate(rt, 164);
+ __lookup_matches(rt, 165, 0, 362);
+ __invalidate(rt, 165);
+ __lookup_matches(rt, 166, 0, 363);
+ __invalidate(rt, 166);
+ __lookup_matches(rt, 167, 0, 364);
+ __invalidate(rt, 167);
+ __lookup_matches(rt, 168, 0, 365);
+ __invalidate(rt, 168);
+ __lookup_matches(rt, 169, 0, 366);
+ __invalidate(rt, 169);
+ __lookup_matches(rt, 170, 0, 367);
+ __invalidate(rt, 170);
+ __lookup_matches(rt, 171, 0, 368);
+ __invalidate(rt, 171);
+ __lookup_matches(rt, 172, 0, 369);
+ __invalidate(rt, 172);
+ __lookup_matches(rt, 173, 0, 370);
+ __invalidate(rt, 173);
+ __lookup_matches(rt, 174, 0, 371);
+ __invalidate(rt, 174);
+ __lookup_matches(rt, 175, 0, 372);
+ __invalidate(rt, 175);
+ __lookup_matches(rt, 176, 0, 373);
+ __invalidate(rt, 176);
+ __lookup_matches(rt, 177, 0, 374);
+ __invalidate(rt, 177);
+ __lookup_matches(rt, 178, 0, 375);
+ __invalidate(rt, 178);
+ __lookup_matches(rt, 179, 0, 376);
+ __invalidate(rt, 179);
+ __lookup_matches(rt, 180, 0, 377);
+ __invalidate(rt, 180);
+ __lookup_matches(rt, 181, 0, 378);
+ __invalidate(rt, 181);
+ __lookup_matches(rt, 182, 0, 379);
+ __invalidate(rt, 182);
+ __lookup_matches(rt, 183, 0, 380);
+ __invalidate(rt, 183);
+ __lookup_matches(rt, 184, 0, 381);
+ __invalidate(rt, 184);
+ __lookup_matches(rt, 185, 0, 382);
+ __invalidate(rt, 185);
+ __lookup_matches(rt, 186, 0, 383);
+ __invalidate(rt, 186);
+ __lookup_matches(rt, 187, 0, 384);
+ __invalidate(rt, 187);
+ __lookup_matches(rt, 188, 0, 385);
+ __invalidate(rt, 188);
+ __lookup_matches(rt, 189, 0, 386);
+ __invalidate(rt, 189);
+ __lookup_matches(rt, 190, 0, 387);
+ __invalidate(rt, 190);
+ __lookup_matches(rt, 191, 0, 388);
+ __invalidate(rt, 191);
+ __lookup_matches(rt, 192, 0, 389);
+ __invalidate(rt, 192);
+ __lookup_matches(rt, 193, 0, 390);
+ __invalidate(rt, 193);
+ __lookup_matches(rt, 194, 0, 391);
+ __invalidate(rt, 194);
+ __lookup_matches(rt, 195, 0, 392);
+ __invalidate(rt, 195);
+ __lookup_matches(rt, 196, 0, 393);
+ __invalidate(rt, 196);
+ __lookup_matches(rt, 197, 0, 394);
+ __invalidate(rt, 197);
+ __lookup_matches(rt, 198, 0, 395);
+ __invalidate(rt, 198);
+ __lookup_matches(rt, 199, 0, 396);
+ __invalidate(rt, 199);
+ __lookup_matches(rt, 200, 0, 397);
+ __invalidate(rt, 200);
+ __lookup_matches(rt, 201, 0, 398);
+ __invalidate(rt, 201);
+ __lookup_matches(rt, 202, 0, 399);
+ __invalidate(rt, 202);
+ __lookup_matches(rt, 203, 0, 400);
+ __invalidate(rt, 203);
+ __lookup_matches(rt, 204, 0, 401);
+ __invalidate(rt, 204);
+ __lookup_matches(rt, 205, 0, 402);
+ __invalidate(rt, 205);
+ __lookup_matches(rt, 206, 0, 403);
+ __invalidate(rt, 206);
+ __lookup_matches(rt, 207, 0, 404);
+ __invalidate(rt, 207);
+ __lookup_matches(rt, 208, 0, 405);
+ __invalidate(rt, 208);
+ __lookup_matches(rt, 209, 0, 406);
+ __invalidate(rt, 209);
+ __lookup_matches(rt, 210, 0, 407);
+ __invalidate(rt, 210);
+ __lookup_fails(rt, 6, 0);
+ __insert(rt, 6, 0, 408);
+ __lookup_fails(rt, 7, 0);
+ __insert(rt, 7, 0, 409);
+ __lookup_fails(rt, 8, 0);
+ __insert(rt, 8, 0, 410);
+ __lookup_fails(rt, 9, 0);
+ __insert(rt, 9, 0, 411);
+ __lookup_fails(rt, 10, 0);
+ __insert(rt, 10, 0, 412);
+ __lookup_fails(rt, 11, 0);
+ __insert(rt, 11, 0, 413);
+ __lookup_fails(rt, 13, 0);
+ __insert(rt, 13, 0, 414);
+ __lookup_fails(rt, 14, 0);
+ __insert(rt, 14, 0, 415);
+ __lookup_fails(rt, 15, 0);
+ __insert(rt, 15, 0, 416);
+ __lookup_fails(rt, 16, 0);
+ __insert(rt, 16, 0, 417);
+ __lookup_fails(rt, 17, 0);
+ __insert(rt, 17, 0, 418);
+ __lookup_fails(rt, 18, 0);
+ __insert(rt, 18, 0, 419);
+ __lookup_fails(rt, 19, 0);
+ __insert(rt, 19, 0, 420);
+ __lookup_fails(rt, 20, 0);
+ __insert(rt, 20, 0, 421);
+ __lookup_fails(rt, 21, 0);
+ __insert(rt, 21, 0, 422);
+ __lookup_fails(rt, 22, 0);
+ __insert(rt, 22, 0, 423);
+ __lookup_fails(rt, 23, 0);
+ __insert(rt, 23, 0, 424);
+ __lookup_matches(rt, 6, 0, 408);
+ __invalidate(rt, 6);
+ __lookup_matches(rt, 7, 0, 409);
+ __invalidate(rt, 7);
+ __lookup_matches(rt, 8, 0, 410);
+ __invalidate(rt, 8);
+ __lookup_matches(rt, 9, 0, 411);
+ __invalidate(rt, 9);
+ __lookup_matches(rt, 10, 0, 412);
+ __invalidate(rt, 10);
+ __lookup_matches(rt, 11, 0, 413);
+ __invalidate(rt, 11);
+ __lookup_matches(rt, 13, 0, 414);
+ __invalidate(rt, 13);
+ __lookup_matches(rt, 14, 0, 415);
4 years, 3 months
stable-2.02 - [bcache] bcache_invalidate_fd, only remove prefixes on success.
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=019fa6f8eec799ebc7a...
Commit: 019fa6f8eec799ebc7a9b9c5b31354ff1717db12
Parent: 1e2e12f19c584c3568c255c5d89ed8aadbe61b9c
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Tue Oct 29 15:21:11 2019 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Thu Jan 16 14:58:56 2020 +0000
[bcache] bcache_invalidate_fd, only remove prefixes on success.
---
lib/device/bcache.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
index 72cc59929..b64707ecc 100644
--- a/lib/device/bcache.c
+++ b/lib/device/bcache.c
@@ -1291,7 +1291,10 @@ bool bcache_invalidate_fd(struct bcache *cache, int fd)
it.success = true;
it.it.visit = _invalidate_v;
radix_tree_iterate(cache->rtree, k.bytes, k.bytes + sizeof(k.parts.fd), &it.it);
- radix_tree_remove_prefix(cache->rtree, k.bytes, k.bytes + sizeof(k.parts.fd));
+
+ if (it.success)
+ radix_tree_remove_prefix(cache->rtree, k.bytes, k.bytes + sizeof(k.parts.fd));
+
return it.success;
}
4 years, 3 months
stable-2.02 - [bcache] reverse earlier patch.
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=1e2e12f19c584c3568c...
Commit: 1e2e12f19c584c3568c255c5d89ed8aadbe61b9c
Parent: 6370c20d392fb6228273695cd9f1a2ae43ff1e77
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Tue Oct 29 15:14:07 2019 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Thu Jan 16 14:58:43 2020 +0000
[bcache] reverse earlier patch.
It broke some unit tests, for v. little benefit
---
lib/device/bcache.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
index 56e3db33f..72cc59929 100644
--- a/lib/device/bcache.c
+++ b/lib/device/bcache.c
@@ -246,10 +246,6 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd,
if (r < 0) {
_cb_free(e->cbs, cb);
- ((struct block *) context)->error = r;
- log_warn("io_submit <%c> off %llu bytes %llu return %d:%s",
- (d == DIR_READ) ? 'R' : 'W', (long long unsigned)offset,
- (long long unsigned) nbytes, r, strerror(-r));
return false;
}
@@ -788,7 +784,8 @@ static void _issue_low_level(struct block *b, enum dir d)
dm_list_move(&cache->io_pending, &b->list);
if (!cache->engine->issue(cache->engine, d, b->fd, sb, se, b->data, b)) {
- _complete_io(b, b->error);
+ /* FIXME: if io_submit() set an errno, return that instead of EIO? */
+ _complete_io(b, -EIO);
return;
}
}
4 years, 3 months
stable-2.02 - [bcache] pass up the error from io_submit rather than using generic -EIO
by Joe Thornber
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=6370c20d392fb622827...
Commit: 6370c20d392fb6228273695cd9f1a2ae43ff1e77
Parent: 056eb0a8809aee3ca888aff4fe8e22bf8884a0cc
Author: Joe Thornber <ejt(a)redhat.com>
AuthorDate: Tue Oct 29 10:39:20 2019 +0000
Committer: Joe Thornber <ejt(a)redhat.com>
CommitterDate: Thu Jan 16 14:58:28 2020 +0000
[bcache] pass up the error from io_submit rather than using generic -EIO
Author: Heming Zhao
---
lib/device/bcache.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
index 72cc59929..56e3db33f 100644
--- a/lib/device/bcache.c
+++ b/lib/device/bcache.c
@@ -246,6 +246,10 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd,
if (r < 0) {
_cb_free(e->cbs, cb);
+ ((struct block *) context)->error = r;
+ log_warn("io_submit <%c> off %llu bytes %llu return %d:%s",
+ (d == DIR_READ) ? 'R' : 'W', (long long unsigned)offset,
+ (long long unsigned) nbytes, r, strerror(-r));
return false;
}
@@ -784,8 +788,7 @@ static void _issue_low_level(struct block *b, enum dir d)
dm_list_move(&cache->io_pending, &b->list);
if (!cache->engine->issue(cache->engine, d, b->fd, sb, se, b->data, b)) {
- /* FIXME: if io_submit() set an errno, return that instead of EIO? */
- _complete_io(b, -EIO);
+ _complete_io(b, b->error);
return;
}
}
4 years, 3 months